/* ═══════════════════════════════════════════════════
   研途 · 备考计划
   输入条件 / 总览 / 我的计划 / 本周安排 / 分阶段计划
   mp- 前缀；mp-my- = 自建任务，mp-wk- = 本周自排
   ═══════════════════════════════════════════════════ */

/* ─── 进场 ───────────────────────────────────────── */
.mp-rise{
  animation:mpRise .52s var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 60ms);
}
@keyframes mpRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes mpFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes mpPop{0%{transform:scale(1)}45%{transform:scale(1.22)}100%{transform:scale(1)}}
@keyframes mpPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}

/* ─── 页头 ───────────────────────────────────────── */
.mp-page .title em{font-style:normal;color:var(--blue);font-variant-numeric:tabular-nums}

/* ─── 输入卡 ─────────────────────────────────────── */
.mp-cfg{padding:20px 24px 22px;cursor:default}
.mp-cfg:hover{transform:none;box-shadow:var(--sh-1);border-color:var(--line)}
.mp-cfg::after{display:none}
.mp-cfg-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-bottom:16px;padding-bottom:13px;border-bottom:1px solid var(--line-2);
}
.mp-cap{
  display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-4);
}
.mp-cap .ic{color:var(--blue);font-size:14px}

.mp-cfg-grid{
  display:grid;gap:20px 26px;align-items:start;
  grid-template-columns:
    minmax(0,.9fr) minmax(0,1.15fr) minmax(0,1.45fr) minmax(0,1fr);
}
.mp-field{display:flex;flex-direction:column;min-width:0}
.mp-field .yt-label{margin-bottom:8px}
.mp-field-hint{margin-top:7px;font-size:11.5px;color:var(--ink-4);font-variant-numeric:tabular-nums}

.mp-date{color-scheme:dark;font-variant-numeric:tabular-nums}
.mp-date::-webkit-calendar-picker-indicator{opacity:.4;cursor:pointer;transition:opacity var(--t-2)}
.mp-date::-webkit-calendar-picker-indicator:hover{opacity:.85}

.mp-range{display:flex;align-items:center;gap:14px;height:42px}
.mp-range .yt-range{
  flex:1;min-width:0;
  background:linear-gradient(90deg,var(--blue) 0 var(--p,50%),var(--line) var(--p,50%) 100%);
}
.mp-range .yt-range::-webkit-slider-thumb{box-shadow:0 0 0 4px rgba(59,130,246,.16),0 2px 8px rgba(0,0,0,.55)}
.mp-hours{
  display:inline-block;flex:none;min-width:62px;text-align:right;
  font-size:15.5px;font-weight:720;letter-spacing:-.01em;
  color:var(--blue-ink);font-variant-numeric:tabular-nums;transition:color var(--t-2);
}
.mp-hours i{font-style:normal;font-size:11px;font-weight:500;color:var(--ink-4);margin-left:0;letter-spacing:0}

.mp-tags{display:flex;flex-wrap:wrap;gap:7px}
.mp-tags .tag{
  height:30px;padding:0 12px;font-size:12.5px;
  transition:transform var(--t-1) var(--spring),background var(--t-2),
    border-color var(--t-2),color var(--t-2),box-shadow var(--t-3);
}
.mp-tags .tag:hover{border-color:var(--ink-4);color:var(--ink);transform:translateY(-1px) scale(1.02)}
.mp-tags .tag:active{transform:scale(.97)}
.mp-tags .tag.on{
  background:var(--blue);border-color:var(--blue);color:#fff;
  box-shadow:0 6px 18px -9px rgba(59,130,246,.95);
}

/* ─── 总览 ───────────────────────────────────────── */
.mp-ov{
  position:relative;margin-top:18px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);box-shadow:var(--sh-1);overflow:hidden;
}
.mp-ov::before{
  content:"";position:absolute;z-index:0;right:-8%;top:-140px;width:520px;height:400px;
  pointer-events:none;background:radial-gradient(circle at 60% 40%,rgba(59,130,246,.24),transparent 64%);
}
.mp-ov-head{
  position:relative;z-index:1;display:flex;align-items:flex-end;flex-wrap:wrap;
  gap:24px 34px;padding:24px 28px 22px;
}
.mp-days{flex:none}
.mp-days small{
  display:block;font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-4);margin-bottom:3px;
}
.mp-days b{
  display:flex;align-items:baseline;gap:7px;font-size:clamp(46px,6vw,64px);line-height:1;
  font-weight:780;letter-spacing:-.045em;font-variant-numeric:tabular-nums;
  color:var(--ink);transition:color var(--t-3);
}
.mp-days b i{font-style:normal;font-size:15px;font-weight:500;color:var(--ink-3);letter-spacing:0}
.mp-days.is-urgent b{color:var(--red)}

.mp-verdict{flex:1;min-width:min(100%,270px);padding-bottom:3px}
.mp-verdict .pill{height:26px;padding:0 11px;font-size:12px}
.mp-verdict p{
  margin-top:10px;font-size:clamp(16px,1.9vw,19px);line-height:1.42;font-weight:640;
  letter-spacing:-.012em;color:var(--ink);
}
.mp-tip{
  display:flex;align-items:flex-start;gap:6px;margin-top:10px;
  font-size:12.3px;line-height:1.5;color:var(--ink-4);
}
.mp-tip .ic{margin-top:.18em;color:var(--blue)}
.mp-chips{
  display:flex;flex-wrap:wrap;gap:6px 15px;margin-top:12px;
  font-size:12.3px;color:var(--ink-4);font-variant-numeric:tabular-nums;
}
.mp-chips span{display:inline-flex;align-items:center;gap:5px}
.mp-chips .ic{font-size:13px}

.mp-ov .kv{
  position:relative;z-index:1;margin:0;border:0;border-top:1px solid var(--line);
  border-radius:0;background:var(--line-2);
}
.mp-ov .kv > div{background:transparent;padding:15px 28px}
.mp-ov .kv b{font-size:15px;font-variant-numeric:tabular-nums}

/* ─── 区块标题 / 工具栏 ──────────────────────────── */
.mp-sh{margin-top:46px}
.mp-toolbar{margin-bottom:16px}
.mp-toolbar .btn .ic{font-size:14px}

/* ═══════════════════════════════════════════════
   我的计划（自建任务 + 打卡）
   ═══════════════════════════════════════════════ */

/* 总进度 */
.mp-my-total{
  position:relative;
  padding:22px 24px 20px;margin:0 0 24px;
  border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);box-shadow:var(--sh-1);
  overflow:hidden;
}
.mp-my-total::after{
  content:"";position:absolute;right:-64px;top:-96px;
  width:250px;height:250px;border-radius:50%;
  pointer-events:none;
  background:radial-gradient(circle,rgba(59,130,246,.18),transparent 70%);
  animation:mpFadeIn var(--t-4) var(--ease-out) both;
}
.mp-my-total-in{
  position:relative;z-index:1;
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;
}
.mp-my-total-main{min-width:120px}
.mp-my-total-k{display:block;font-size:12px;letter-spacing:.12em;color:var(--ink-4);margin-bottom:6px}
.mp-my-pct{display:flex;align-items:baseline;gap:3px;font-variant-numeric:tabular-nums}
.mp-my-pct b{font-size:50px;line-height:.94;font-weight:760;letter-spacing:-.045em;transition:color var(--t-2)}
.mp-my-pct i{font-style:normal;font-size:18px;font-weight:600;color:var(--ink-3)}

