/* ===== 设计系统 v3 —— 转行家 verimade（深色头部 + 卡片化） ===== */
:root {
  --bg: #f3f5fa;
  --panel: #ffffff;
  --text: #0f172a;
  --muted: #5b6b84;
  --faint: #94a3b8;
  --line: #e6eaf3;
  --accent: #059669;
  --accent-strong: #047857;
  --accent-2: #34D399;
  --accent-soft: #ECFDF5;
  --good: #059669;
  --good-soft: #e8f6f0;
  --warn: #d97706;
  --warn-soft: #fdf3e1;
  --danger: #e11d48;
  --danger-soft: #fdeef2;
  --header-bg: #0c1122;
  --header-line: rgba(255, 255, 255, .08);
  --radius: 18px;
  --radius-sm: 12px;
  --shadow-sm: 0 1px 2px rgba(15, 23, 42, .04), 0 4px 14px rgba(15, 23, 42, .05);
  --shadow: 0 2px 4px rgba(15, 23, 42, .05), 0 12px 30px rgba(15, 23, 42, .08);
  --shadow-lg: 0 18px 40px rgba(15, 23, 42, .14);
  --font: "Inter", "SF Pro Text", "Segoe UI", "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  background: var(--bg);
  color: var(--text);
  line-height: 1.65;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}
