/* ═══════════════════════════════════════════════════
   研途 · 我的主页
   身份卡 / 今日面板 / 五个数据块 / 快捷入口
   命名前缀 me-  只使用站内颜色、间距、动效变量
   ═══════════════════════════════════════════════════ */

.me-page{padding-top:42px}
.me-head{margin-bottom:22px}
.me-head .lede{margin-top:8px}

/* ─── 身份卡 ─────────────────────────────────────── */
.me-id{
  position:relative;display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:22px 24px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:
    linear-gradient(160deg,var(--blue-soft),transparent 62%),
    var(--paper);
  box-shadow:var(--sh-1);overflow:hidden;
  transition:border-color var(--t-2),box-shadow var(--t-3) var(--ease-out);
}
.me-id:hover{border-color:rgba(255,255,255,.16);box-shadow:var(--sh-2)}
.me-id::after{
  content:"";position:absolute;right:-70px;top:-110px;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,var(--blue-soft),transparent 70%);
  pointer-events:none;
}
.me-id.is-out{
  background:var(--paper);
  border-style:dashed;
}
.me-id-main{
  position:relative;z-index:1;display:flex;align-items:center;gap:14px;
  min-width:0;flex:1 1 auto;
}
.me-id-avatar{
  width:52px;height:52px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  background:var(--ink);color:var(--bg);
  font-size:19px;font-weight:750;letter-spacing:0;
  transition:transform var(--t-2) var(--spring),box-shadow var(--t-2);
}
.me-id:hover .me-id-avatar{transform:scale(1.04)}
.me-id-avatar.is-vip{box-shadow:0 0 0 3px var(--blue-soft)}
.me-id-avatar.is-out{
  background:var(--paper-2);color:var(--ink-4);
  border:1px dashed var(--line);font-size:22px;
}
.me-id-txt{min-width:0}
.me-id-txt h2{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  font-size:19px;font-weight:700;letter-spacing:-.015em;line-height:1.3;
}
.me-id-meta{
  margin-top:6px;font-size:12.5px;line-height:1.5;color:var(--ink-3);
  overflow-wrap:anywhere;
}
.me-badge{
  display:inline-flex;align-items:center;height:21px;padding:0 9px;
  border-radius:var(--r-full);border:1px solid var(--line);
  background:var(--paper-2);color:var(--ink-3);
  font-size:10.5px;font-weight:700;letter-spacing:.05em;white-space:nowrap;
}
.me-badge.is-vip{
  background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue-ink);
}
.me-badge.is-life{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.me-login,.me-logout{position:relative;z-index:1;flex:none;margin-left:auto}
.me-logout:hover{
  color:var(--red);background:var(--red-soft);border-color:var(--red-line);
}

/* ─── 今日面板：复用首页 .today 骨架 ─────────────── */
.me-today.today{margin-top:16px;border-radius:var(--r-lg)}
.me-check{
  margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2);
}
.me-check-h{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:12px;color:var(--ink-4);
}
.me-check-h b{
  color:var(--ink);font-size:13px;font-weight:700;
  font-variant-numeric:tabular-nums;
}
.me-check-f{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-top:9px;font-size:11.5px;color:var(--ink-4);
}
.me-mini-link{
  display:inline-flex;align-items:center;gap:5px;flex:none;
  font-size:11.5px;color:var(--blue-ink);
  transition:gap var(--t-2) var(--ease-out),color var(--t-2);
}
.me-mini-link:hover{gap:9px;color:var(--ink)}
.me-mini-link:active{transform:scale(.97)}
.me-mini-link .ic{font-size:12px}
.me-task-src{
  flex:none;align-self:center;margin-left:auto;
  padding:2px 7px;border-radius:var(--r-full);
  border:1px solid var(--line-2);background:var(--paper-2);
  font-style:normal;font-size:10px;font-weight:700;letter-spacing:.05em;
  color:var(--ink-4);white-space:nowrap;
}