.mp-my-of{
  font-size:13px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;letter-spacing:.01em;padding-bottom:4px;
}
.mp-my-of b{color:var(--ink);font-weight:650}

.mp-my-stats{margin-left:auto;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.mp-my-stat{
  display:inline-flex;align-items:center;gap:7px;
  font-size:12.5px;color:var(--ink-3);white-space:nowrap;
}
.mp-my-stat i{
  width:8px;height:8px;border-radius:50%;flex:none;
  transition:background var(--t-2),border-color var(--t-2),transform var(--t-2) var(--spring);
}
.mp-my-stat b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
.mp-my-stat i.s-doing{background:var(--blue-ink)}
.mp-my-stat i.s-fin{background:var(--blue)}
.mp-my-stat i.s-idle{border:1.5px solid var(--ink-4)}

.mp-my-track{
  position:relative;z-index:1;
  height:8px;margin-top:18px;border-radius:var(--r-full);
  background:rgba(255,255,255,.06);
  overflow:hidden;
}
.mp-my-track > i{
  display:block;height:100%;width:0;border-radius:inherit;
  background:linear-gradient(90deg,rgba(139,139,152,.55) 0%,var(--blue) 58%,var(--blue-ink) 100%);
  transform-origin:left center;
  animation:mpBarIn .8s var(--ease-out) backwards;
  transition:width .72s var(--ease-out),opacity var(--t-2);
}
@keyframes mpBarIn{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* 工具栏 */
.mp-my-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.mp-my-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:0}
.mp-my-filters .tag{cursor:pointer;transition:transform var(--t-1) var(--spring),background var(--t-2),border-color var(--t-2),color var(--t-2)}

.mp-my-sort{display:flex;align-items:center;gap:8px}
.mp-my-sort-k{font-size:12px;color:var(--ink-4);letter-spacing:.05em}
.mp-my-select-wrap{position:relative;display:inline-flex;align-items:center}
.mp-my-select{
  -webkit-appearance:none;appearance:none;
  height:32px;padding:0 30px 0 13px;
  border-radius:var(--r-full);border:1px solid var(--line);
  background:rgba(255,255,255,.045);
  color:var(--ink-2);font-size:12.5px;outline:0;cursor:pointer;
  transition:border-color var(--t-2),color var(--t-2),background var(--t-2),transform var(--t-1) var(--spring);
}
.mp-my-select:hover{border-color:var(--ink-4);color:var(--ink);transform:scale(1.02)}
.mp-my-select:active{transform:scale(.97)}
.mp-my-select:focus-visible{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.mp-my-select option{background:var(--paper-solid);color:var(--ink)}
.mp-my-select-wrap .ic{
  position:absolute;right:11px;font-size:12px;color:var(--ink-4);pointer-events:none;
  transition:color var(--t-2);
}
.mp-my-select-wrap:hover .ic{color:var(--ink-2)}

.mp-my-count{
  margin-left:auto;font-size:12.5px;color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}
.mp-my-count b{color:var(--ink-2);font-weight:650}
.mp-my-add{flex:none}

/* 添加表单（0fr → 1fr） */
.mp-my-form{
  display:grid;grid-template-rows:0fr;
  transition:grid-template-rows var(--t-3) var(--ease-out);
}
.mp-my-form.on{grid-template-rows:1fr}
.mp-my-form-in{overflow:hidden;min-height:0}
.mp-my-form-body{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;
  padding:20px 20px 18px;margin:0 0 16px;
  border:1px solid var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.035);
  opacity:0;transform:translateY(-8px);
  transition:opacity var(--t-2) var(--ease-out) 40ms,
             transform var(--t-3) var(--ease-out),
             border-color var(--t-2);
}
.mp-my-form.on .mp-my-form-body{opacity:1;transform:none}

.mp-my-field{min-width:0}
.mp-my-field.mp-my-wide{grid-column:1 / -1}
.mp-my-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-height:32px}
.mp-my-chips .tag{cursor:pointer;transition:transform var(--t-1) var(--spring),background var(--t-2),border-color var(--t-2),color var(--t-2)}

.mp-my-form-act{
  grid-column:1 / -1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:4px;
}
.mp-my-form-act .yt-hint{margin-left:2px}

/* 输入校验抖动 */
.yt-input.is-err{
  border-color:var(--red-line);
  box-shadow:0 0 0 3px var(--red-soft);
  animation:mpShake var(--t-3) var(--ease-io);
}
@keyframes mpShake{
  0%,100%{transform:translateX(0)}
  20%{transform:translateX(-5px)}
  40%{transform:translateX(4px)}
  60%{transform:translateX(-3px)}
  80%{transform:translateX(2px)}
}

/* 任务列表 */
.mp-my-list{display:flex;flex-direction:column;gap:10px}

.mp-my-row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(150px,.85fr) auto;
  align-items:center;gap:18px;
  padding:14px 16px;
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--paper);
  max-height:460px;overflow:hidden;
  animation:mpRowIn var(--t-4) var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 38ms);
  transition:opacity var(--t-3) var(--ease-out),
             transform var(--t-3) var(--ease-out),
             max-height var(--t-3) var(--ease-out),
             padding var(--t-3) var(--ease-out),
             background var(--t-2),border-color var(--t-2),box-shadow var(--t-2);
  will-change:transform;
}
@keyframes mpRowIn{from{opacity:0;transform:translateY(-12px) scale(.988)}to{opacity:1;transform:none}}
.mp-my-row::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  pointer-events:none;opacity:0;
  background:linear-gradient(115deg,var(--blue-soft),transparent 60%);
}
.mp-my-row:hover{
  border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.052);
  box-shadow:var(--sh-2);transform:translateY(-1px);
}
.mp-my-row.done{opacity:.6;background:var(--blue-soft);border-color:var(--blue-line)}
.mp-my-row.done:hover{opacity:.88}

.mp-my-row.is-new{animation:mpRowNew var(--t-4) var(--ease-out) both}
.mp-my-row.is-new::after{animation:mpFlash var(--t-4) var(--ease-out) both}
@keyframes mpRowNew{
  from{opacity:0;transform:translateY(-16px) scale(.985)}
  to{opacity:1;transform:none}
}
@keyframes mpFlash{0%{opacity:1}100%{opacity:0}}

.mp-my-row.is-out{
  opacity:0;transform:translateX(26px);
  max-height:0;padding-top:0;padding-bottom:0;border-color:transparent;
}

.mp-my-id{display:flex;align-items:flex-start;gap:10px;min-width:0}
.mp-my-dot{
  width:9px;height:9px;border-radius:3px;flex:none;margin-top:7px;
  background:var(--blue);
  transition:background var(--t-2),transform var(--t-2) var(--spring);
}
.mp-my-row:hover .mp-my-dot{transform:scale(1.18)}
.mp-my-dot.cat-0{background:var(--blue)}
.mp-my-dot.cat-1{background:var(--blue-ink)}
.mp-my-dot.cat-2{background:var(--ink)}
.mp-my-dot.cat-3{background:var(--ink-3)}
.mp-my-dot.cat-4{background:var(--ink-4)}