::selection { background: #A7F3D0; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: #c9d2e3; border-radius: 99px; border: 2px solid var(--bg); }
::-webkit-scrollbar-track { background: transparent; }

/* ---- 深色玻璃头部 ---- */
header {
  position: sticky; top: 0; z-index: 50;
  background: rgba(12, 17, 34, .9);
  backdrop-filter: blur(14px) saturate(1.5);
  -webkit-backdrop-filter: blur(14px) saturate(1.5);
  border-bottom: 1px solid var(--header-line);
  padding: 10px 28px;
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.brand { display: flex; align-items: center; gap: 12px; }
.logo {
  width: 40px; height: 40px; border-radius: 12px; flex: none;
  display: block;
  box-shadow: 0 4px 14px rgba(5, 150, 105, .35);
}
.brand h1 { margin: 0; font-size: 18px; font-weight: 700; color: #fff; letter-spacing: .2px; }
.brand .sub { font-size: 12px; color: #8fa0c0; margin-top: 1px; }
/* PB-86 反馈#49：顶栏收敛后 topnav 常驻=今日+四区 ▾ 按钮（单行）；flex-wrap 保留兜底 */
.topnav { display: flex; gap: 4px 10px; margin-left: 10px; flex-wrap: wrap; }
.topnav a {
  color: #9db0d0; text-decoration: none; font-size: 13.5px; font-weight: 500;
  padding: 7px 14px; border-radius: 999px; transition: all .16s; white-space: nowrap;
}
.topnav a:hover { color: #fff; background: rgba(255, 255, 255, .08); text-decoration: none; }
.topnav a.active {
  background: linear-gradient(135deg, #047857, #065F46);
  color: #fff; font-weight: 600;
  box-shadow: 0 4px 12px rgba(5, 150, 105, .4);
}
.meta { margin-left: auto; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 12px; color: #9db0d0; }
.meta a { color: #A7F3D0; }
.chip {
  background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 999px; padding: 4px 11px; font-size: 11.5px; color: #c3cee6;
  font-variant-numeric: tabular-nums; max-width: 380px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* ---- 布局 ---- */
main { padding: 26px 28px 72px; max-width: 1280px; margin: 0 auto; }
section { margin-bottom: 26px; }
.card {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 24px 26px;
}
h2 { font-size: 17px; font-weight: 700; margin: 0 0 14px; display: flex; align-items: center; gap: 9px; }
h2::before { content: ""; width: 5px; height: 18px; border-radius: 3px; flex: none; background: linear-gradient(180deg, var(--accent), var(--accent-2)); }
h3 { font-size: 15px; font-weight: 700; margin: 0 0 10px; }
h4 { font-size: 13px; font-weight: 600; color: var(--muted); margin: 16px 0 6px; }
.hint { color: var(--muted); font-size: 12.5px; }
.hidden { display: none; }
.legend-chip {
  margin-left: auto; font-size: 12px; color: var(--muted); white-space: nowrap;
  background: #f6f8fd; border: 1px solid var(--line); border-radius: 999px; padding: 3px 11px;
}

/* ---- 横幅 ---- */
.banner {
  margin: 0 0 18px; padding: 13px 16px; border-radius: var(--radius-sm);
  background: var(--warn-soft); border: 1px solid #f5dcae; color: #92400e; font-size: 13px;
}
.stale { background: var(--danger-soft); border-color: #fbc6d0; color: #9f1239; }
.banner code { background: #fff; border: 1px solid var(--line); border-radius: 5px; padding: 0 6px; font-size: 12px; }

/* ---- 首页 Hero ---- */
.hero {
  position: relative; overflow: hidden;
  border-radius: 22px;
  background:
    radial-gradient(1100px 460px at 88% -30%, rgba(16, 185, 129, .5), transparent 62%),
    radial-gradient(800px 420px at -10% 130%, rgba(56, 189, 248, .35), transparent 58%),
    linear-gradient(125deg, #052E22 0%, #064E3B 45%, #047857 100%);
  color: #fff;
  padding: 42px 46px;
  margin-bottom: 22px;
  display: grid; grid-template-columns: 1.55fr 1fr; gap: 36px; align-items: center;
  box-shadow: 0 22px 50px rgba(6, 78, 59, .4);
}
.hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 44px 44px;
  -webkit-mask-image: radial-gradient(800px 420px at 15% 0%, #000 0%, transparent 75%);
  mask-image: radial-gradient(800px 420px at 15% 0%, #000 0%, transparent 75%);
}
.hero-main { position: relative; }
.kicker {
  font-size: 11.5px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255, 255, 255, .62); margin-bottom: 12px;
}
.hero h1 { margin: 0 0 12px; font-size: 31px; line-height: 1.28; font-weight: 800; letter-spacing: .2px; }
.hero h1 .hl {
  background: linear-gradient(90deg, #6EE7B7, #6EE7B7);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.lede { margin: 0 0 20px; color: rgba(255, 255, 255, .78); font-size: 14.5px; max-width: 580px; }
.hero-chips { display: flex; gap: 8px; flex-wrap: wrap; position: relative; }
.hero-chip {
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px; padding: 6px 13px; font-size: 12.5px; color: rgba(255, 255, 255, .92);
  font-variant-numeric: tabular-nums;
}
.hero-side {
  position: relative; background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .16); border-radius: 18px;
  padding: 24px 26px; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.hero-side .h-label { font-size: 12px; color: rgba(255, 255, 255, .62); margin-bottom: 6px; }
.hero-side .h-num { font-size: 46px; font-weight: 800; line-height: 1.05; font-variant-numeric: tabular-nums; letter-spacing: -1px; }
.hero-side .h-unit { font-size: 15px; font-weight: 600; color: rgba(255, 255, 255, .75); margin-left: 6px; }
.hero-side .h-sub { font-size: 13px; color: rgba(255, 255, 255, .78); margin: 10px 0 14px; }
.h-bar { height: 8px; background: rgba(255, 255, 255, .14); border-radius: 99px; overflow: hidden; }
.h-bar > div { height: 100%; border-radius: 99px; background: linear-gradient(90deg, #34D399, #10B981, #059669); transition: width .6s ease; }
.hero-side .h-foot { font-size: 11.5px; color: rgba(255, 255, 255, .55); margin-top: 12px; }

/* ---- 页级 Hero（study / cockpit / job） ---- */
.page-hero {
  position: relative; overflow: hidden; border-radius: 22px; color: #fff;
  background:
    radial-gradient(900px 380px at 90% -30%, rgba(16, 185, 129, .45), transparent 60%),
    linear-gradient(125deg, #052E22 0%, #064E3B 55%, #047857 100%);
  padding: 32px 38px; margin-bottom: 22px;
  box-shadow: 0 18px 44px rgba(6, 78, 59, .35);
}
.page-hero.slim { padding: 26px 34px; }
.page-hero h1 { margin: 0 0 6px; font-size: 26px; font-weight: 800; letter-spacing: .2px; }
.page-hero.slim h1 { font-size: 22px; }
.page-hero .ph-sub { color: rgba(255, 255, 255, .78); font-size: 13.5px; margin: 0 0 14px; max-width: 720px; }
.page-hero .ph-sub a { color: #A7F3D0; }
.ph-tags { display: flex; gap: 8px; flex-wrap: wrap; }
.ph-tag {
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 999px; padding: 5px 12px; font-size: 12px; color: rgba(255, 255, 255, .92);
  font-variant-numeric: tabular-nums;
}
.ph-tag b { font-weight: 700; }
.salary-box { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.salary-chip {
  background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .16); border-radius: 14px;
  padding: 10px 20px; min-width: 132px; text-align: center; backdrop-filter: blur(6px);
}
.salary-chip .k { font-size: 11px; color: rgba(255, 255, 255, .6); letter-spacing: .8px; }
.salary-chip .v { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; margin-top: 2px; }
.salary-chip .u { font-size: 11px; color: rgba(255, 255, 255, .65); }

/* ---- 统计行 ---- */
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.mini-stat {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 18px 20px; display: flex; gap: 14px; align-items: center;
  transition: transform .16s, box-shadow .16s;
}
.mini-stat:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.mini-stat .ico {
  width: 44px; height: 44px; border-radius: 13px; flex: none;
  display: flex; align-items: center; justify-content: center; font-size: 20px;
}
.v-indigo .ico { background: var(--accent-soft); border: 1px solid #A7F3D0; }
.v-violet .ico { background: #f0fdfa; border: 1px solid #99f6e4; }
.v-sky .ico { background: #e0f2fe; border: 1px solid #bae6fd; }
.v-emerald .ico { background: var(--good-soft); border: 1px solid #d5f0e4; }
.v-amber .ico { background: var(--warn-soft); border: 1px solid #f7e5c3; }
.mini-stat .num { font-size: 24px; font-weight: 800; letter-spacing: -.4px; font-variant-numeric: tabular-nums; line-height: 1.1; }
.mini-stat .lab { font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.mini-stat .sub2 { font-size: 11.5px; color: var(--faint); margin-top: 2px; }

/* ---- 首页入口卡片 ---- */
.entry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 28px; }
.entry-card {
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: var(--shadow-sm); padding: 22px 22px 18px; color: var(--text); text-decoration: none;
  display: flex; flex-direction: column; gap: 8px; position: relative;
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.entry-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); border-color: #d5daf5; text-decoration: none; }
.entry-card .e-top { display: flex; align-items: center; justify-content: space-between; }
.entry-card .ico {
  width: 46px; height: 46px; border-radius: 14px; flex: none;
  display: flex; align-items: center; justify-content: center; font-size: 21px;
  background: linear-gradient(135deg, #ECFDF5, #f0fdfa);
  border: 1px solid #A7F3D0;
}
.entry-card h3 { margin: 10px 0 0; font-size: 15.5px; }
.entry-card p { margin: 0; color: var(--muted); font-size: 12.5px; flex: 1; }
.entry-card .go { font-size: 12.5px; color: var(--accent-strong); font-weight: 600; display: inline-flex; align-items: center; gap: 6px; }
.entry-card .go::after { content: "→"; transition: transform .18s; }
.entry-card:hover .go::after { transform: translateX(3px); }
.status-chip {
  font-size: 11px; font-weight: 600; border-radius: 999px; padding: 3px 10px; white-space: nowrap;
  background: var(--good-soft); color: #047857; border: 1px solid #d2f0e1;
}
.status-chip.pending { background: var(--warn-soft); color: var(--warn); border-color: #f5e3bd; }

/* ---- 图表 ---- */
.chart { width: 100%; height: 520px; background: var(--panel); }
#radar { height: 420px; }
.card .chart { border: none; }
#heatmap { height: 560px; }
.matrix-legend { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.matrix-legend-label { flex: none; font-size: 12px; color: var(--muted); font-variant-numeric: tabular-nums; }
.matrix-legend-bar {
  flex: none; width: 250px; height: 10px; border-radius: 999px; border: 1px solid var(--line);
  background: linear-gradient(90deg,
    #f1f5f9 0%, #f1f5f9 20%,
    #e2e8f0 20%, #e2e8f0 40%,
    #c9d2e3 40%, #c9d2e3 60%,
    #10B981 60%, #10B981 80%,
    #064E3B 80%, #064E3B 100%);
}
.matrix-legend-note { margin-left: auto; font-size: 12px; color: var(--faint); }
@media (max-width: 720px) { .matrix-legend-note { display: none; } }

#radar-title { margin-bottom: 4px; }
.job-meta {
  color: var(--muted); font-size: 12.5px; margin: 12px 0 0;
  background: #f6f8fd; border: 1px solid var(--line); border-radius: 10px; padding: 8px 14px;
}
.job-meta a { color: var(--accent-strong); }

/* ---- 表格 ---- */
table { width: 100%; border-collapse: collapse; font-size: 13px; background: var(--panel); }
.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel); }
th, td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
tbody tr:last-child td { border-bottom: none; }
tbody tr { transition: background .14s, box-shadow .14s; }
tbody tr:hover {
  background: linear-gradient(90deg, rgba(5, 150, 105, .055), rgba(5, 150, 105, .015) 55%);
  box-shadow: inset 3px 0 0 var(--accent);
}
th { color: var(--muted); font-weight: 600; font-size: 11.5px; letter-spacing: .5px; background: #f8fafd; white-space: nowrap; }
.job-name { display: flex; align-items: center; gap: 9px; font-weight: 600; white-space: nowrap; }
.job-name a { color: var(--text); }
.job-name a:hover { color: var(--accent-strong); }
.job-dot { width: 9px; height: 9px; border-radius: 50%; flex: none; }
.dot-a { background: linear-gradient(135deg, #059669, #34D399); box-shadow: 0 0 0 3px rgba(5, 150, 105, .12); }
.dot-b { background: #b6c2d6; box-shadow: 0 0 0 3px rgba(148, 163, 184, .14); }
.badge { display: inline-block; border-radius: 999px; padding: 2px 10px; font-size: 11px; font-weight: 600; border: 1px solid transparent; }
.badge-a { background: var(--accent-soft); color: var(--accent-strong); border-color: #A7F3D0; }
.badge-b { background: #f1f5f9; color: #64748b; border-color: #e2e8f0; }
.score { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-variant-numeric: tabular-nums; }
.sdot { width: 8px; height: 8px; border-radius: 50%; }
.s-good { background: var(--good); }
.s-warn { background: var(--warn); }
.s-low { background: #cbd5e1; }
.s-risk { background: var(--danger); }
.salary-cell { white-space: nowrap; font-variant-numeric: tabular-nums; }
.salary-cell b { font-weight: 700; }
.salary-cell .med { color: var(--muted); font-weight: 400; font-size: 12px; }

/* ---- 链接与按钮 ---- */
a { color: var(--accent-strong); text-decoration: none; }
a:hover { text-decoration: underline; }
button {
  background: var(--accent-soft); color: var(--accent-strong); border: 1px solid transparent;
  border-radius: 9px; padding: 7px 16px; cursor: pointer; font-size: 13px; font-family: var(--font);
  transition: all .15s;
}
button:hover { background: var(--accent-strong); color: #fff; }
button.ghost { background: #fff; border-color: var(--line); color: var(--muted); }
button.ghost:hover { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-soft); }
button.primary {
  background: linear-gradient(135deg, #047857, #065F46); color: #fff;
  font-weight: 600; border: none; box-shadow: 0 4px 12px rgba(5, 150, 105, .3);
}
button.primary:hover { background: linear-gradient(135deg, #065F46, #064E3B); color: #fff; filter: none; }
.btn-mini {
  padding: 4px 11px; font-size: 12px; border-radius: 8px;
  background: #fff; border: 1px solid var(--line); color: var(--muted);
}
.btn-mini:hover { border-color: var(--accent); color: var(--accent-strong); background: var(--accent-soft); }

/* ---- Toast ---- */
#toast {
  position: fixed; bottom: 26px; right: 26px; background: #10162b; color: #e2e8f0;
  padding: 11px 18px; border-radius: 12px; font-size: 13px; display: none;
  box-shadow: var(--shadow-lg); z-index: 100; border: 1px solid rgba(255, 255, 255, .08);
}

/* ---- 岗位详情 ---- */
.proscons-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.face-panel { border-radius: var(--radius-sm); padding: 16px 18px; border: 1px solid; }
.face-panel.good { background: var(--good-soft); border-color: #cdeee0; }
.face-panel.bad { background: var(--danger-soft); border-color: #f9ccd6; }
.face-panel h4 { margin: 0 0 8px; }
.face-panel.good h4 { color: var(--accent-strong); }
.face-panel.bad h4 { color: var(--danger); }
.pros { color: var(--accent-strong); }
.cons { color: var(--danger); }
.src a { word-break: break-all; font-size: 12px; }
.tag {
  display: inline-block; background: var(--accent-soft); color: var(--accent-strong);
  border-radius: 999px; padding: 2px 10px; margin-right: 6px; font-size: 12px; font-weight: 500;
}
.ev { color: var(--muted); font-size: 12px; }
table.dims td, table.dims th { font-size: 12.5px; }
.score-chip {
  display: inline-block; min-width: 44px; text-align: center; border-radius: 8px;
  padding: 2px 9px; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 12.5px;
}
.sc-good { background: var(--good-soft); color: #047857; }
.sc-mid { background: var(--warn-soft); color: var(--warn); }
.sc-low { background: #f1f5f9; color: #64748b; }
ul { margin: 4px 0; padding-left: 22px; }
li { margin: 4px 0; }
@media (max-width: 900px) {
  .job-name, .salary-cell { white-space: normal; overflow-wrap: anywhere; }
  .btn-mini { padding: 3px 8px; font-size: 11px; white-space: normal; }
  .legend-chip { margin-left: 0; white-space: normal; max-width: 100%; overflow: visible; text-overflow: clip; }
  .tier-legend { margin-left: 0; white-space: normal; max-width: 100%; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { min-width: 0; }
}
#study-chart { height: 300px; }

/* ---- 驾驶舱 ---- */
.ring-wrap { display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.ring {
  width: 136px; height: 136px; border-radius: 50%; flex: none;
  background: conic-gradient(var(--accent) calc(var(--p, 0) * 1%), #e9edf6 0);
  display: flex; align-items: center; justify-content: center; position: relative;
  transition: background .5s ease;
}
.ring::before { content: ""; position: absolute; inset: 12px; background: #fff; border-radius: 50%; }
.ring .pct { position: relative; font-size: 27px; font-weight: 800; font-variant-numeric: tabular-nums; }
.ring-info { flex: 1; min-width: 240px; }
.countdown { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.countdown .big { font-size: 40px; font-weight: 800; color: var(--accent); font-variant-numeric: tabular-nums; letter-spacing: -1px; }
.countdown .unit { color: var(--muted); }
.funnel-row { display: grid; grid-template-columns: 120px 1fr 64px; gap: 12px; align-items: center; margin: 10px 0; font-size: 13px; }
.funnel-row .bar { height: 20px; background: #eef1f7; border-radius: 7px; overflow: hidden; }
.funnel-row .bar > div { height: 100%; border-radius: 7px; background: linear-gradient(90deg, var(--accent), var(--accent-2)); transition: width .5s ease; }
.funnel-row .cnt { text-align: right; font-variant-numeric: tabular-nums; color: var(--muted); font-size: 12.5px; }
.timeline { list-style: none; padding: 0; margin: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 6px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(180deg, var(--accent), #d8def0); border-radius: 2px; }
.timeline li { display: flex; gap: 16px; padding: 9px 0; position: relative; }
.timeline .dot {
  width: 14px; height: 14px; border-radius: 50%; background: #fff;
  border: 3px solid #A7F3D0; margin-top: 4px; flex: none; position: relative; z-index: 1;
}
.timeline li.done .dot { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 4px rgba(5, 150, 105, .15); }
.timeline .when { color: var(--muted); font-size: 12px; min-width: 84px; font-weight: 600; font-variant-numeric: tabular-nums; }

/* ---- 今日任务 / 驾驶舱 v0.2 ---- */
.task-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.task-item {
  display: grid; grid-template-columns: 1fr; gap: 8px; align-items: start;
  background: #f8fafd; border: 1px solid var(--line); border-radius: 12px;
  padding: 11px 14px; transition: all .16s;
}
.task-item:hover { border-color: #A7F3D0; background: #f4f6ff; box-shadow: var(--shadow-sm); }
.task-item.done { opacity: .58; }
.task-item.done .t-title { text-decoration: line-through; }
.t-body { display: grid; gap: 2px; }
.t-title { font-size: 14px; font-weight: 650; color: var(--text); }
.t-why { font-size: 12px; color: var(--muted); }
.task-item.pers { border-left: 4px solid #34D399; background: linear-gradient(90deg,#ECFDF5,#fff 55%); }
.task-item.pers .t-why { color: #047857; }
.task-more { display:block; list-style:none; padding:8px 12px; font-size:.78rem; color:#6b7280; border-top:1px dashed #e5e7eb; background:#fafafa; border-radius:0 0 12px 12px; }
.t-right { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.t-cat { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
.t-cat.c-indigo { background: #ECFDF5; color: #047857; }
.t-cat.c-sky { background: #e8f4fd; color: #0369a1; }
.t-cat.c-violet { background: #f0fdfa; color: #0f766e; }
.t-cat.c-amber { background: #fdf3e1; color: #b45309; }
.t-cat.c-emerald { background: #e8f6f0; color: #047857; }
.t-link { font-size: 13px; font-weight: 700; color: #fff; background: linear-gradient(135deg, #047857, #065F46); text-decoration: none; white-space: nowrap; padding: 7px 16px; border-radius: 999px; box-shadow: 0 3px 10px rgba(5,150,105,.25); margin-left: auto; }
.t-link:hover { filter: brightness(1.08); }
.t-link.t-link-secondary { color: #047857; background: #ECFDF5; border: 1px solid #A7F3D0; box-shadow: none; margin-left: 0; }
.t-link.t-link-secondary:hover { background: #047857; color: #fff; border-color: #047857; filter: none; }
.t-link.t-link-secondary:focus-visible { outline: 2px solid #059669; outline-offset: 2px; }
.study-action-link { display: inline-flex; align-items: center; gap: 5px; background: #ECFDF5; color: #047857; border: 1px solid #A7F3D0; font-weight: 700; text-decoration: none; }
.study-action-link:hover { background: #047857; color: #fff; border-color: #047857; }
.study-action-link:focus-visible { outline: 2px solid #059669; outline-offset: 2px; }

form.goal-form { display: grid; grid-template-columns: 1.2fr 1fr auto; gap: 12px; align-items: end; }
form.goal-form label { display: grid; gap: 6px; font-size: 13px; color: var(--muted); }
form.goal-form input, form.goal-form select,
form.app-form input, form.app-form select {
  padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; font: inherit;
  background: #fff; color: var(--text); transition: border-color .15s, box-shadow .15s;
}
form.goal-form input:focus, form.goal-form select:focus,
form.app-form input:focus, form.app-form select:focus {
  outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(5, 150, 105, .14);
}

.leaf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 9px; }
.leaf-chip {
  display: flex; gap: 10px; align-items: center; border: 1px solid var(--line);
  border-radius: 12px; padding: 10px 12px; cursor: pointer; background: #fff;
  transition: all .15s; user-select: none;
}
.leaf-chip:hover { border-color: #6EE7B7; box-shadow: var(--shadow-sm); transform: translateY(-1px); }
.leaf-chip.lit { background: linear-gradient(135deg, #ECFDF5, #f7f4ff); border-color: #6EE7B7; }
.leaf-dot { width: 18px; height: 18px; border-radius: 6px; border: 2px solid #cbd5e1; flex: none; transition: all .15s; }
.leaf-chip.lit .leaf-dot { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 0 3px rgba(5, 150, 105, .15); }
.leaf-text { display: grid; gap: 1px; min-width: 0; }
.leaf-name { font-size: 13px; font-weight: 600; color: var(--text); }
.leaf-when { font-size: 11px; color: var(--faint); }

.funnel-note { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 4px; }
.fn-chip { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.fn-emerald { background: var(--good-soft); color: #047857; }
.fn-violet { background: #f0fdfa; color: #0f766e; }
.fn-rose { background: var(--danger-soft); color: var(--danger); }
form.app-form { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 4px; }
form.app-form button { justify-self: start; }
.app-list { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.app-item {
  display: grid; grid-template-columns: auto 1fr auto auto; gap: 10px; align-items: center;
  padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px;
  font-size: 13px; background: #fafbfe;
}
.app-empty { color: var(--faint); font-size: 13px; padding: 6px 2px; }
.stage-badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.s-sky { background: #e8f4fd; color: #0369a1; }
.s-violet { background: #f0fdfa; color: #0f766e; }
.s-amber { background: #fdf3e1; color: #b45309; }
.s-emerald { background: #e8f6f0; color: #047857; }
.s-rose { background: #fdeef2; color: #be123c; }
.app-main { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.app-note { color: var(--faint); margin-left: 8px; font-size: 12px; }
.app-date { color: var(--muted); font-size: 12px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.app-del { border: none; background: none; color: #b6c0d2; cursor: pointer; font-size: 13px; padding: 2px 6px; border-radius: 6px; transition: all .15s; }
.app-del:hover { color: #e11d48; background: #fdeef2; }

/* PB-77：JD 匹配诊断结果区（AI 诊断/规则兜底同构渲染） */
.fit-dx { margin-top: 8px; padding: 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; font-size: 13px; }
.fit-dx .dx-head { font-weight: 700; color: var(--muted); margin-bottom: 6px; }
.fit-dx .dx-sec { margin: 6px 0; }
.fit-dx .dx-sec ul { margin: 4px 0 0; padding-left: 18px; }
.fit-dx .dx-sec li { margin: 2px 0; color: var(--ink, #1f2937); }
.fit-dx .dx-action { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #e8f6f0; color: #047857; font-weight: 600; }

@media (max-width: 720px) {
  .task-item { grid-template-columns: 1fr auto; }
  .t-right { grid-column: 2; }
  form.goal-form, form.app-form { grid-template-columns: 1fr; }
  .app-item { grid-template-columns: auto 1fr auto; }
  .app-date { display: none; }
}

/* ---- 响应式 ---- */
@media (max-width: 1080px) {
  .hero { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: repeat(2, 1fr); }
  .entry-grid { grid-template-columns: 1fr; }
  .proscons-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  main { padding: 16px 14px 56px; }
  header { padding: 10px 16px; gap: 10px; }
  .meta { width: 100%; margin-left: 0; }
  .hero { padding: 28px 22px; }
  .hero h1 { font-size: 24px; }
  .stats-row { grid-template-columns: 1fr; }
  .page-hero { padding: 24px 22px; }
  .card { padding: 18px 16px; }
  .table-wrap { overflow-x: auto; }
  .funnel-row { grid-template-columns: 88px 1fr 52px; }
  .timeline .when { min-width: 70px; }
}

/* ---------- ability tree (F8) ---------- */
.job-strip { display: flex; flex-wrap: wrap; gap: 8px; }
.job-pill {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 999px;
  padding: 6px 12px;
  cursor: pointer;
  font-size: 13px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: border-color .15s, background .15s, color .15s;
}
.job-pill:hover { border-color: var(--accent); }
.job-pill.active { background: var(--accent-strong); border-color: var(--accent-strong); color: #fff; }
.job-pill .jp-bar {
  width: 44px; height: 5px;
  background: rgba(15, 23, 42, .12);
  border-radius: 99px;
  overflow: hidden;
}
.job-pill .jp-bar i { display: block; height: 100%; background: var(--accent); border-radius: 99px; }
.job-pill.active .jp-bar { background: rgba(255, 255, 255, .25); }
.job-pill.active .jp-bar i { background: #fff; }
.ab-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.ab-progress { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 14px; }
.ab-bar { width: 180px; height: 10px; background: var(--accent-soft); border-radius: 99px; overflow: hidden; }
#ab-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  border-radius: 99px;
  transition: width .3s ease;
}
.ab-cat {
  margin: 22px 0 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--muted);
}
.ab-cat:first-of-type { margin-top: 6px; }
.leaf-grid2 { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.leaf-card {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #fff;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  transition: box-shadow .2s, border-color .2s;
}
.leaf-card:hover { box-shadow: var(--shadow-sm); border-color: #cfd8ef; }
.leaf-card.lit { border-color: #b9d8cc; background: linear-gradient(180deg, #f2faf6, #fff); }
.leaf-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.leaf-ico { font-size: 18px; }
.leaf-name { font-weight: 700; font-size: 15px; }
.leaf-name .weight { color: var(--faint); font-size: 12px; font-weight: 600; margin-left: 6px; letter-spacing: 1px; }
.leaf-lit-tag { margin-left: auto; font-size: 11px; color: #047857; background: var(--good-soft); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }
.leaf-lit-tag.off { color: var(--faint); background: #f1f4f9; }
.leaf-desc { margin: 0; font-size: 13px; color: var(--muted); line-height: 1.55; }
.portfolio-req { font-size: 12.5px; color: #7c4a03; background: var(--warn-soft); border-radius: 8px; padding: 7px 10px; line-height: 1.5; }
.leaf-note { font-size: 12px; color: var(--accent-strong); line-height: 1.5; }
.leaf-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 2px; }
.leaf-xp { display:flex; align-items:center; gap:6px; margin:6px 0 2px; font-size:12px; color:#475569; }
.xp-badge { font-size:15px; line-height:1; }
.xp-label { white-space:nowrap; }
.xp-bar { flex:1; height:7px; background:#e2e8f0; border-radius:999px; overflow:hidden; }
.xp-bar>i { display:block; height:100%; background:linear-gradient(90deg,#0ea5e9,#0e9f6e); border-radius:999px; }
.shared-badge { font-size: 12px; color: var(--accent-strong); background: var(--accent-soft); border-radius: 999px; padding: 3px 9px; }
.leaf-toggle {
  border: 1px solid var(--line);
  background: #fff;
  color: var(--muted);
  border-radius: 999px;
  padding: 5px 12px;
  font-size: 12.5px;
  cursor: pointer;
  transition: border-color .15s, color .15s;
}
.leaf-toggle:hover { border-color: var(--accent); color: var(--accent-strong); }
.leaf-card.lit .leaf-toggle { color: var(--danger); border-color: #f3c7d2; }
.leaf-card.lit .leaf-toggle:hover { background: var(--danger-soft); border-color: var(--danger); }
dialog {
  border: none;
  border-radius: var(--radius);
  padding: 22px;
  width: min(480px, 92vw);
  box-shadow: var(--shadow-lg);
}
dialog::backdrop { background: rgba(15, 23, 42, .45); }
dialog h3 { margin: 0 0 8px; }
dialog textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 10px;
  font: inherit;
  resize: vertical;
  min-height: 72px;
  margin-top: 10px;
}
dialog textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; border-color: transparent; }
.dlg-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 14px; }

/* ---- B6 能力树交互打磨 ---- */
.ab-filters { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0 2px; }
.filter-chip {
  border: 1px solid var(--line); background: #fff; color: var(--muted);
  border-radius: 999px; padding: 5px 13px; font-size: 12.5px; cursor: pointer;
  transition: border-color .15s, background .15s, color .15s;
}
.filter-chip:hover { border-color: var(--accent); color: var(--accent-strong); }
.filter-chip.active { background: var(--accent-strong); border-color: var(--accent-strong); color: #fff; }
.ab-cat-row { display: flex; align-items: baseline; justify-content: space-between; margin: 22px 0 10px; }
.ab-cat-row:first-of-type { margin-top: 6px; }
.ab-cat-row > span:first-child { font-size: 13px; font-weight: 700; letter-spacing: .06em; color: var(--muted); }
.ab-cat-row .cat-count { font-size: 12px; font-weight: 600; color: var(--faint); }
.ab-cat-row .cat-count .lit-n { color: #047857; }
.leaf-card { cursor: pointer; }
.leaf-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.leaf-actions { display: flex; gap: 6px; margin-left: auto; }
.leaf-toggle.leaf-light { color: var(--accent); border-color: #A7F3D0; }
.leaf-toggle.leaf-light:hover { background: var(--accent-soft); }
.leaf-toggle.leaf-edit { color: var(--accent); }
.leaf-toggle.leaf-edit:hover { background: var(--accent-soft); border-color: var(--accent); }
.leaf-toggle.leaf-unlight { color: var(--danger); border-color: #f3c7d2; }
.leaf-toggle.leaf-unlight:hover { background: var(--danger-soft); border-color: var(--danger); }
.dlg-share {
  font-size: 12.5px; color: var(--accent-strong); background: var(--accent-soft);
  border-radius: 8px; padding: 7px 10px; margin-top: 8px; line-height: 1.5;
}
.dlg-meta { display: flex; justify-content: space-between; gap: 8px; margin-top: 6px; font-size: 12px; color: var(--faint); }
.btn-danger { background: var(--danger); border: 1px solid var(--danger); color: #fff; }
.btn-danger:hover { background: #c63a54; border-color: #c63a54; }
.leaf-empty { padding: 18px; text-align: center; }
/* ---- B10 今日引导 + 岗位优先级 + 细粒度能力树 ---- */
.guide-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.guide-chip { background: #eef1fb; color: #064E3B; border-radius: 999px; padding: 4px 12px; font-size: 12px; }
/* PB-107 晨间一句话（guide 页）+ 周报卡 KPI 趋势行（首页） */
.guide-morning { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; background: #fffbeb; border: 1px solid #fde68a; border-radius: 10px; padding: 8px 12px; margin: 0 0 12px; font-size: .9rem; }
.guide-morning .gm-sun { font-size: 1rem; }
.guide-morning .gm-engine { margin-left: auto; font-size: 12px; color: #92703a; }
.weekly-kpi { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 10px 0 2px; font-size: 12px; color: #475569; }
.weekly-kpi span { background: #f1f5f9; border-radius: 999px; padding: 3px 10px; }
.guide-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; }
.guide-step { border: 1px solid #e6eaf3; border-radius: 14px; padding: 14px; background: #fbfcff; display: flex; flex-direction: column; gap: 8px; }
.gs-top { display: flex; gap: 10px; align-items: flex-start; }
.gs-num { width: 26px; height: 26px; border-radius: 8px; background: #047857; color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; flex: none; }
.gs-title { font-weight: 700; color: #0f172a; }
.gs-tags { display: block; margin-top: 4px; }
.tag { display: inline-block; background: #f1f5f9; color: #475569; font-size: 11px; border-radius: 6px; padding: 1px 6px; margin-right: 4px; }
.tag-l { background: #fef3c7; color: #92400e; }
.gs-task { color: #334155; font-size: 13px; }
.gs-out { color: #047857; font-size: 12.5px; font-weight: 600; }
.gs-why { color: #64748b; font-size: 12px; border-top: 1px dashed #e2e8f0; padding-top: 8px; }
.gs-actions { margin-top: auto; }
.guide-top3 { margin-top: 12px; font-size: 13px; color: #475569; }
.fit-top3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; margin-bottom: 16px; }
.fit-card { display: block; border: 1.5px solid #e6eaf3; border-radius: 16px; padding: 16px; text-decoration: none; color: inherit; background: linear-gradient(180deg, #ffffff, #f7f8ff); transition: transform .15s, box-shadow .15s; }
.fit-card:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(5, 150, 105, .10); border-color: #A7F3D0; }
.fc-medal { font-weight: 800; color: #047857; font-size: 13px; }
.fc-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.evi-badge { font-size: 11px; white-space: nowrap; }
.tier-badge { font-size: 11px; white-space: nowrap; }
.fc-badges { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
/* #29 coach 卡 / #31 最小动作卡 */
.coach-card { border: 1px solid #dbeafe; background: #f0f7ff; border-radius: 12px; padding: 12px 14px; margin: 10px 0 14px; }
.cc-head { font-weight: 700; color: #1d4ed8; font-size: 13px; }
.cc-body { margin: 6px 0 10px; color: #334155; font-size: 13px; white-space: pre-wrap; }
.cc-actions { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cc-state { font-size: 12px; color: #64748b; }
.task-item.now-lead { border-left: 4px solid #059669; background: linear-gradient(90deg, #ECFDF5, #fff 55%); }
.now-badge { background: #ECFDF5; color: #047857; border-color: #A7F3D0; }
.fc-name { font-weight: 800; font-size: 16px; margin: 6px 0; color: #0f172a; }
.fc-fit { font-size: 32px; font-weight: 800; color: #059669; }
.fc-fit span { font-size: 14px; color: #64748b; margin-left: 2px; }
.fc-why { font-size: 12.5px; color: #047857; margin-top: 6px; }
.fc-gap { font-size: 12.5px; color: #b45309; margin-top: 4px; }
.fit-top-row { background: #ECFDF5; }
.fit-bar { background: #f1f5f9; border-radius: 999px; height: 8px; min-width: 120px; overflow: hidden; }
.fit-bar div { height: 100%; background: linear-gradient(90deg, #10B981, #064E3B); border-radius: 999px; }
.fit-why-cell { font-size: 12px; color: #475569; }
.fit-weights { margin-top: 12px; font-size: 13px; color: #334155; }
.fit-weights summary { cursor: pointer; color: #047857; font-weight: 600; }
.fit-weights li { margin: 4px 0; }
.btn-sm { padding: 6px 14px; font-size: 12.5px; }
.fine-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; margin-bottom: 8px; }
.fine-card { border: 1px solid #e6eaf3; border-radius: 14px; padding: 12px 14px; background: #fff; cursor: pointer; display: flex; flex-direction: column; gap: 6px; transition: border-color .15s, box-shadow .15s; }
.fine-card:hover { border-color: #A7F3D0; box-shadow: 0 4px 14px rgba(5, 150, 105, .08); }
.fine-card.lit { background: #f4f7ee; border-color: #bbe6c9; }
.fc-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.fc-name { font-weight: 700; color: #0f172a; font-size: 14.5px; }
.fc-tags { white-space: nowrap; }
.fc-hard { font-size: 12px; color: #047857; background: #D1FAE5; border-radius: 8px; padding: 6px 8px; }
.fc-task { font-size: 13px; color: #334155; }
.fc-out { font-size: 12.5px; color: #047857; font-weight: 600; }
.fc-kn { font-size: 11px; }
.fc-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; border-top: 1px dashed #e2e8f0; padding-top: 8px; margin-top: auto; }
.fc-note { font-size: 12px; color: #475569; flex: 1; min-width: 140px; }
.fc-actions { margin-left: auto; }


/* ===== v0.5.0 shell: 分组导航 / 汉堡 / footer ===== */
.nav-group { display: flex; align-items: center; gap: 2px; }
.nav-group + .nav-group { border-left: 1px solid rgba(255, 255, 255, .12); padding-left: 6px; }
/* PB-86 起分区小标题随平铺退役（呈现改走 .nav-dd-btn），样式暂留无引用 */
.nav-zone-label { font-size: 11px; letter-spacing: .1em; color: #8ba0c4; padding: 0 2px 0 6px; font-weight: 700; }
/* PB-74 页首面包屑：区 · 页定位 */
.crumb { font-size: 12px; color: #5b6b84; letter-spacing: .06em; margin: 0 0 10px; }
.crumb b { color: #059669; font-weight: 700; }
.crumb .sep { color: #c3cddf; margin: 0 6px; }
.nav-burger { display: none; margin-left: auto; background: rgba(255,255,255,.08); color: #cbd5e1;
  border: 1px solid rgba(255,255,255,.14); border-radius: 10px; font-size: 16px; padding: 5px 12px; cursor: pointer; }
.back-link { color: #A7F3D0; text-decoration: none; font-size: 12.5px; }
.back-link:hover { color: #fff; }
.site-footer { border-top: 1px solid var(--line); padding: 16px 28px 26px; margin-top: 26px;
  display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap;
  color: var(--faint); font-size: 12px; }
.site-footer a { color: var(--accent-strong); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
@media (max-width: 900px) {
  .nav-burger { display: block; }
  .topnav { display: none; }
  header.nav-open .topnav { display: flex; position: absolute; top: 100%; left: 0; right: 0;
    background: rgba(12,17,34,.97); padding: 12px 20px; flex-direction: column; gap: 8px;
    border-bottom: 1px solid var(--header-line); }
  header.nav-open .nav-group { flex-direction: column; align-items: flex-start; border-left: none !important; padding-left: 0; gap: 4px; }

  .meta { display: none; }
}

/* ===== v0.5.0 首页（今日主线工作台） ===== */
.wb-wrap { max-width: 920px; margin: 14px auto; }
.wb-steps { list-style: none; margin: 0; padding: 0; }
.wb-steps li { display: flex; gap: 10px; align-items: flex-start; padding: 10px 2px; border-bottom: 1px dashed var(--line); }
.wb-steps li:last-child { border-bottom: none; }
.wb-step-no { flex: none; width: 24px; height: 24px; border-radius: 8px; background: var(--accent-soft);
  color: var(--accent-strong); font-weight: 800; font-size: .8rem; display: flex; align-items: center; justify-content: center; }
.wb-step-main { flex: 1; min-width: 0; }
.wb-step-main .t { font-weight: 600; font-size: .9rem; }
.wb-step-main .why { font-size: .78rem; color: var(--muted); margin-top: 2px; }
@media (max-width: 700px) { }


/* ===== v0.5.1 层级清理：本页定位行 + 可折叠卡 ===== */
.page-lead { max-width: 920px; margin: 12px auto -2px; padding: 0 4px;
  font-size: .82rem; color: var(--muted); }
.page-lead b { color: var(--accent); }
.is-fold .fold-arrow { font-size: .72rem; opacity: .65; margin-left: 6px; }
.is-fold h2 { user-select: none; -webkit-user-select: none; }
.is-fold.fold-open .fold-arrow { transform: rotate(0deg); }


/* ===== v0.5.2 交互与可访问性：骨架屏 / 统一 toast / 空状态 / 移动端 ===== */
.skl { display: inline-block; min-width: 120px; height: 12px; border-radius: 6px;
  background: linear-gradient(90deg, #e8ecf5 25%, #f5f7fc 45%, #e8ecf5 65%);
  background-size: 200% 100%; animation: skl-wave 1.3s infinite; }
@keyframes skl-wave { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.cw-toast { position: fixed; left: 50%; bottom: 30px; transform: translateX(-50%) translateY(16px);
  background: #0f172a; color: #fff; border-radius: 12px; padding: 10px 18px; font-size: .86rem;
  box-shadow: var(--shadow-lg); opacity: 0; transition: opacity .25s, transform .25s; z-index: 500; max-width: 82vw; }
.cw-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.cw-toast-success { background: #065f46; }
.cw-toast-error { background: #9f1239; }
.empty-state { text-align: center; padding: 26px 12px; color: var(--muted); font-size: .88rem; }
.empty-state .big { font-size: 28px; display: block; margin-bottom: 8px; }
@media (max-width: 760px) {
  .container { padding: 0 10px; }
  .card { padding: 14px; border-radius: var(--radius-sm); }
  .stats-row { flex-direction: column; }
  .hero { flex-direction: column; gap: 14px; padding: 18px 16px; }
  .fit-top3, .entry-grid { grid-template-columns: 1fr; }
  .input-row { flex-wrap: wrap; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .chat-wrap { margin: 8px; }
  main h1 { font-size: 1.15rem; }
  main h2 { font-size: .95rem; }
  .site-footer { flex-direction: column; }
}
/* ???????jobs.html + ??????? */
.nav-badge { display:inline-block; min-width:16px; padding:0 5px; margin-left:6px; border-radius:8px; background:#dc2626; color:#fff; font-size:11px; line-height:16px; text-align:center; vertical-align:middle; }
#updates-body { margin-top:8px; }
.upd-entry { border:1px solid var(--line); border-radius:10px; margin-bottom:10px; background:var(--panel); }
.upd-entry summary { cursor:pointer; padding:10px 12px; font-weight:600; list-style:none; }
.upd-entry summary::-webkit-details-marker { display:none; }
.upd-entry[open] summary { border-bottom:1px solid var(--line); }
.upd-entry.unread { border-left:4px solid #dc2626; }
.upd-entry .upd-unread { background:#fee2e2; color:#b91c1c; border-radius:6px; padding:1px 6px; font-size:11px; margin-left:6px; }
.upd-body { padding:10px 12px; }
.upd-stats { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0; }
.upd-chip { background:#ECFDF5; color:#065F46; border-radius:8px; padding:2px 8px; font-size:12px; }
.upd-chip.warn { background:#fef2f2; color:#b91c1c; }
.upd-chip.ok { background:#ecfdf5; color:#047857; }
.upd-fail { background:#fef2f2; color:#b91c1c; border:1px solid #fecaca; border-radius:8px; padding:8px 10px; margin:6px 0; font-size:13px; }
.upd-top, .upd-list { margin:6px 0; padding-left:18px; font-size:13px; color:var(--text); }
.upd-top li, .upd-list li { margin:2px 0; }
.upd-diff { margin-top:8px; }
.upd-diff summary { cursor:pointer; font-size:13px; color:var(--muted); }
.updates-actions { margin-top:8px; }
#btn-updates-read { background:#047857; color:#fff; border:none; padding:8px 14px; border-radius:8px; cursor:pointer; font-size:13px; }
#btn-updates-read:hover { background:#065F46; }


/* ===== v0.22.0 导航下拉收纳 ===== */
.nav-dropdown { position: relative; }
.nav-dd-btn { background: transparent; border: 1px solid transparent; color: #9db0d0;
  font-size: 13.5px; font-weight: 500; font-family: inherit; cursor: pointer;
  padding: 7px 12px; border-radius: 999px; transition: all .16s; white-space: nowrap; }
.nav-dd-btn:hover { color: #fff; background: rgba(255,255,255,.08); }
.nav-dropdown.open .nav-dd-btn,
.nav-dropdown.has-active .nav-dd-btn { color: #fff; background: rgba(255,255,255,.10); }
.nav-dd-menu { display: none; position: absolute; top: calc(100% + 6px); left: 0; min-width: 150px;
  background: rgba(15,21,40,.98); border: 1px solid rgba(255,255,255,.14); border-radius: 12px;
  padding: 6px; box-shadow: 0 12px 30px rgba(0,0,0,.35); z-index: 60; }
.nav-dropdown.open .nav-dd-menu { display: flex; flex-direction: column; gap: 2px; }
.nav-dd-menu a { display: block; padding: 8px 12px; border-radius: 8px; font-size: 13px;
  color: #c3cee6; text-decoration: none; white-space: nowrap; position: relative; }
.nav-dd-menu a:hover { background: rgba(255,255,255,.10); color: #fff; }
.nav-dd-menu a.active { background: linear-gradient(135deg, #047857, #065F46);
  color: #fff; font-weight: 600; }
@media (max-width: 900px) {
  header.nav-open .nav-dd-menu { position: static; display: none; box-shadow: none;
    background: transparent; border: none; padding: 0 0 0 8px; }
  header.nav-open .nav-dropdown.open .nav-dd-menu { display: flex; }
  header.nav-open .nav-dd-btn { display: block; width: 100%; text-align: left; }
}

/* ===== v0.22.0 多邻国式成长路径（mentor 路径图 tab） ===== */
.wl-wrap { display: flex; flex-direction: column; gap: 14px; }
.wl-total { background: linear-gradient(135deg, #047857, #065F46); color: #fff;
  border-radius: 14px; padding: 14px 18px; }
.wl-total-head { display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px; flex-wrap: wrap; font-size: .88rem; margin-bottom: 10px; }
.wl-total-head b { font-size: 1.02rem; }
.wl-total-head span { opacity: .92; font-size: .8rem; }
.wl-bar { height: 10px; background: rgba(255,255,255,.22); border-radius: 999px; overflow: hidden; }
.wl-bar-fill { height: 100%; background: #a7f3d0; border-radius: 999px;
  transition: width .6s ease; min-width: 2px; }
.wl-stage { border: 1px solid var(--line, #e5e9f0); background: var(--panel, #fff);
  border-radius: 14px; overflow: hidden; }
.wl-stage-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px 16px; background: #f8fafc; border-bottom: 1px solid var(--line, #e5e9f0); }
.wl-stage-badge { background: linear-gradient(135deg, #047857, #065F46); color: #fff;
  font-size: .72rem; font-weight: 700; border-radius: 999px; padding: 3px 10px; }
.wl-stage-head b { font-size: .95rem; color: var(--text, #1f2937); }
.wl-stage-head .wl-stage-prog { margin-left: auto; font-size: .8rem; color: var(--muted, #6b7683); }
.wl-stage-goal { padding: 6px 16px 0; font-size: .8rem; color: var(--muted, #6b7683); }
.wl-stage-exit { padding: 4px 16px 0; font-size: .78rem; color: var(--muted, #6b7683); }
.wl-nodes { display: flex; flex-wrap: wrap; gap: 20px 30px; padding: 20px 22px; }
.path-node { display: flex; flex-direction: column; align-items: center; gap: 6px;
  width: 96px; text-decoration: none; cursor: pointer; }
.path-node .pn-ico { width: 54px; height: 54px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; font-size: 20px; font-weight: 800;
  border: 3px solid transparent; transition: transform .18s ease, box-shadow .18s ease; }
.path-node .pn-label { font-size: .72rem; line-height: 1.35; text-align: center;
  color: var(--text, #1f2937); display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden; }
.path-node .pn-sub { font-size: .68rem; color: var(--muted, #6b7683); text-align: center;
  display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.path-node.done .pn-ico { background: #d1fae5; border-color: #10b981; color: #047857; }
.path-node.done .pn-label { color: #065f46; }
.path-node.current .pn-ico { background: linear-gradient(135deg, #059669, #34D399);
  border-color: #059669; color: #fff; animation: pn-bounce 1.5s ease-in-out infinite;
  box-shadow: 0 0 0 6px rgba(5,150,105,.16), 0 8px 18px rgba(5,150,105,.4); }
.path-node.current .pn-label { color: #047857; font-weight: 700; }
.path-node.locked { cursor: not-allowed; opacity: .55; }
.path-node.locked .pn-ico { background: #e2e8f0; border-color: #cbd5e1; color: #94a3b8; }
.path-node.locked .pn-label { color: #94a3b8; }
.path-node.milestone .pn-ico { background: #fef3c7; border-color: #f59e0b; color: #b45309;
  font-size: 22px; border-radius: 18px; }
.path-node.milestone.done .pn-ico { background: #fef3c7; border-color: #f59e0b; color: #b45309; }
.path-node:hover .pn-ico { transform: scale(1.08); }
.path-node.locked:hover .pn-ico { transform: none; }
.path-node:focus-visible { outline: 2px solid var(--accent, #059669); outline-offset: 3px; border-radius: 10px; }
@keyframes pn-bounce {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.13); }
}
.wl-current-hint { padding: 0 22px 18px; font-size: .8rem; color: var(--accent-strong, #047857); }
@media (max-width: 640px) {
  .wl-nodes { gap: 14px 18px; padding: 14px 12px; }
  .path-node { width: 74px; }
  .path-node .pn-ico { width: 44px; height: 44px; font-size: 16px; }
}

/* ===== v0.23.1 首页聚合页 ===== */
a.brand { text-decoration: none; }
.stat-clickable { cursor: pointer; }
.stat-clickable:hover { outline: 2px solid #059669; outline-offset: 2px; border-radius: 10px; }
.stat-modal { position: fixed; inset: 0; z-index: 10000; display: flex; align-items: center; justify-content: center; }
.stat-modal[hidden] { display: none; }
.stat-modal-mask { position: absolute; inset: 0; background: rgba(15, 23, 42, .78); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.stat-modal-box { position: relative; background: #fff; border-radius: 14px; width: min(680px, 92vw); max-height: 82vh; overflow: auto; padding: 16px 18px; box-shadow: 0 18px 50px rgba(15, 23, 42, .35); }
.stat-modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.stat-modal-head span { font-weight: 700; font-size: 1rem; }
.stat-modal-head button { border: none; background: #eef1f5; border-radius: 8px; width: 28px; height: 28px; cursor: pointer; }
.stat-modal-head button:hover { background: #dfe4ea; }
.sm-sum { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sm-sum .mini-chip { background: #ECFDF5; border: 1px solid #A7F3D0; color: #065F46; border-radius: 999px; padding: 4px 12px; font-size: .82rem; }
.cal-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.cal-nav .cal-label { min-width: 110px; text-align: center; font-weight: 700; font-size: .95rem; color: var(--text); }
.cal-nav .tool-btn { background: #f1f5f9; border: 1px solid #d7dcea; color: #334155; border-radius: 8px; padding: 5px 10px; font-size: .78rem; cursor: pointer; font-family: inherit; }
.cal-nav .tool-btn:hover:not(:disabled) { background: #e2e8f0; }
.cal-nav .tool-btn:disabled { opacity: .4; cursor: default; }
.sm-tabs { display: flex; gap: 6px; margin-bottom: 10px; }
.sm-tab { border: 1px solid #d7dcea; background: #f8fafc; color: #64748b; border-radius: 999px; padding: 5px 16px; font-size: .82rem; cursor: pointer; font-family: inherit; }
.sm-tab.on { background: linear-gradient(135deg, #047857, #065F46); color: #fff; border-color: transparent; font-weight: 600; }
.sm-cats { display: flex; gap: 6px; margin-bottom: 10px; flex-wrap: wrap; }
.sm-cat { border: 1px solid #d7dcea; background: #f8fafc; color: #64748b; border-radius: 999px; padding: 4px 12px; font-size: .78rem; cursor: pointer; font-family: inherit; }
.sm-cat.on { background: #ECFDF5; border-color: #34D399; color: #047857; font-weight: 600; }

/* ===== v0.24.0 首页精简：紧凑统计板 + GO 按钮 + 缩放自适应 ===== */
.stats-compact { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 14px; }
.stats-compact .mini-stat { padding: 9px 12px; border-radius: 12px; gap: 9px; }
.stats-compact .mini-stat .ico { width: 30px; height: 30px; border-radius: 9px; font-size: 15px; }
.stats-compact .mini-stat .num { font-size: 18px; }
.stats-compact .mini-stat .lab { font-size: 10.5px; margin-top: 0; }
.week-bar { height: 4px; border-radius: 999px; background: var(--line); margin-top: 6px; overflow: hidden; min-width: 88px; }
.week-bar i { display: block; height: 100%; border-radius: 999px; width: 0; background: linear-gradient(90deg, var(--accent), var(--accent-2)); transition: width .5s ease; }
.week-bar i.full { background: var(--good); }
.btn-go-mini { border-radius: 999px; padding: 4px 13px; font-weight: 700; letter-spacing: .6px; }
main { min-width: 0; }
.card, section { min-width: 0; }
canvas, img, video { max-width: 100%; }


/* 项目工坊参考答案册（v0.43） */
.ref-code{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px;font-family:Consolas,"Courier New",monospace;font-size:12px;white-space:pre-wrap;word-break:break-all;max-height:340px;overflow:auto;margin:6px 0}
.ref-file,.ref-explain,.ref-run,.ref-expect{background:#f6f8fb;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;margin:8px 0}
.ref-file>b{display:block;margin-bottom:6px}
.ref-explain div,.ref-expect div{font-size:13px;line-height:1.7}
details{margin:6px 0}
details summary{cursor:pointer;color:#047857;font-size:13px;padding:4px 0}


/* S3 校准度 chip（数据诚实性：种子/推断维度明确标注） */
.cal-chip{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:999px;
  background:#ECFDF5;color:#047857;border:1px solid #A7F3D0;font-size:.75rem;
  font-weight:600;cursor:help;vertical-align:2px}
.cal-chip.warn{background:#fef3c7;color:#92400e;border-color:#fcd34d}


/* #59 可视化机制：研读材料箭头链流程图卡片 */
.flow-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 4px;margin:10px 0;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.flow-node{display:flex;flex-direction:column;gap:3px;background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0;border-radius:10px;padding:6px 9px;font-size:.78rem;line-height:1.35}
.flow-node.flow-cond{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.flow-node-main{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;word-break:break-word}
.flow-node-zh{font-size:.72rem;color:#64748b;line-height:1.4}
.flow-chip{display:flex;flex-direction:column;gap:3px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:4px 6px}
.flow-arrow{color:#94a3b8;font-size:.8rem;font-weight:700}


/* #60 可视化机制：研读材料步骤枚举分段卡片 */
.step-list{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.step-row{display:flex;align-items:flex-start;gap:10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}
.step-badge{flex:0 0 auto;min-width:26px;height:26px;border-radius:999px;background:#ECFDF5;color:#047857;border:1px solid #A7F3D0;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 7px;box-sizing:border-box}
.step-badge-mute{background:#f1f5f9;color:#64748b;border-color:#e2e8f0}
.step-body{font-size:.82rem;line-height:1.6;color:#334155;white-space:pre-line;word-break:break-word}


/* PB-18 散文结构渲染器：def/compare/enum/term/para 分层排版（研读材料可读性） */
.pr-para{margin:8px 0;line-height:1.78;color:#334155;white-space:pre-line;word-break:break-word}
.pr-para b{color:#0f172a}
.pr-term{background:#ECFDF5;border:1px solid #A7F3D0;color:#047857;border-radius:6px;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8em;white-space:nowrap;cursor:help}
.pr-callout{margin:10px 0;border-left:4px solid #059669;background:#f6fdf9;border-radius:0 10px 10px 0;padding:8px 12px}
.pr-brkt{white-space:nowrap}
.pr-callout .pr-head{font-weight:700;color:#065F46;margin-bottom:4px}
.pr-callout .pr-body{font-size:.84rem;line-height:1.7;color:#334155}
.pr-callout .pr-body .pr-para:first-child{margin-top:2px}
.pr-cmp{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:8px 0}
.pr-cmp-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 11px}
.pr-cmp-card .pr-cmp-term{font-weight:700;color:#1d4ed8;font-size:.84rem;word-break:break-word}
.pr-cmp-card .pr-cmp-desc{font-size:.8rem;line-height:1.6;color:#334155;margin-top:3px}
.pr-cmp-card .pr-cmp-note{display:block;font-size:.74rem;color:#64748b;margin-top:3px}
.pr-enum{display:flex;flex-direction:column;gap:7px;margin:8px 0}
.pr-row{display:flex;align-items:flex-start;gap:9px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 12px}
.pr-row .pr-idx{flex:0 0 auto;min-width:24px;height:24px;border-radius:999px;background:#ECFDF5;color:#047857;border:1px solid #A7F3D0;font-size:.78rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 6px;box-sizing:border-box;margin-top:1px}
.pr-row .pr-row-body{font-size:.83rem;line-height:1.65;color:#334155;white-space:pre-line;word-break:break-word}

/* ===== PB-19 渲染器二期：seq 序列链 / timeline 时间线 / matrix 关系矩阵 ===== */
.seq-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:6px;margin:8px 0}
.seq-node{display:flex;align-items:center;gap:6px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:6px 10px;font-size:.83rem;line-height:1.5;color:#334155;word-break:break-word}
.seq-mark{flex:none;font-size:.68rem;font-weight:700;color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;border-radius:999px;padding:1px 7px}
.seq-arrow{align-self:center;color:#94a3b8;font-weight:700}
.seq-lead{display:flex;align-items:center;font-size:.78rem;color:#64748b;background:#F8FAFC;border:1px dashed #cbd5e1;border-radius:10px;padding:6px 10px}
.tl-list{display:flex;flex-direction:column;gap:0;margin:8px 0;border-left:2px solid #A7F3D0;padding-left:14px}
.tl-item{position:relative;display:flex;align-items:flex-start;gap:8px;padding:5px 0}
.tl-dot{flex:none;width:10px;height:10px;border-radius:50%;background:#059669;border:2px solid #ECFDF5;box-shadow:0 0 0 2px #A7F3D0;margin-top:6px;margin-left:-21px}
.tl-date{flex:none;font-size:.7rem;font-weight:700;color:#047857;background:#ECFDF5;border:1px solid #A7F3D0;border-radius:7px;padding:2px 7px;margin-top:2px;white-space:nowrap}
.tl-body{font-size:.83rem;line-height:1.6;color:#334155;word-break:break-word}
.mx-wrap{margin:8px 0;overflow-x:auto}
.mx-table{border-collapse:collapse;width:100%;font-size:.8rem;background:#fff}
.mx-table th,.mx-table td{border:1px solid #e2e8f0;padding:6px 10px;text-align:left;vertical-align:top;line-height:1.55}
.mx-table th{background:#F0FDF4;color:#065f46;font-size:.76rem;white-space:nowrap}
.mx-table td.mx-row{font-weight:700;color:#1d4ed8;background:#f8fafc;white-space:nowrap}
@media (max-width:640px){.tl-date{white-space:normal}.mx-table th{white-space:normal}}


/* ===== PB-20 能力树 SVG 树视图 ===== */
.ab-view-toggle{display:flex;gap:6px;align-items:center;margin:10px 0 0}
.at-view-label{font-size:.76rem;color:var(--faint)}
.at-view-btn{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:999px;padding:5px 13px;font-size:12.5px;cursor:pointer;font-family:inherit;transition:border-color .15s,background .15s,color .15s}
.at-view-btn:hover{border-color:var(--accent);color:var(--accent-strong)}
.at-view-btn.active{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}
.at-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:.78rem;color:var(--muted);margin:10px 0 2px}
.at-legend-tip{color:var(--faint)}
.at-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fbfcfe,#fff);padding:8px 4px;margin-top:8px}
.at-svg{display:block}
.at-svg .at-link{stroke:#cbd5e1;stroke-width:1.5;fill:none}
.at-root rect{fill:#0c1122}
.at-root-name{fill:#fff;font-size:13px;font-weight:700;text-anchor:middle}
.at-root-sub{fill:#a7f3d0;font-size:10.5px;text-anchor:middle}
.at-cat rect{fill:#f1f5f9;stroke:#cbd5e1}
.at-cat.full rect{fill:#ecfdf5;stroke:#a7f3d0}
.at-cat.part rect{fill:#f6fdf9;stroke:#6ee7b7}
.at-cat-name{fill:#0f172a;font-size:12px;font-weight:700;text-anchor:middle}
.at-cat-sub{fill:#64748b;font-size:10px;text-anchor:middle}
.at-leaf{cursor:pointer}
.at-leaf rect{fill:#fff;stroke:#cbd5e1}
.at-leaf text{fill:#334155;font-size:11.5px;text-anchor:middle}
.at-leaf.lit rect{fill:#059669;stroke:#047857}
.at-leaf.lit text{fill:#fff}
.at-leaf:hover rect,.at-leaf:focus-visible rect{stroke:#047857;stroke-width:2}
.at-leaf:focus-visible{outline:none}
.at-leaf-empty rect{fill:none;stroke:#e2e8f0;stroke-dasharray:4 3}
.at-leaf-empty text{fill:#94a3b8;font-size:10.5px;text-anchor:middle}


/* ===== 品牌 Hero（转行家 verimade · V-6） ===== */
.hero-brand { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 22px 16px 20px; margin-bottom: 14px; background: linear-gradient(180deg, #F6FEF9, #fff); border: 1px solid #A7F3D0; border-radius: 14px; }
.hero-wordmark { height: 72px; width: auto; max-width: 100%; }
.hero-slogan { margin: 0; font-size: 14px; font-weight: 700; color: #047857; letter-spacing: .06em; }
.hero-slogan-sub { font-weight: 500; color: #5B6B84; margin-left: 6px; }


/* ===== P1 岗位图谱组织视角 ===== */
.org-flow{display:flex;align-items:stretch;gap:8px;overflow-x:auto;padding-bottom:6px}
.org-stage{flex:0 0 min(300px,84vw);background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}
.org-stage-head{display:flex;flex-direction:column;gap:3px}
.org-stage-head b{color:#065f46;font-size:1rem}
.org-stage-head span{color:#64748b;font-size:.78rem}
.org-stage p{margin:0;font-size:.8rem;color:#334155}
.org-jobs{display:grid;gap:8px}
.org-job{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid #e2e8f0;border-left:4px solid #10b981;border-radius:10px;padding:8px 10px;text-decoration:none}
.org-job b{font-size:.84rem;color:#0f172a}
.org-job span{font-size:.75rem;color:#52657d}
.org-job:hover{border-color:#34d399;box-shadow:0 4px 12px rgba(5,150,105,.08);transform:translateY(-1px)}
.org-arrow{flex:0 0 auto;display:flex;align-items:center;color:#94a3b8;font-weight:700}
.org-detail{margin-top:10px;display:grid;gap:8px}
.org-note{background:#ECFDF5;border:1px solid #A7F3D0;color:#065f46;border-radius:10px;padding:10px 12px;font-size:.84rem;line-height:1.6}
.org-note.org-you{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.org-empty{color:#64748b}
@media (max-width:1024px){.org-arrow{display:none}.org-flow{flex-direction:column;overflow:visible}.org-stage{flex:1 1 auto}}


/* ===== P2 教练反馈采纳追踪 ===== */
.fb-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.fb-actions .btn-mini{background:#fff;border:1px solid #e2e8f0;color:#334155;border-radius:999px;padding:3px 9px;font-size:.72rem}
.fb-actions .btn-mini:hover{border-color:#34d399;color:#047857}

/* PB-34 智能体切入口密度徽章（jobs 岗位清单） */
.badge-agent-hi { background: #ECFDF5; color: #047857; border-color: #6EE7B7; }
.badge-agent-mid { background: #FFFBEB; color: #92400E; border-color: #FDE68A; }
.badge-agent-lo { background: #F1F5F9; color: #64748B; border-color: #E2E8F0; }

/* PB-59 今日任务标签行（chips 从 h2 内挪出独立成行，flex 换行不再挤成一条） */
.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px}
.chip-row:empty{display:none}

/* PB-59 每日五研读达成率进度条（study-today 父卡：完成一篇 +20%） */
.sd-kpi{font-size:.78rem;color:#475569;background:#f1f5f9;border-radius:8px;padding:4px 10px;margin:4px 0 2px}
.sd-bar-wrap{display:flex;align-items:center;gap:10px;margin:4px 0 2px;flex-wrap:wrap}
.sd-bar{flex:1 1 120px;min-width:90px;height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.sd-bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#059669);transition:width .4s ease}
.sd-pct{font-size:.78rem;color:#047857;font-weight:650;white-space:nowrap}

/* PB-66 反馈#29 我的研读进度（scene.html）：四统计卡+分层条形+30 天迷你热力 */
.pg-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:6px 0 12px}
.pg-stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;text-align:center}
.pg-stat .v{font-size:1.5rem;font-weight:800;color:#047857;font-variant-numeric:tabular-nums}
.pg-stat .k{font-size:.75rem;color:#6b7683;margin-top:2px}
.pg-layers{margin:4px 0 10px}
.pg-layer{display:flex;align-items:center;gap:10px;margin:7px 0}
.pg-layer .name{flex:0 0 64px;font-size:.8rem;color:#334155}
.pg-layer .bar{flex:1;height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.pg-layer .bar i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#34d399,#059669);transition:width .4s ease}
.pg-layer .num{flex:0 0 auto;font-size:.75rem;color:#475569;font-variant-numeric:tabular-nums;white-space:nowrap}
.pg-heat{display:flex;gap:3px;flex-wrap:wrap;margin-top:6px}
.pg-cell{width:14px;height:14px;border-radius:3px;background:#eef2f6;flex:none}
.pg-cell.h1{background:#a7f3d0}.pg-cell.h2{background:#34d399}.pg-cell.h3{background:#059669}
.pg-heat-note{font-size:.72rem;color:#94a3b8;margin-top:6px}
@media (max-width:640px){.pg-stats{grid-template-columns:repeat(2,1fr)}}

/* PB-68 反馈#34 跳过池（scene.html）：分类存放的「有空再看」素材列表 */
.skip-list{margin-top:4px}
.skip-row{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:10px 12px;margin:8px 0}
.skip-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.skip-badge{font-size:.72rem;color:#475569;background:#e2e8f0;border-radius:999px;padding:2px 10px;white-space:nowrap}
.skip-note{font-size:.78rem;color:#64748b;margin-top:4px}
.skip-meta{display:flex;align-items:center;gap:10px;margin-top:6px;font-size:.74rem;color:#94a3b8}

/* PB-80 反馈#41 研读材料「业务拓展」补足块（renderChunkHtml 单源·五研读页通用） */
.mat-ext{margin-top:10px;border:1px solid #a7f3d0;background:#f0fdf9;border-radius:10px;padding:10px 12px}
.mat-ext-h{font-size:.85rem;font-weight:700;color:#047857;margin-bottom:6px}
.mat-ext-badge{font-size:.72rem;font-weight:600;color:#6b7683;margin-left:6px}
.mat-ext-b{font-size:.86rem;line-height:1.65;color:#1f2933}
.mat-ext-b b{color:#047857}
.mat-ext-f{font-size:.72rem;color:#8a94a3;margin-top:6px}
/* PB-101 material_ext 兜底 v1：拓展缺位时的降级提示（弱化灰调·不抢正文视线） */
.mat-ext-miss{border-style:dashed;border-color:#cbd5e1;background:#f8fafc}
