/* 我的项目（2026-11-09）—— 单独一个文件，不动 camp.css（那个是仓库唯一 CRLF 文件，
 * 一次全量写回就会把 diff 变成几千行）。变量、色阶、圆角都沿用全局定义。
 * 类名统一 mp- 前缀，避免和 camp 里的 .card / .mp-*（msg 页）撞车。 */

.mp-shell{display:flex;flex-direction:column;gap:16px;padding-bottom:28px}

/* ---- 顶部项目条 ---- */
.mp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;
  border:1px solid var(--line);border-radius:14px;padding:13px 16px}
.mp-pj{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:700;letter-spacing:-.2px}
.mp-pj i{width:10px;height:10px;border-radius:3px;display:block;flex:none}
.mp-pj em{font-style:normal;font-size:11px;font-weight:600;color:var(--brand-d);background:var(--brand-l);
  border-radius:20px;padding:2px 8px;margin-left:2px}
.mp-meta{font-size:12px;color:var(--ink3);font-variant-numeric:tabular-nums}
.mp-bar-r{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mp-bar-r .input{height:30px;font-size:12.5px;padding:0 8px}
.mp-refresh{height:30px;font-size:12.5px}

/* ---- 三档分区 ---- */
.mp-sec{margin-top:2px}
.mp-sec-h{display:flex;align-items:center;gap:9px;margin:0 2px 10px}
.mp-sec-t{font-size:14px;font-weight:700;letter-spacing:-.1px}
.mp-sec-n{font-size:11.5px;font-weight:700;padding:1px 8px;border-radius:20px;
  background:#EDF1F8;color:#4A5A75;font-variant-numeric:tabular-nums}
.mp-sec[data-phase="now"] .mp-sec-n{background:var(--brand);color:#fff}
.mp-sec[data-phase="post"] .mp-sec-n{background:#E9EEF7;color:#6B7A93}
.mp-sec-d{font-size:11.5px;color:var(--ink3)}

.mp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(286px,1fr));gap:12px}

/* ---- 卡片（分组 / 排期共用） ---- */
.mp-card{text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;
  padding:14px 15px 12px;cursor:pointer;display:flex;flex-direction:column;gap:8px;
  transition:border-color .15s,box-shadow .15s,transform .15s;font:inherit;color:inherit}
.mp-card:hover{border-color:#B9CBF2;box-shadow:0 6px 18px rgba(28,45,80,.07);transform:translateY(-1px)}
.mp-c-h{display:flex;align-items:center;gap:8px;min-width:0}
.mp-c-n{font-size:14.5px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mp-c-b{font-size:10.5px;padding:2px 7px;border-radius:20px;background:var(--brand-l);
  color:var(--brand-d);font-weight:600;flex:none}
.mp-c-b.pre{background:#EDF1F8;color:#4A5A75}
.mp-c-b.post{background:#EEF1F6;color:#6B7A93}
.mp-c-d{font-size:11.5px;color:var(--ink3);font-variant-numeric:tabular-nums}
.mp-c-k{display:flex;gap:16px;font-size:11.5px;color:var(--ink3)}
.mp-c-k b{font-size:15px;color:var(--ink);font-variant-numeric:tabular-nums;margin-right:2px}
.mp-rates{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.mp-r{display:grid;grid-template-columns:32px 1fr 44px;align-items:center;gap:8px;
  font-size:11.5px;color:var(--ink3)}
.mp-r i{height:5px;border-radius:3px;background:var(--line2);display:block;overflow:hidden}
.mp-r i b{display:block;height:100%;border-radius:3px;background:var(--brand);min-width:2px}
.mp-r.good i b{background:#1FA97A}
.mp-r.warn i b{background:#E8A33D}
.mp-r.bad i b{background:#E0344F}
.mp-r em{font-style:normal;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.mp-r.na i b{background:var(--line2)}
.mp-r.na em{color:var(--ink3);font-weight:500}
.mp-c-go{font-size:11.5px;color:var(--brand-d);font-weight:600;margin-top:2px}

.mp-more{align-self:flex-start;margin-top:11px;font-size:12.5px;color:var(--brand-d);
  background:var(--brand-l);border:none;border-radius:20px;padding:6px 14px;cursor:pointer;font-weight:600}
.mp-more:hover{background:#DCE7FF}

/* ---- 下钻：面包屑 + 概况 + 表格 ---- */
.mp-crumb{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink3);flex-wrap:wrap}
.mp-crumb button{background:none;border:none;padding:0;font:inherit;color:var(--brand-d);
  font-weight:600;cursor:pointer}
.mp-crumb button:hover{text-decoration:underline}
.mp-crumb s{text-decoration:none;color:#C3CCDC}
.mp-crumb span{color:var(--ink2);font-weight:600}

.mp-sum{display:flex;gap:26px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:14px 18px;align-items:center}
.mp-sum-i{display:flex;flex-direction:column;gap:2px}
.mp-sum-i b{font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:-.3px}
.mp-sum-i span{font-size:11.5px;color:var(--ink3)}
.mp-sum-i.rate b.good{color:#14855F}
.mp-sum-i.rate b.warn{color:#B97A12}
.mp-sum-i.rate b.bad{color:#C42A44}
.mp-sum-i.rate b.na{color:var(--ink3);font-weight:600}
.mp-sum-r{margin-left:auto;font-size:11.5px;color:var(--ink3)}

.mp-tblwrap{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mp-tblwrap.scroll{overflow-x:auto}
.mp-tr{display:grid;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--line2);
  font-size:12.5px;min-width:640px}
.mp-tr:last-child{border-bottom:none}
.mp-tr.mp-th{background:var(--surface-2);font-size:11.5px;color:var(--ink3);font-weight:600;padding:8px 16px}
.mp-tr.clk{cursor:pointer}
.mp-tr.clk:hover{background:#F7FAFF}
.mp-tr b{font-weight:600;font-variant-numeric:tabular-nums}
.mp-tr .n{font-variant-numeric:tabular-nums;text-align:right}
.mp-tr .muted{color:var(--ink3);font-variant-numeric:tabular-nums}

.mp-tbl.grp .mp-tr{grid-template-columns:minmax(170px,1.5fr) 74px 84px 96px 96px 96px 22px}
.mp-tbl.cls .mp-tr{grid-template-columns:minmax(150px,1.3fr) 90px 96px 104px 88px 88px 88px}
.mp-tbl.all .mp-tr{grid-template-columns:minmax(160px,1.4fr) 96px 84px 84px 70px 76px 84px 84px 84px}

.mp-rate{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
.mp-rate.good{color:#14855F}
.mp-rate.warn{color:#B97A12}
.mp-rate.bad{color:#C42A44}
.mp-rate.na{color:var(--ink3);font-weight:500}
.mp-est{font-size:9.5px;color:#B97A12;background:#FFF4E0;border-radius:4px;padding:1px 4px;margin-left:4px;
  font-weight:600;vertical-align:1px}
.mp-arw{color:#C3CCDC;font-size:14px;text-align:right}

.mp-tip{font-size:11.5px;color:var(--ink3);line-height:1.8}
.mp-empty{background:#fff;border:1px dashed var(--line);border-radius:16px;padding:46px 24px;
  text-align:center;color:var(--ink3);font-size:13px;line-height:1.9}
.mp-empty b{display:block;font-size:15px;color:var(--ink);margin-bottom:6px}
.mp-empty .btn{margin-top:14px}

.mp-load{padding:60px 0;text-align:center;color:var(--ink3);font-size:13px}

@media(max-width:760px){
  .mp-grid{grid-template-columns:1fr}
  .mp-bar{padding:12px}
  .mp-bar-r{margin-left:0;width:100%}
  .mp-sum{gap:18px;padding:12px 14px}
  .mp-sum-r{margin-left:0;width:100%}
}