.mp-my-id-txt{min-width:0}
.mp-my-name{
  font-size:14.5px;font-weight:640;letter-spacing:-.01em;line-height:1.4;color:var(--ink);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:color var(--t-2);
}
.mp-my-note{
  font-size:12px;color:var(--ink-4);line-height:1.5;margin-top:3px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.mp-my-prog{display:flex;align-items:center;gap:11px;min-width:0}
.mp-my-bar{
  position:relative;flex:1 1 auto;min-width:56px;height:6px;
  border-radius:var(--r-full);background:rgba(255,255,255,.075);overflow:hidden;
}
.mp-my-fill{
  display:block;height:100%;width:0;border-radius:inherit;
  background:linear-gradient(90deg,rgba(139,139,152,.6),var(--blue));
  transform-origin:left center;
  animation:mpBarIn .7s var(--ease-out) backwards;
  transition:width .62s var(--ease-out),background var(--t-3) var(--ease-out);
}
.mp-my-row.done .mp-my-fill{background:linear-gradient(90deg,var(--blue),var(--blue-ink))}
.mp-my-num{
  flex:none;display:inline-flex;align-items:center;gap:2px;
  min-width:44px;justify-content:flex-end;
  font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;
  transform-origin:right center;
}
.mp-my-num b{font-size:14px;font-weight:680;color:var(--ink);transition:color var(--t-2)}
.mp-my-num i{font-style:normal;color:var(--ink-4)}
.mp-my-tgt{color:var(--ink-3)}
.mp-my-num.is-pop{animation:mpPop var(--t-3) var(--spring)}

.mp-my-acts{display:flex;align-items:center;gap:8px;flex:none}

.mp-my-flag{
  display:inline-flex;align-items:center;gap:5px;
  height:23px;padding:0;border-radius:var(--r-full);
  font-size:11.5px;font-weight:600;letter-spacing:.02em;
  background:var(--blue-soft);color:var(--blue-ink);
  max-width:0;opacity:0;overflow:hidden;white-space:nowrap;
  transition:max-width var(--t-3) var(--ease-out),
             opacity var(--t-2) var(--ease-out),
             padding var(--t-3) var(--ease-out);
}
.mp-my-flag .ic{font-size:11px}
.mp-my-row.done .mp-my-flag{max-width:6.2em;padding:0 9px;opacity:1}

.mp-my-undo{
  width:30px;height:30px;border-radius:50%;flex:none;
  display:grid;place-items:center;
  color:var(--ink-4);font-size:13px;border:1px solid transparent;
  transition:color var(--t-2),background var(--t-2),border-color var(--t-2),
             transform var(--t-1) var(--spring),opacity var(--t-2);
}
.mp-my-undo:hover{color:var(--ink);border-color:var(--line);background:rgba(255,255,255,.06);transform:scale(1.02)}
.mp-my-undo:active{transform:scale(.97)}
.mp-my-undo:disabled{opacity:.24;cursor:default}
.mp-my-undo:disabled:hover{color:var(--ink-4);border-color:transparent;background:none;transform:none}

.mp-my-tick{
  width:36px;height:36px;border-radius:50%;flex:none;
  display:grid;place-items:center;font-size:15px;
  color:var(--blue-ink);
  border:1px solid var(--blue-line);
  background:var(--blue-soft);
  transition:color var(--t-2),background var(--t-2),border-color var(--t-2),
             transform var(--t-1) var(--spring),opacity var(--t-2),box-shadow var(--t-2);
}
.mp-my-tick:hover{
  background:var(--blue);color:#fff;border-color:var(--blue);
  transform:scale(1.02);
  box-shadow:0 6px 18px -8px rgba(59,130,246,.9);
}
.mp-my-tick:active{transform:scale(.97)}
.mp-my-row.done .mp-my-tick{
  opacity:.45;background:transparent;border-color:var(--line);color:var(--ink-3);
  cursor:default;transform:none;box-shadow:none;
}
.mp-my-row.done .mp-my-tick:hover{background:transparent;color:var(--ink-3);border-color:var(--line)}

.mp-my-del{
  display:inline-flex;align-items:center;gap:6px;flex:none;
  height:30px;padding:0 8px;border-radius:var(--r-full);
  color:var(--ink-4);font-size:13px;border:1px solid transparent;
  white-space:nowrap;overflow:hidden;
  transition:color var(--t-2),background var(--t-2),border-color var(--t-2),
             padding var(--t-2) var(--ease-out),
             transform var(--t-1) var(--spring);
}
.mp-my-del:hover{color:var(--ink-2);background:rgba(255,255,255,.06);transform:scale(1.02)}
.mp-my-del:active{transform:scale(.97)}
.mp-my-del-txt{
  max-width:0;opacity:0;overflow:hidden;
  font-size:12px;font-weight:600;letter-spacing:.02em;
  transition:max-width var(--t-3) var(--ease-out),opacity var(--t-2) var(--ease-out);
}
.mp-my-row.is-confirm .mp-my-del{
  color:var(--red);background:var(--red-soft);border-color:var(--red-line);padding:0 11px;
}
.mp-my-row.is-confirm .mp-my-del-txt{max-width:5.4em;opacity:1}

/* 空状态 */
.mp-my-empty{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:50px 22px;
  border:1px dashed var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.02);
  text-align:center;
  animation:mpFadeIn var(--t-3) var(--ease-out) both;
}
.mp-my-empty-ic{font-size:30px;color:var(--ink-4);line-height:1}
.mp-my-empty p{font-size:13.5px;color:var(--ink-3)}

/* ═══════════════════════════════════════════════
   本周安排（7 天自己填）
   ═══════════════════════════════════════════════ */
.mp-weekcard{margin-top:18px;padding:22px 24px 20px}
.mp-weekcard:hover{transform:none;border-color:var(--line);box-shadow:var(--sh-1)}
.mp-weekcard::after{display:none}

.mp-weekhead{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.mp-weekhead h3{font-size:16px;font-weight:690;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.mp-weekhead .pill{height:24px;font-size:11.5px;font-variant-numeric:tabular-nums}
.mp-weekhead .pill b{color:var(--ink);font-weight:700}
.mp-weekhead .spacer{margin-left:auto}

.mp-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.mp-day{
  display:flex;flex-direction:column;align-items:center;gap:5px;
  padding:12px 4px 10px;border:1px solid var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.028);color:var(--ink-2);
  transition:transform var(--t-2) var(--spring),background var(--t-2),
    border-color var(--t-2),box-shadow var(--t-2),opacity var(--t-2);
}
.mp-day:hover{transform:translateY(-2px) scale(1.02);background:rgba(255,255,255,.06);border-color:var(--ink-4)}
.mp-day:active{transform:scale(.97)}
.mp-day-w{font-size:11px;letter-spacing:.03em;color:var(--ink-4);white-space:nowrap}
.mp-day-d{font-size:14.5px;font-weight:680;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.mp-day-n{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap}
.mp-dot{
  width:6px;height:6px;border-radius:50%;background:var(--ink-4);
  transition:background var(--t-2),box-shadow var(--t-2),transform var(--t-2);
}
.mp-day[data-today="1"]{border-color:var(--blue-line);background:var(--blue-soft)}
.mp-day[data-today="1"] .mp-day-n{color:var(--blue-ink)}
.mp-day[data-today="1"] .mp-dot{
  background:var(--blue);box-shadow:0 0 0 3px rgba(59,130,246,.18);
  animation:mpPulse 2.4s var(--ease-io) infinite;
}
.mp-day[data-exam="1"]{border-color:var(--red-line);background:var(--red-soft)}
.mp-day[data-exam="1"] .mp-day-d{color:var(--red)}
.mp-day[data-exam="1"] .mp-day-n{color:var(--red)}
.mp-day[data-exam="1"] .mp-dot{background:var(--red);box-shadow:none;animation:none}
.mp-day.on{
  border-color:var(--blue-line);
  box-shadow:0 0 0 2px var(--blue) inset,0 8px 22px -14px rgba(59,130,246,.9);
}

/* 展开 / 收起 */
.mp-week-detail{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--t-3) var(--ease-io)}
.mp-week-detail.open{grid-template-rows:1fr}
.mp-week-detail-in{overflow:hidden;min-height:0}
.mp-wk{
  margin-top:14px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.022);
  opacity:0;transform:translateY(-6px);
  transition:opacity var(--t-2) var(--ease-out),transform var(--t-3) var(--ease-out);
}
.mp-week-detail.open .mp-wk{opacity:1;transform:none;transition-delay:70ms}