/* ─── 进度条 ─────────────────────────────────────── */
.me-bar{
  position:relative;height:7px;margin-top:8px;border-radius:var(--r-full);
  background:var(--line-2);overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.4);
}
.me-bar > i{
  display:block;height:100%;width:var(--p,0%);border-radius:inherit;
  background:linear-gradient(90deg,var(--blue),var(--blue-ink));
  box-shadow:0 0 14px var(--blue-soft);
  transform-origin:left center;
  animation:meBarGrow .9s var(--ease-out) .15s both;
}
@keyframes meBarGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ─── 数据块网格 ─────────────────────────────────── */
.me-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;margin-top:16px;
}
.me-block{
  position:relative;display:flex;flex-direction:column;min-width:0;
  padding:22px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--paper);box-shadow:var(--sh-1);overflow:hidden;
  transition:transform var(--t-3) var(--ease-out),
    border-color var(--t-2),box-shadow var(--t-3) var(--ease-out);
}
.me-block::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,var(--blue-soft),transparent 48%);
  opacity:0;transition:opacity var(--t-3);
}
.me-block:hover{
  transform:translateY(-3px);border-color:rgba(255,255,255,.16);box-shadow:var(--sh-2);
}
.me-block:hover::after{opacity:1}
.me-block.is-wide{grid-column:1/-1}
.me-block-h{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px;
}
.me-block-ic{
  width:32px;height:32px;border-radius:10px;flex:none;
  display:grid;place-items:center;
  background:var(--blue-soft);color:var(--blue-ink);font-size:15px;
  transition:transform var(--t-3) var(--spring),background var(--t-2);
}
.me-block:hover .me-block-ic{transform:scale(1.07) rotate(-3deg)}
.me-block-h h2{font-size:15.5px;font-weight:680;letter-spacing:-.01em}
.me-block-meta{
  margin-left:auto;font-size:11.5px;color:var(--ink-4);
  letter-spacing:.02em;font-variant-numeric:tabular-nums;white-space:nowrap;
}
.me-block-body{position:relative;z-index:1;flex:1 1 auto;min-width:0}
.me-block-f{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin-top:18px;padding-top:14px;border-top:1px solid var(--line-2);
}
.me-more{
  display:inline-flex;align-items:center;gap:6px;
  font-size:12.5px;color:var(--ink-3);
  transition:color var(--t-2),gap var(--t-2) var(--ease-out);
}
.me-more:hover{color:var(--blue-ink);gap:10px}
.me-more:active{transform:scale(.98)}
.me-more .ic{font-size:12px}

/* ─── 空状态 ─────────────────────────────────────── */
.me-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;padding:22px 12px 24px;text-align:center;
}
.me-empty > .ic{font-size:26px;color:var(--ink-4)}
.me-empty p{
  font-size:12.5px;line-height:1.6;color:var(--ink-3);max-width:34ch;
}
.me-empty .btn{margin-top:4px}