.mp-wk-head{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-bottom:12px}
.mp-wk-head b{font-size:14px;font-weight:660;font-variant-numeric:tabular-nums}
.mp-wk-head .pill{height:23px;font-size:11.5px;font-variant-numeric:tabular-nums}
.mp-wk-hint{margin-left:auto;font-size:11.5px;color:var(--ink-4)}

.mp-wk-form{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-bottom:12px}
.mp-wk-form .yt-input{flex:1;min-width:180px}
.mp-wk-form .btn{flex:none}

.mp-wk-list{display:flex;flex-direction:column;gap:2px}
.mp-wk-row{
  display:flex;align-items:center;gap:10px;
  padding:8px 10px;border-radius:9px;
  max-height:120px;overflow:hidden;
  animation:mpFadeIn var(--t-3) var(--ease-out) backwards;
  transition:background var(--t-2),opacity var(--t-3) var(--ease-out),
             transform var(--t-3) var(--ease-out),max-height var(--t-3) var(--ease-out),
             padding var(--t-3) var(--ease-out);
}
.mp-wk-row:hover{background:rgba(255,255,255,.05)}
.mp-wk-row.is-new{animation:mpWkIn var(--t-3) var(--ease-out) both}
@keyframes mpWkIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.mp-wk-row.is-out{
  opacity:0;transform:translateX(22px);max-height:0;padding-top:0;padding-bottom:0;
}
.mp-wk-check{flex:none}
.mp-wk-check .yt-box{transition:background var(--t-2),border-color var(--t-2),box-shadow var(--t-2)}
.mp-wk-check:hover .yt-box{border-color:var(--blue)}
.mp-wk-check[aria-pressed="true"] .yt-box{background:var(--blue);border-color:var(--blue)}
.mp-wk-check[aria-pressed="true"] .yt-box .ic{opacity:1;transform:none}
.mp-wk-t{
  flex:1;min-width:0;font-size:13.4px;line-height:1.5;color:var(--ink-2);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:color var(--t-2);
}
.mp-wk-row.on .mp-wk-t{color:var(--ink-4);text-decoration:line-through}
.mp-wk-del{
  flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  color:var(--ink-4);font-size:12px;border:1px solid transparent;
  opacity:.42;
  transition:opacity var(--t-2),color var(--t-2),background var(--t-2),
    border-color var(--t-2),transform var(--t-1) var(--spring);
}
.mp-wk-row:hover .mp-wk-del,.mp-wk-del:focus-visible{opacity:1}
.mp-wk-del:hover{color:var(--red);border-color:var(--red-line);background:var(--red-soft);transform:scale(1.02)}
.mp-wk-del:active{transform:scale(.97)}

.mp-wk-empty{
  display:flex;align-items:center;gap:9px;
  padding:16px 12px;border:1px dashed var(--line);border-radius:10px;
  font-size:12.8px;color:var(--ink-4);
  animation:mpFadeIn var(--t-3) var(--ease-out) both;
}
.mp-wk-empty .ic{flex:none;font-size:15px;color:var(--ink-4)}

/* 详情头：今天 / 初试 标记槽 */
.mp-wk-flags{display:inline-flex;align-items:center;gap:7px}
.mp-wk-flags:empty{display:none}

/* 周起始日对不上：顺延 / 归档清空 */
.mp-wk-stale{
  display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;
  padding:18px;border:1px solid var(--blue-line);border-radius:var(--r);
  background:linear-gradient(180deg,rgba(59,130,246,.12),rgba(255,255,255,.02));
  animation:mpFadeIn var(--t-3) var(--ease-out) both;
}
.mp-wk-stale-ic{
  flex:none;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:rgba(59,130,246,.18);color:var(--blue-ink);font-size:18px;
}
.mp-wk-stale-t{flex:1;min-width:min(100%,220px)}
.mp-wk-stale-t b{display:block;font-size:14.5px;font-weight:680;letter-spacing:-.01em}
.mp-wk-stale-t p{margin-top:5px;font-size:12.5px;line-height:1.55;color:var(--ink-3)}
.mp-wk-stale-t p b{display:inline;color:var(--ink);font-size:inherit;font-weight:700;font-variant-numeric:tabular-nums}
.mp-wk-stale-acts{display:flex;align-items:center;gap:8px;flex:none;margin-left:auto}


/* ═══════════════════════════════════════════════
   分阶段计划
   ═══════════════════════════════════════════════ */
.mp-phases{display:flex;flex-direction:column;gap:14px}
.mp-phase{
  padding:0;border-radius:var(--r-lg);
  animation:mpPhaseRise .55s var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 70ms);
}
@keyframes mpPhaseRise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.mp-phase:hover{transform:translateY(-2px)}
.mp-phase:active{transform:translateY(-2px) scale(1)}
.mp-phase::after{display:none}
.mp-phase::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;z-index:1;
  background:linear-gradient(180deg,var(--blue),rgba(59,130,246,.08));
}
.mp-phase[data-phase="boost"]::before{background:linear-gradient(180deg,var(--ink),rgba(255,255,255,.06))}
.mp-phase[data-phase="sprint"]::before{background:linear-gradient(180deg,var(--red),rgba(240,90,90,.06))}

.mp-ph-h{
  display:flex;align-items:center;gap:14px;padding:18px 20px 16px 22px;
  cursor:pointer;user-select:none;
}
.mp-ph-h:hover .mp-ph-toggle{color:var(--ink)}
.mp-ph-t{flex:1;min-width:0}
.mp-ph-h h3{
  display:flex;align-items:center;flex-wrap:wrap;gap:9px;
  font-size:16.5px;font-weight:690;letter-spacing:-.015em;
}
.mp-ph-h h3 .pill{height:21px;font-size:11px}
.mp-ph-meta{
  display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:5px;
  font-size:12.5px;color:var(--ink-4);font-variant-numeric:tabular-nums;
}
.mp-ph-meta b{color:var(--ink-2);font-weight:650}
.mp-ph-meta .sep{opacity:.5}
.mp-ph-toggle{
  width:32px;height:32px;border-radius:10px;display:grid;place-items:center;flex:none;
  color:var(--ink-4);
  transition:background var(--t-2),color var(--t-2),transform var(--t-1) var(--spring);
}
.mp-ph-toggle:hover{background:rgba(255,255,255,.07);color:var(--ink);transform:scale(1.02)}
.mp-ph-toggle:active{transform:scale(.97)}
.mp-ph-toggle .ic{transition:transform var(--t-3) var(--ease-io)}
.mp-phase.closed .mp-ph-toggle .ic{transform:rotate(-90deg)}

.mp-ph-collapse{
  display:grid;grid-template-rows:1fr;
  transition:grid-template-rows var(--t-3) var(--ease-io);
}
.mp-phase.closed .mp-ph-collapse{grid-template-rows:0fr}
.mp-ph-collapse-in{overflow:hidden;min-height:0}

.mp-ph-body{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:26px;
  margin:0 22px;padding:18px 0 4px;border-top:1px solid var(--line-2);
}
.mp-goals h4,.mp-tasks h4{
  display:flex;align-items:center;gap:7px;margin-bottom:11px;
  font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-4);
}
.mp-goals h4 .ic,.mp-tasks h4 .ic{color:var(--ink-4);font-size:13px}
.mp-tasks h4 .mp-sum{
  margin-left:auto;text-transform:none;letter-spacing:0;
  font-size:11.5px;font-weight:500;color:var(--ink-4);
}

.mp-goals ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.mp-goals li{
  position:relative;padding-left:17px;font-size:13.2px;line-height:1.55;
  color:var(--ink-2);transition:color var(--t-2);
}
.mp-goals li::before{
  content:"";position:absolute;left:1px;top:.62em;width:6px;height:6px;border-radius:2px;
  background:var(--blue);transform:rotate(45deg);opacity:.85;
  transition:transform var(--t-2) var(--spring);
}
.mp-goals li:hover{color:var(--ink)}
.mp-goals li:hover::before{transform:rotate(45deg) scale(1.35)}
.mp-phase[data-phase="sprint"] .mp-goals li::before{background:var(--red)}

.mp-phase .mp-advice{
  display:flex;align-items:flex-start;gap:7px;margin-top:14px;padding:9px 11px;
  border:1px solid var(--blue-line);border-radius:9px;background:rgba(59,130,246,.07);
  font-size:12.3px;line-height:1.5;color:var(--blue-ink);
}
.mp-advice .ic{flex:none;margin-top:.15em;color:var(--blue)}

.mp-tlist{display:flex;flex-direction:column;gap:3px;margin:0 -9px}
.mp-task{
  display:flex;align-items:center;gap:9px;width:100%;
  padding:8px 9px;border-radius:9px;text-align:left;
  transition:background var(--t-2),transform var(--t-1) var(--spring);
}
.mp-task:hover{background:rgba(255,255,255,.05);transform:translateX(2px)}
.mp-task:active{transform:translateX(2px) scale(.97)}
.mp-task .yt-box{transition:background var(--t-2),border-color var(--t-2),box-shadow var(--t-2)}
.mp-task.on .yt-box{box-shadow:0 0 0 3px rgba(59,130,246,.14)}
.mp-task.mp-just .yt-box{animation:mpPop .42s var(--spring)}
.mp-sub{flex:none;font-size:13.4px;font-weight:650;color:var(--ink)}
.mp-hrs{
  flex:none;min-width:36px;text-align:center;padding:1px 6px;border-radius:6px;
  font-size:11.5px;font-variant-numeric:tabular-nums;
  color:var(--blue-ink);background:var(--blue-soft);
  transition:background var(--t-2),color var(--t-2);
}
.mp-act{
  flex:1;min-width:0;font-size:13px;color:var(--ink-3);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  transition:color var(--t-2);
}
.mp-task.on .mp-act{color:var(--ink-4);text-decoration:line-through}
.mp-task.on .mp-hrs{background:var(--blue);color:#fff}

.mp-ph-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 22px 18px}
.mp-bar{flex:1;min-width:100px;height:5px;border-radius:3px;background:var(--line);overflow:hidden}
.mp-bar i{
  display:block;height:100%;width:0;border-radius:3px;background:var(--blue);
  transition:width var(--t-4) var(--ease-out);
}
.mp-phase[data-phase="boost"] .mp-bar i{background:var(--ink)}
.mp-phase[data-phase="sprint"] .mp-bar i{background:var(--red)}
.mp-prog{flex:none;font-size:12px;color:var(--ink-4);font-variant-numeric:tabular-nums}
.mp-prog b{color:var(--ink-2);font-weight:650}

.mp-empty{display:flex;align-items:center;gap:12px;padding:26px 24px;color:var(--ink-3);font-size:14px}
.mp-empty .ic{color:var(--red);font-size:20px}

/* ─── 脚注 ───────────────────────────────────────── */
.mp-note{
  display:flex;align-items:center;gap:7px;margin-top:22px;
  font-size:12px;color:var(--ink-4);
}
.mp-note .ic{color:var(--ink-4);font-size:13px}

/* ─── 响应式 ─────────────────────────────────────── */
@media (max-width:980px){
  .mp-cfg-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mp-ph-body{grid-template-columns:1fr;gap:20px}
  .mp-ov-head{gap:22px}
  .mp-weekhead .spacer{display:none}
  .mp-my-row{grid-template-columns:minmax(0,1.2fr) minmax(120px,.9fr) auto}
}

@media (max-width:820px){
  .mp-my-row{
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:
      "id   acts"
      "prog prog";
    gap:10px 12px;padding:13px 14px;
  }
  .mp-my-id{grid-area:id;align-items:center}
  .mp-my-dot{margin-top:0}
  .mp-my-acts{grid-area:acts}
  .mp-my-prog{grid-area:prog}
  .mp-my-num{min-width:42px}
}

@media (max-width:640px){
  .mp-cfg{padding:16px 16px 18px}
  .mp-cfg-head{flex-wrap:wrap}
  .mp-cfg-grid{grid-template-columns:1fr;gap:16px}
  .mp-ov-head{padding:20px 18px 18px;gap:18px}
  .mp-ov .kv > div{padding:13px 18px}

  .mp-my-total{padding:18px 16px}
  .mp-my-pct b{font-size:42px}
  .mp-my-total-in{gap:16px}
  .mp-my-of{width:100%;padding-bottom:0}
  .mp-my-stats{margin-left:0;gap:14px}
  .mp-my-form-body{grid-template-columns:1fr;padding:16px 14px}
  .mp-my-toolbar{gap:8px}
  .mp-my-sort{margin-left:0}
  .mp-my-count{margin-left:0;order:5}
  .mp-my-add{margin-left:auto}
  .mp-my-row{gap:9px 10px}
  .mp-my-acts{gap:6px}
  .mp-my-tick{width:34px;height:34px}
  .mp-my-undo{width:28px;height:28px}
  .mp-my-flag{display:none}

  .mp-ph-h{padding:16px 14px 14px 18px;gap:11px}
  .mp-ph-meta{gap:8px;font-size:11.8px}
  .mp-ph-meta .sep{display:none}
  .mp-ph-body{margin:0 16px;padding-top:16px}
  .mp-ph-foot{padding:12px 16px 16px}

  .mp-weekcard{padding:18px 14px 16px}
  .mp-week{gap:5px}
  .mp-day{padding:10px 2px 8px;gap:4px}
  .mp-day-w{font-size:10px}
  .mp-day-d{font-size:11.5px;letter-spacing:0}
  .mp-day-n{font-size:10px}
  .mp-wk{padding:14px}
  .mp-wk-hint{display:none}
  .mp-wk-del{opacity:1}
  .mp-wk-stale{padding:16px;gap:12px}
  .mp-wk-stale-acts{width:100%;margin-left:0}
  .mp-wk-stale-acts .btn{flex:1}
}