/* ─── 目标院校 ───────────────────────────────────── */
.me-schools{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;
}
.me-school{
  position:relative;display:flex;flex-direction:column;gap:9px;
  min-width:0;padding:14px 15px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper-2);color:inherit;
  transition:transform var(--t-2) var(--ease-out),border-color var(--t-2),
    background var(--t-2),box-shadow var(--t-2);
}
.me-school:hover{
  transform:translateY(-3px);
  border-color:var(--blue-line);background:var(--blue-soft);box-shadow:var(--sh-2);
}
.me-school:active{transform:translateY(-1px) scale(.995)}
.me-school-top{display:flex;align-items:center;gap:9px;min-width:0}
.me-school-mark{
  width:30px;height:30px;border-radius:8px;flex:none;
  display:grid;place-items:center;
  background:var(--blue-soft);color:var(--blue-ink);
  font-size:11.5px;font-weight:750;
  transition:transform var(--t-2) var(--spring);
}
.me-school:hover .me-school-mark{transform:scale(1.06)}
.me-school-mark.is-ink{background:var(--ink);color:var(--bg)}
.me-school-name{
  font-size:13.5px;font-weight:650;letter-spacing:-.01em;line-height:1.35;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.me-school-pills{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.me-school-pill{
  padding:1px 6px;border-radius:var(--r-full);
  border:1px solid var(--line-2);background:var(--paper-2);
  font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--ink-3);
}
.me-school-pill.is-blue{
  background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue-ink);
}
.me-school-meta{
  display:flex;align-items:center;gap:4px;
  font-size:11px;color:var(--ink-4);
}
.me-school-meta .ic{font-size:11px}
.me-school-aplus{
  font-size:11px;line-height:1.55;color:var(--ink-3);
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.me-school-aplus b{color:var(--blue-ink);font-weight:650}

/* ─── 备考计划 ───────────────────────────────────── */
.me-rows{display:flex;flex-direction:column;gap:14px}
.me-row-h{
  display:flex;align-items:baseline;justify-content:space-between;gap:10px;
  font-size:12.5px;color:var(--ink-3);
}
.me-row-h b{
  font-size:12.5px;font-weight:650;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.me-facts{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.me-fact{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 9px;border-radius:var(--r-full);
  border:1px solid var(--line-2);background:var(--paper-2);
  font-size:11px;color:var(--ink-3);
}
.me-fact .ic{font-size:11px;color:var(--ink-4)}
.me-tip{margin-top:10px;font-size:11.5px;line-height:1.55;color:var(--ink-4)}

/* ─── 分数自查 ───────────────────────────────────── */
.me-score-top{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}
.me-score-total{
  font-size:38px;line-height:1;font-weight:760;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.me-score-top > span{font-size:12px;color:var(--ink-4)}
.me-score-gap{
  margin-left:auto;padding:2px 9px;border-radius:var(--r-full);
  border:1px solid var(--blue-line);background:var(--blue-soft);
  font-style:normal;font-size:11.5px;color:var(--blue-ink);white-space:nowrap;
}
.me-score-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;margin-top:14px;
}
.me-score-cell{
  padding:9px 6px;border:1px solid var(--line-2);border-radius:var(--r-xs);
  background:var(--paper-2);text-align:center;
  transition:border-color var(--t-2),background var(--t-2);
}
.me-score-cell:hover{border-color:var(--line);background:var(--paper)}
.me-score-cell small{display:block;font-size:10.5px;letter-spacing:.02em;color:var(--ink-4)}
.me-score-cell b{
  display:block;margin-top:3px;font-size:16px;font-weight:700;
  font-variant-numeric:tabular-nums;
}
.me-pass{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:13px}
.me-pass-k{
  margin-right:2px;font-size:10.5px;font-weight:700;
  letter-spacing:.05em;color:var(--ink-4);
}
.me-pass-tag{
  padding:2px 7px;border-radius:var(--r-full);
  border:1px solid var(--blue-line);background:var(--blue-soft);
  font-size:10.5px;color:var(--blue-ink);
}

/* ─── 专属计划 ───────────────────────────────────── */
.me-profile{
  padding:13px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);
  background:var(--paper-2);
}
.me-profile-h{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:11px;color:var(--ink-4);
}
.me-profile-h span:first-child{display:inline-flex;align-items:center;gap:5px}
.me-profile-h .ic{font-size:12px}
.me-profile-tag{
  padding:1px 6px;border-radius:var(--r-full);
  border:1px solid var(--line-2);font-size:10px;color:var(--ink-3);
}
.me-profile p{margin-top:7px;font-size:13px;line-height:1.65;color:var(--ink-2)}

.me-ai{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line-2)}
.me-ai-h{display:flex;align-items:center;gap:7px;font-size:11px;color:var(--ink-4)}
.me-ai-h span:first-child{
  display:inline-flex;align-items:center;gap:5px;color:var(--ink-3);
}
.me-ai-h .ic{font-size:12px}
.me-ai-h i{
  margin-left:auto;max-width:45%;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;font-style:normal;font-size:10.5px;color:var(--ink-4);
}
.me-ai-prev{margin-top:9px;font-size:13px;line-height:1.7;color:var(--ink-2)}
.me-ai-full{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows var(--t-3) var(--ease-out);
}
.me-ai.open .me-ai-full{grid-template-rows:1fr}
.me-ai-full-in{
  overflow:hidden;opacity:0;transform:translateY(-4px);
  transition:opacity var(--t-2) var(--ease-out),transform var(--t-2) var(--ease-out);
}
.me-ai.open .me-ai-full-in{opacity:1;transform:none}
.me-ai-full-in h4{
  margin:14px 0 6px;font-size:13.5px;font-weight:700;
  letter-spacing:-.01em;color:var(--blue-ink);
}
.me-ai-full-in p{margin:6px 0;font-size:12.8px;line-height:1.7;color:var(--ink-3)}
.me-ai-full-in ul{margin:6px 0;padding-left:18px}
.me-ai-full-in li{margin:3px 0;font-size:12.8px;line-height:1.7;color:var(--ink-3)}
.me-ai-full-in strong{color:var(--ink);font-weight:650}
.me-ai-full-in code{
  padding:1px 4px;border-radius:4px;background:var(--paper-2);
  font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace;
  font-size:12px;color:var(--ink-2);
}
.me-ai-btn{
  display:inline-flex;align-items:center;gap:6px;
  height:30px;margin-top:11px;padding:0 12px;border-radius:var(--r-full);
  border:1px solid var(--line);background:var(--paper-2);
  font-size:12px;color:var(--ink-3);
  transition:color var(--t-2),border-color var(--t-2),background var(--t-2),
    transform var(--t-1) var(--spring);
}
.me-ai-btn:hover{
  color:var(--ink);border-color:var(--blue-line);background:var(--blue-soft);
}
.me-ai-btn:active{transform:scale(.97)}
.me-ai-btn .ic{font-size:12px;transition:transform var(--t-2) var(--ease-io)}
.me-ai.open .me-ai-btn .ic{transform:rotate(90deg)}

/* ─── 收藏的调剂 ─────────────────────────────────── */
.me-adjust{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.me-adjust-n{display:flex;align-items:baseline;gap:8px;flex:none}
.me-adjust-n b{
  font-size:40px;line-height:1;font-weight:760;letter-spacing:-.03em;
  font-variant-numeric:tabular-nums;
}
.me-adjust-n span{font-size:12px;color:var(--ink-4)}
.me-adjust-list{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;
}
.me-adjust-item{
  display:inline-flex;align-items:center;gap:6px;max-width:100%;
  padding:6px 10px;border-radius:var(--r-full);
  border:1px solid var(--line-2);background:var(--paper-2);
  font-size:11.5px;color:var(--ink-3);
}
.me-adjust-item .ic{font-size:11px;color:var(--ink-4);flex:none}
.me-adjust-item b{
  font-size:11.5px;font-weight:600;color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.me-adjust-item i{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-style:normal;font-size:11px;color:var(--ink-4);
}
.me-adjust-more{font-size:11px;color:var(--ink-4)}

/* ─── 快捷入口 ───────────────────────────────────── */
.me-quick{margin-top:22px}
.me-quick-h{
  display:flex;align-items:baseline;justify-content:space-between;gap:14px;
  margin-bottom:12px;
}
.me-quick-h h2{font-size:15.5px;font-weight:680;letter-spacing:-.01em}
.me-quick-h span{font-size:11.5px;color:var(--ink-4)}
.me-quick-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.me-quick-btn{
  display:flex;align-items:center;justify-content:center;gap:7px;
  height:44px;padding:0 10px;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--paper-2);
  font-size:12.5px;font-weight:600;color:var(--ink-2);
  transition:transform var(--t-2) var(--ease-out),border-color var(--t-2),
    background var(--t-2),color var(--t-2),box-shadow var(--t-2);
}
.me-quick-btn .ic{font-size:14px;color:var(--ink-4);transition:color var(--t-2),transform var(--t-2)}
.me-quick-btn:hover{
  transform:translateY(-2px);
  border-color:var(--blue-line);background:var(--blue-soft);
  color:var(--ink);box-shadow:var(--sh-2);
}
.me-quick-btn:hover .ic{color:var(--blue-ink)}
.me-quick-btn:active{transform:translateY(0) scale(.97)}
.me-quick-arrow{display:none}

/* ─── 数据说明 ───────────────────────────────────── */
.me-note{
  display:flex;align-items:flex-start;gap:8px;
  margin-top:26px;padding-top:16px;border-top:1px solid var(--line-2);
  font-size:11.5px;line-height:1.7;color:var(--ink-4);
}
.me-note .ic{margin-top:2px;font-size:13px;color:var(--ink-4)}
.me-note span{max-width:80ch}

/* ─── 入场：错开上浮（用 translate，不占 transform，悬停仍可抬起）── */
.me-rise{
  animation:meRise .5s var(--ease-out) both;
  animation-delay:calc(var(--i,0) * 55ms);
}
@keyframes meRise{
  from{opacity:0;translate:0 16px}
  to{opacity:1;translate:0 0}
}

/* ─── 焦点可见 ───────────────────────────────────── */
.me-quick-btn:focus-visible,
.me-school:focus-visible,
.me-more:focus-visible,
.me-mini-link:focus-visible,
.me-ai-btn:focus-visible,
.me-login:focus-visible,
.me-logout:focus-visible{
  outline:2px solid var(--blue);outline-offset:2px;border-radius:var(--r-sm);
}

/* ─── 响应式 ─────────────────────────────────────── */
@media (max-width:980px){
  .me-grid{grid-template-columns:1fr}
  .me-block.is-wide{grid-column:auto}
  .me-schools{grid-template-columns:repeat(2,minmax(0,1fr))}
  .me-quick-row{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:640px){
  .me-page{padding-top:30px}
  .me-head{margin-bottom:18px}
  .me-id{padding:18px 16px;gap:14px}
  .me-id-avatar{width:44px;height:44px;font-size:16px}
  .me-id-txt h2{font-size:17px}
  .me-login,.me-logout{margin-left:0;width:100%}
  .me-today.today{margin-top:14px}
  .me-block{padding:18px 16px}
  .me-schools{grid-template-columns:1fr}
  .me-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .me-score-gap{margin-left:0}
  .me-adjust{flex-direction:column;align-items:flex-start;gap:14px}
  .me-quick-row{grid-template-columns:1fr}
  .me-quick-btn{justify-content:flex-start;height:46px;padding:0 14px}
  .me-quick-arrow{display:inline-block;margin-left:auto;color:var(--ink-4)}
  .me-task-src{display:none}
}

/* ─── 减少动态 ───────────────────────────────────── */
@media (prefers-reduced-motion:reduce){
  .me-rise{animation:none;opacity:1;translate:none}
  .me-bar > i{animation:none}
  .me-ai-full,.me-ai-full-in{transition:none}
  .me-block:hover,.me-school:hover,.me-quick-btn:hover{transform:none}
}