@media (max-width:390px){
  .mp-my-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"id" "prog" "acts";gap:9px}
  .mp-my-acts{justify-content:flex-end}
  .mp-my-num{min-width:38px}
}

/* ═══════════════════════════════════════════════
   智能排期
   mp-ask- = 8 道选择题弹窗；mp-x- = 专属计划结果
   ═══════════════════════════════════════════════ */

/* ─── 输入卡里的入口 ─────────────────────────────── */
.mp-cfg-foot{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  margin-top:20px;padding-top:16px;border-top:1px solid var(--line-2);
}
.mp-cfg-foot-t{
  display:flex;align-items:center;gap:7px;min-width:0;
  font-size:12.5px;line-height:1.5;color:var(--ink-4);
}
.mp-cfg-foot-t .ic{flex:none;font-size:14px;color:var(--blue)}
.mp-cfg-cta{margin-left:auto;height:38px;flex:none;padding:0 18px}
.mp-cfg-cta .ic{font-size:15px}

/* ─── 问卷弹窗 ───────────────────────────────────── */
/* 顶部对齐：换题时高度变化只往下长 不会整块上下跳 */
.modal.mp-ask{align-items:flex-start;padding:11vh 24px 24px}
.mp-ask.closing{pointer-events:none}
.mp-ask-box{width:min(600px,94vw);max-height:84vh}
.mp-ask-box:focus,.mp-ask-box:focus-visible{outline:none}

.mp-ask-head{align-items:center;padding:18px 22px 14px}
.mp-ask-head small{margin-bottom:4px}
.mp-ask-head h3{font-size:16.5px}

.mp-ask-prog{display:flex;align-items:center;gap:12px;padding:0 22px 14px}
.mp-ask-track{
  flex:1;height:4px;border-radius:var(--r-full);
  background:rgba(255,255,255,.08);overflow:hidden;
}
.mp-ask-track i{
  display:block;height:100%;width:0;border-radius:inherit;
  background:linear-gradient(90deg,var(--blue),var(--blue-ink));
  transition:width var(--t-4) var(--ease-out);
}
.mp-ask-no{
  flex:none;font-size:12px;color:var(--ink-4);
  font-variant-numeric:tabular-nums;letter-spacing:.02em;
}
.mp-ask-no b{color:var(--ink-2);font-weight:650}

.mp-ask-body{padding:2px 22px 16px;overscroll-behavior:contain}
.mp-q{display:flex;flex-direction:column;min-height:286px}
.mp-q-t{font-size:20px;line-height:1.32;font-weight:700;letter-spacing:-.018em}
.mp-q-sub{margin-top:7px;font-size:13px;line-height:1.5;color:var(--ink-4)}
.mp-q-opts{display:flex;flex-direction:column;gap:8px;margin-top:16px}

.mp-q-opt{
  display:flex;align-items:center;gap:10px;width:100%;min-height:48px;
  padding:11px 14px;border:1px solid var(--line);border-radius:var(--r-sm);
  background:rgba(255,255,255,.03);color:var(--ink-2);text-align:left;
  font-size:14px;line-height:1.4;
  transition:transform var(--t-1) var(--spring),background var(--t-2),
    border-color var(--t-2),color var(--t-2),box-shadow var(--t-2);
}
.mp-q-opt:hover{
  background:rgba(255,255,255,.06);border-color:var(--ink-4);color:var(--ink);
  transform:translateY(-1px) scale(1.012);
}
.mp-q-opt:active{transform:scale(.97)}
.mp-q-opt-k{flex:1;min-width:0}
.mp-q-opt-ck{
  flex:none;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--line);font-size:11px;color:#fff;
  transition:background var(--t-2),border-color var(--t-2),transform var(--t-2) var(--spring);
}
.mp-q-opt-ck .ic{opacity:0;transform:scale(.4);transition:opacity var(--t-2),transform var(--t-2) var(--spring)}
.mp-q-opt.on{
  background:rgba(59,130,246,.18);border-color:rgba(59,130,246,.55);color:var(--ink);
  box-shadow:0 0 0 1px rgba(59,130,246,.4) inset,0 6px 18px -14px rgba(59,130,246,.9);
}
.mp-q-opt.on .mp-q-opt-ck{
  background:var(--blue);border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(59,130,246,.16);
}
.mp-q-opt.on .mp-q-opt-ck .ic{opacity:1;transform:none}
.mp-q-opt.is-pick{animation:mpAskPick .36s var(--spring)}
@keyframes mpAskPick{0%{transform:scale(.985)}55%{transform:scale(1.022)}100%{transform:none}}

.mp-q-note{
  display:flex;align-items:flex-start;gap:6px;margin-top:auto;padding-top:14px;
  font-size:12px;line-height:1.5;color:var(--ink-4);
}
.mp-q-note .ic{flex:none;margin-top:.18em;font-size:13px}

.mp-ask-foot{
  display:flex;align-items:center;gap:10px;
  padding:14px 22px;border-top:1px solid var(--line);
  background:rgba(255,255,255,.02);
}
.mp-ask-foot .btn:disabled{opacity:.3;pointer-events:none}
.mp-ask-hint{margin-left:auto;font-size:12px;color:var(--ink-4)}
.mp-ask-gen{display:none}
.mp-ask-box.is-last .mp-ask-hint{display:none}
.mp-ask-box.is-last .mp-ask-gen{display:inline-flex;margin-left:auto}
.mp-ask-gen.is-pop{animation:mpPop .42s var(--spring)}

/* ─── 结果：标题行 ───────────────────────────────── */
.mp-x-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.mp-x-acts .pill{height:26px;font-size:11.5px;font-variant-numeric:tabular-nums}
.mp-x-acts .pill .ic{font-size:12px}
.mp-x-acts .btn:disabled{opacity:.42;pointer-events:none;transform:none}

.mp-x-wrap{
  display:flex;flex-direction:column;gap:14px;
  animation:mpXFade .52s var(--ease-out) both;
}
@keyframes mpXFade{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* 空状态 */
.mp-x-empty{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  padding:24px;border:1px dashed var(--line);border-radius:var(--r-lg);
  background:rgba(255,255,255,.022);
  animation:mpFadeIn var(--t-3) var(--ease-out) both;
}
.mp-x-empty-ic{
  width:44px;height:44px;border-radius:12px;flex:none;
  display:grid;place-items:center;
  background:var(--blue-soft);color:var(--blue-ink);font-size:20px;
}
.mp-x-empty h4{font-size:15px;font-weight:660;letter-spacing:-.01em}
.mp-x-empty p{margin-top:4px;font-size:12.8px;line-height:1.55;color:var(--ink-4);max-width:54ch}
.mp-x-empty .btn{margin-left:auto;flex:none}

/* ─── 结果：诊断 ─────────────────────────────────── */
.mp-x-verdict{
  position:relative;overflow:hidden;
  padding:24px 26px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);box-shadow:var(--sh-1);
}
.mp-x-verdict::before{
  content:"";position:absolute;right:-10%;top:-130px;width:440px;height:330px;
  pointer-events:none;
  background:radial-gradient(circle at 60% 40%,rgba(59,130,246,.2),transparent 64%);
}
.mp-x-verdict .mp-cap{position:relative;margin-bottom:10px}
.mp-x-lead{
  position:relative;font-size:clamp(17px,2vw,21px);line-height:1.46;
  font-weight:660;letter-spacing:-.012em;
}
.mp-x-lead.is-warn{color:var(--red)}
.mp-x-chips{
  position:relative;display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;
  font-size:12.3px;color:var(--ink-4);font-variant-numeric:tabular-nums;
}
.mp-x-chips span{display:inline-flex;align-items:center;gap:5px}
.mp-x-chips .ic{font-size:13px;color:var(--ink-3)}

/* ─── 结果：两栏 ─────────────────────────────────── */
.mp-x-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px}
.mp-x-panel{
  padding:20px 22px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);box-shadow:var(--sh-1);
}
.mp-x-panel h4,.mp-x-sec > h5{
  display:flex;align-items:center;gap:7px;
  font-size:11.5px;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-4);
}
.mp-x-panel h4 .ic,.mp-x-sec > h5 .ic{font-size:13px;color:var(--ink-4)}
.mp-x-sum{
  margin-left:auto;font-size:11.5px;font-weight:500;
  letter-spacing:0;text-transform:none;color:var(--ink-4);
  font-variant-numeric:tabular-nums;
}

/* 条形图 */
.mp-x-bars{display:flex;flex-direction:column;gap:13px;margin-top:18px}
.mp-x-bar{display:flex;align-items:center;gap:12px}
.mp-x-bar-k{flex:none;width:52px;font-size:12.5px;color:var(--ink-3)}
.mp-x-bar-track{
  flex:1;height:9px;border-radius:var(--r-full);
  background:rgba(255,255,255,.06);overflow:hidden;
}
.mp-x-bar-fill{
  display:block;height:100%;width:var(--w,0);border-radius:inherit;
  transform-origin:left center;
  background:linear-gradient(90deg,rgba(139,139,152,.55),var(--blue) 58%,var(--blue-ink));
  animation:mpXGrow .9s var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 90ms + 140ms);
}
@keyframes mpXGrow{from{transform:scaleX(0)}to{transform:none}}
.mp-x-bar-v{
  flex:none;min-width:78px;text-align:right;
  font-size:12.5px;color:var(--ink-2);font-variant-numeric:tabular-nums;
}
.mp-x-bar-v em{font-style:normal;margin-left:6px;font-size:11.5px;color:var(--ink-4)}

/* 每日时间块 */
.mp-x-blocks{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.mp-x-block{
  display:grid;grid-template-columns:auto 1fr auto;
  grid-template-areas:"t c h" "a a a";
  gap:4px 10px;padding:12px 14px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:rgba(255,255,255,.028);
  animation:mpFadeIn var(--t-3) var(--ease-out) backwards;
  transition:border-color var(--t-2),background var(--t-2),transform var(--t-2) var(--ease-out);
}
.mp-x-block:hover{border-color:var(--ink-4);background:rgba(255,255,255,.05);transform:translateY(-1px)}
.mp-x-block.peak{border-color:var(--blue-line);background:var(--blue-soft)}
.mp-x-block-t{
  grid-area:t;display:inline-flex;align-items:baseline;gap:6px;
  font-size:13px;font-weight:650;color:var(--ink);
}
.mp-x-block-t em{font-style:normal;font-size:11px;font-weight:500;color:var(--ink-4);font-variant-numeric:tabular-nums}
.mp-x-block-h{grid-area:h;font-size:12.5px;font-weight:650;color:var(--blue-ink);font-variant-numeric:tabular-nums}
.mp-x-block-c{grid-area:c;font-size:12.5px;color:var(--ink-2)}
.mp-x-block-a{grid-area:a;font-size:11.8px;line-height:1.5;color:var(--ink-4)}

/* ─── 结果：分阶段 ───────────────────────────────── */
.mp-x-sec{
  padding:22px 24px;border:1px solid var(--line);border-radius:var(--r-lg);
  background:var(--paper);box-shadow:var(--sh-1);
}
.mp-x-sec > h5 span{
  margin-left:auto;font-size:11.5px;font-weight:500;
  letter-spacing:0;text-transform:none;color:var(--ink-4);
}

.mp-x-stages{
  display:grid;gap:12px;margin-top:16px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.mp-x-stage{
  padding:16px;border:1px solid var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.028);
  animation:mpFadeIn var(--t-3) var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 80ms + 160ms);
  transition:border-color var(--t-2),background var(--t-2),transform var(--t-2) var(--ease-out);
}
.mp-x-stage:hover{border-color:var(--ink-4);background:rgba(255,255,255,.05);transform:translateY(-2px)}
.mp-x-stage-h{display:flex;align-items:flex-start;gap:10px}
.mp-x-stage-ic{
  width:30px;height:30px;border-radius:9px;flex:none;
  display:grid;place-items:center;font-size:14px;
  background:var(--blue-soft);color:var(--blue-ink);
  transition:background var(--t-2),color var(--t-2);
}
.mp-x-stage[data-ph="boost"] .mp-x-stage-ic{background:rgba(255,255,255,.08);color:var(--ink-2)}
.mp-x-stage[data-ph="sprint"] .mp-x-stage-ic{background:var(--red-soft);color:var(--red)}
.mp-x-stage-h h4{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:14px;font-weight:660}
.mp-x-stage-h .pill{height:20px;font-size:10.5px}
.mp-x-stage-m{
  margin-top:3px;font-size:11.5px;color:var(--ink-4);
  font-variant-numeric:tabular-nums;letter-spacing:.01em;
}
.mp-x-stage-bars{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0}
.mp-x-chip{
  display:inline-flex;align-items:center;justify-content:space-between;gap:5px;
  height:24px;padding:0 9px;
  border:1px solid var(--line);border-radius:var(--r-full);
  background:rgba(255,255,255,.03);
  font-size:11.5px;font-variant-numeric:tabular-nums;
}
.mp-x-chip i{font-style:normal;color:var(--ink-4)}
.mp-x-chip b{font-weight:650;color:var(--ink-2)}
.mp-x-goals{list-style:none;display:flex;flex-direction:column;gap:7px;margin:0;padding:0}
.mp-x-goals li{
  position:relative;padding-left:15px;
  font-size:12.5px;line-height:1.55;color:var(--ink-3);
}
.mp-x-goals li::before{
  content:"";position:absolute;left:1px;top:.6em;
  width:5px;height:5px;border-radius:2px;
  background:var(--blue);transform:rotate(45deg);opacity:.85;
}
.mp-x-stage[data-ph="sprint"] .mp-x-goals li::before{background:var(--red)}
.mp-x-none{
  display:flex;align-items:center;gap:8px;margin-top:16px;
  padding:18px 16px;border:1px dashed var(--line);border-radius:var(--r);
  font-size:12.8px;color:var(--ink-4);
}
.mp-x-none .ic{flex:none;font-size:15px;color:var(--red)}

/* ─── 结果：三条提醒 ─────────────────────────────── */
.mp-x-tips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}
.mp-x-tip{
  display:flex;align-items:flex-start;gap:10px;
  padding:14px 15px;border:1px solid var(--line);border-radius:var(--r);
  background:rgba(255,255,255,.028);
  animation:mpFadeIn var(--t-3) var(--ease-out) backwards;
  animation-delay:calc(var(--i,0) * 70ms + 220ms);
  transition:border-color var(--t-2),transform var(--t-2) var(--ease-out);
}
.mp-x-tip:hover{border-color:var(--ink-4);transform:translateY(-1px)}
.mp-x-tip-n{
  flex:none;padding-top:1px;
  font-size:11.5px;font-weight:700;letter-spacing:.06em;
  color:var(--blue);font-variant-numeric:tabular-nums;
}
.mp-x-tip p{font-size:12.6px;line-height:1.55;color:var(--ink-2)}

/* ─── 响应式 ─────────────────────────────────────── */
@media (max-width:980px){
  .mp-x-grid{grid-template-columns:1fr}
  .mp-x-tips{grid-template-columns:1fr}
}

@media (max-width:640px){
  .mp-cfg-foot{gap:10px;margin-top:16px}
  .mp-cfg-cta{width:100%;margin-left:0}

  .mp-ask-head{padding:16px 16px 12px}
  .mp-ask-prog{padding:0 16px 12px}
  .mp-ask-body{padding:2px 16px 12px}
  .mp-ask-foot{padding:12px 16px}
  .mp-q{min-height:0}
  .mp-q-t{font-size:17.5px}
  .mp-q-note{padding-top:12px}

  .mp-x-empty{padding:18px;gap:12px}
  .mp-x-empty .btn{margin-left:0;width:100%}
  .mp-x-verdict,.mp-x-panel,.mp-x-sec{padding:18px 16px}
  .mp-x-bar-k{width:46px}
  .mp-x-bar-v{min-width:66px}
  .mp-x-blocks{margin-top:14px}
  .mp-x-stages{grid-template-columns:1fr}
}

/* ═══ AI 生成计划 ═══════════════════════════════ */
.mp-ai-note{
  display:flex;align-items:center;gap:8px;
  margin:0 0 14px;padding:10px 14px;
  border:1px solid var(--line);border-radius:var(--r-sm);
  background:rgba(255,255,255,.025);
  font-size:12.5px;color:var(--ink-4);
}
.mp-ai-note .ic{font-size:13px;opacity:.8;flex:none}

.mp-x-ai{padding:22px 24px}
.mp-x-ai h4{
  margin:0 0 12px;font-size:17px;font-weight:720;letter-spacing:-.02em;color:var(--ink);
  display:flex;align-items:center;gap:9px;
}
.mp-x-ai h4::before{
  content:"";width:4px;height:16px;border-radius:2px;background:var(--blue);flex:none;
}
.mp-x-ai h5{
  margin:22px 0 10px;font-size:14.5px;font-weight:700;letter-spacing:-.01em;
  color:var(--blue-ink);
}
.mp-x-ai h5:first-child{margin-top:0}
.mp-x-ai h6{
  margin:16px 0 8px;font-size:13.5px;font-weight:660;color:var(--ink-2);
}
.mp-x-ai p{
  margin:0 0 10px;font-size:14px;line-height:1.85;color:var(--ink-2);
}
.mp-x-ai ul{
  margin:0 0 14px;padding:0;list-style:none;
  display:flex;flex-direction:column;gap:7px;
}
.mp-x-ai li{
  position:relative;padding-left:18px;
  font-size:14px;line-height:1.75;color:var(--ink-2);
}
.mp-x-ai li::before{
  content:"";position:absolute;left:3px;top:.72em;
  width:5px;height:5px;border-radius:50%;background:var(--blue);opacity:.7;
}
.mp-x-ai ul.num li{padding-left:26px}
.mp-x-ai ul.num li::before{display:none}
.mp-x-ai ul.num li i{
  position:absolute;left:0;top:.14em;
  font-style:normal;font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--blue-ink);background:var(--blue-soft);
  border-radius:5px;padding:1px 5px;
}
.mp-x-ai strong{color:var(--ink);font-weight:680}
.mp-x-ai code{
  font-family:ui-monospace,Consolas,monospace;font-size:12.5px;
  background:rgba(255,255,255,.06);border-radius:4px;padding:1px 5px;color:var(--ink-2);
}

/* 生成中 */
.mp-ai-wait{
  display:flex;align-items:center;gap:6px;margin:14px 0 0 !important;
  font-size:12.5px;color:var(--ink-4);
}
.mp-ai-wait i{font-style:normal;margin-left:4px}
.mp-dot{
  width:5px;height:5px;border-radius:50%;background:var(--blue);opacity:.4;
  animation:mpDot 1.1s ease-in-out infinite;
}
.mp-dot:nth-child(2){animation-delay:.15s}
.mp-dot:nth-child(3){animation-delay:.3s}
@keyframes mpDot{
  0%,100%{opacity:.25;transform:translateY(0)}
  40%{opacity:1;transform:translateY(-3px)}
}

/* 底部信息 */
.mp-ai-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin-top:20px;padding-top:14px;border-top:1px solid var(--line-2);
  font-size:12px;color:var(--ink-4);
}
.mp-ai-foot span{display:inline-flex;align-items:center;gap:6px}
.mp-ai-foot .ic{font-size:13px;color:var(--blue-ink);opacity:.85}
.mp-ai-foot .tag{cursor:pointer}

/* 生成中：字数 + 停止 */
.mp-ai-run{margin-top:16px !important}
.mp-ai-run span{font-variant-numeric:tabular-nums}
.mp-ai-run-n b{color:var(--ink-2);font-weight:700}
.mp-ai-stop{color:var(--ink-2)}
.mp-ai-stop:hover{color:var(--red);border-color:var(--red-line);background:var(--red-soft)}

/* 生成中断：保留前 N 字 + 重试 */
.mp-ai-partial{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-top:18px;padding:12px 14px;
  border:1px solid var(--red-line);border-radius:var(--r-sm);
  background:var(--red-soft);
  font-size:12.5px;color:var(--ink-3);
  animation:mpFadeIn var(--t-3) var(--ease-out) both;
}
.mp-ai-partial-t{display:inline-flex;align-items:center;gap:6px;font-weight:680;color:var(--red)}
.mp-ai-partial-t .ic{font-size:13px}
.mp-ai-partial-n{color:var(--ink-2);font-variant-numeric:tabular-nums}
.mp-ai-partial-e{color:var(--ink-4);font-size:12px}
.mp-ai-partial .btn{margin-left:auto;flex:none}


/* 出错 */
.mp-ai-err{
  margin:0 0 12px !important;padding:12px 14px;
  border:1px solid var(--red-line);background:var(--red-soft);
  border-radius:var(--r-sm);font-size:13px;color:var(--red);
}
.mp-ai-acts{margin:0 !important}

@media (max-width:640px){
  .mp-x-ai{padding:18px 16px}
  .mp-x-ai h4{font-size:15.5px}
  .mp-x-ai p,.mp-x-ai li{font-size:13.5px}
}
