/* 参与与回访：结束页的「接下来」、护照与档案、日程、接力回访、简报、班级看板、首页回访入口。沿用 lab.css 的墨蓝 / 纸白变量。 */
.next-panel{margin-top:28px;padding:28px 0 8px;border-top:1px solid var(--line)}
.next-head{margin-bottom:18px}.next-head h2{font:22px/1.5 var(--serif);margin:6px 0 4px}
.next-panel .eyebrow,.engage-page .eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted)}
.next-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.next-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:9px;min-width:0}
.next-card h3{font-size:16px;line-height:1.6}
.next-stamp{flex-direction:row;align-items:center;gap:16px}.next-stamp .stamp{width:84px;flex-shrink:0}
.row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:4px}
.next-links{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:18px}
.next-later{display:grid;gap:10px}.later-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.ok-note{color:inherit}.ok-note::before{content:"✓ ";color:var(--accent)}
.facet-dots{display:flex;gap:6px;list-style:none;margin:2px 0;padding:0}.facet-dots li{width:22px;height:8px;border-radius:4px;background:var(--chip);border:1px solid var(--line)}.facet-dots li.lit{background:var(--accent);border-color:var(--accent)}.facet-dots li.fresh{animation:facet-pop .8s ease-out}
@keyframes facet-pop{0%{transform:scaleY(.4);opacity:.3}60%{transform:scaleY(1.6)}100%{transform:none;opacity:1}}

/* 今日一题 */
.next-daily{grid-column:1/-1}
.daily-grid{font-size:22px;letter-spacing:4px;line-height:1.4}
.daily-yesterday{display:grid;gap:6px;padding:12px 14px;border-radius:14px;border:1px dashed var(--line)}
.daily-text{white-space:pre-line;font:15px/1.9 var(--serif)}

/* 护照 */
.passport-claim{display:grid;gap:12px}
.passport-terms summary{cursor:pointer;font-size:13px;color:var(--muted)}.passport-terms .prose{margin-top:10px;font-size:13px}
.passport-existing{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:12px;border-top:1px dashed var(--line)}
.passport-input{flex:1;min-width:0;width:100%;max-width:330px;padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);font:14px/1.4 ui-monospace,Menlo,monospace;letter-spacing:1px;text-transform:uppercase}
.passport-option{margin-top:16px;padding:14px 16px;border:1px dashed var(--accent);border-radius:var(--radius);display:grid;gap:8px}.passport-option .check{border:0;background:transparent;padding:0}
.passport-reveal{display:grid;gap:10px}
.passport-code{font:500 clamp(15px,3.6vw,22px)/1.5 ui-monospace,Menlo,monospace;letter-spacing:2px;padding:14px 18px;border-radius:14px;background:var(--paper);border:1px solid var(--line);word-break:break-all}
.passport-code.masked{color:var(--muted)}
.passport-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.passport-stats>div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;background:var(--paper);border:1px solid var(--line);min-width:0}.passport-stats strong{font:22px/1.3 var(--serif);overflow-wrap:anywhere}.passport-stats span{font-size:11px;color:var(--muted)}
.passport-manage{display:grid;gap:12px}
.passport-more summary{cursor:pointer;font-size:13px;color:var(--muted)}.passport-more .row-actions{margin-top:12px}
.danger-zone{margin-top:12px;padding:12px 14px;border-radius:14px;background:var(--warn-bg);color:var(--warn-ink)}

/* 页面 */
.engage-page{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.engage-page>*,.engage-body>*{min-width:0}
.engage-head{padding:10px 4px 6px}.engage-head .title{margin:6px 0 8px}.engage-head .muted{font-size:14px;max-width:620px}
.engage-body{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.engage-card+.engage-card{margin-top:0}
.engage-h2{font:19px/1.55 var(--serif);margin-bottom:14px}
.engage-back{padding:6px 4px}
.subscribe{padding:0 4px}

/* 档案 */
.facet-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;list-style:none;margin:0 0 12px;padding:0}
.facet-card{display:flex;flex-direction:column;gap:5px;padding:16px;border-radius:16px;border:1px solid var(--line);background:var(--paper);min-width:0}
.facet-card.empty{border-style:dashed;background:transparent}
.facet-card.fresh{border-color:var(--accent)}
.facet-name{font-size:14px}.facet-q{font-size:12px;color:var(--muted);line-height:1.7}
.facet-value{font:24px/1.3 var(--serif)}.facet-band{font-size:12px}.facet-prev,.facet-meta{font-size:11px;color:var(--muted)}
.facet-card meter,.class-bars meter,.digest-bars meter,.overlap meter{width:100%;height:8px}
meter::-webkit-meter-bar{background:var(--chip);border:0;border-radius:4px;height:8px}meter::-webkit-meter-optimum-value{background:var(--accent);border-radius:4px}meter::-moz-meter-bar{background:var(--accent);border-radius:4px}
.engage-page meter,.next-panel meter{appearance:none;-webkit-appearance:none;background:var(--chip);border-radius:4px;border:0}

/* 邮票 */
.stamp-album{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:14px;list-style:none;margin:0 0 12px;padding:0}
.stamp{width:100%;height:auto;display:block;color:var(--muted)}
.stamp .stamp-paper{fill:var(--paper);stroke:var(--line);stroke-width:1}
.stamp.collected .stamp-paper{fill:#fffdf8}
[data-theme=dark] .stamp.collected .stamp-paper{fill:#f1ece2}
.stamp.empty{opacity:.75}

/* 研究季 */
.season{padding:14px 0;border-top:1px dashed var(--line)}.season:first-of-type{border-top:0;padding-top:0}
.season-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px}.season-head h3{font-size:15px}
.season-map{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.season-map li{display:grid;grid-template-columns:auto 1fr;column-gap:10px;align-items:center;padding:10px 12px;border-radius:14px;border:1px solid var(--line)}
.season-map li>:not(.isle){grid-column:2}.season-map .isle{grid-row:span 3;width:30px;height:18px;border-radius:50% 50% 8px 8px;background:var(--chip);border:1px solid var(--line)}
.season-map li.done .isle{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.season-map li.tried .isle{background:color-mix(in srgb,var(--accent) 35%,var(--chip))}
.season-map strong{font-size:13px;line-height:1.5}
.season-stamp{margin-top:10px;font-size:13px;color:var(--ok)}

/* 日志与日程 */
.research-log{list-style:none;margin:0;padding:0;display:grid;gap:8px}.research-log li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.research-log time{font-variant-numeric:tabular-nums;color:var(--muted)}
.later-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.later-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;font-size:13px}
.calendar-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.calendar-list>li{display:grid;grid-template-columns:72px 1fr;gap:16px;padding-bottom:14px;border-bottom:1px dashed var(--line)}.calendar-list>li:last-child{border-bottom:0;padding-bottom:0}
.cal-date{display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:14px;background:var(--paper);border:1px solid var(--line);padding:8px 4px;height:fit-content}.cal-date strong{font:20px/1.2 var(--serif)}.cal-date span{font-size:11px;color:var(--muted)}
.cal-body{display:grid;gap:4px;min-width:0}.cal-body h3{font-size:15px}
.status-recruiting{background:var(--accent);color:var(--accent-ink)}

/* 接力回访 */
.fate-chart{width:100%;height:auto;margin:10px 0}.fate-chart .axis{stroke:var(--line);stroke-width:1.5}.fate-chart .tick{fill:var(--muted);font-size:12px}.fate-chart .line{fill:none;stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round}.fate-chart .dot{fill:var(--panel);stroke:var(--accent);stroke-width:2}.fate-chart .dot.you{fill:var(--accent)}
.fate-table-wrap{overflow-x:auto;margin:6px 0 10px;-webkit-overflow-scrolling:touch}
.fate-table{border-collapse:collapse;font-size:12px;min-width:100%;white-space:nowrap}.fate-table th,.fate-table td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}.fate-table th:first-child{text-align:left}.fate-table .you{background:var(--chip);font-weight:500}
.retell-chain{list-style:none;margin:0;padding:0;display:grid;gap:12px;counter-reset:gen}
.retell-chain li{position:relative;padding:14px 16px 14px 18px;border-radius:14px;border:1px solid var(--line);border-left:4px solid var(--line);display:grid;gap:6px}
.retell-chain li.origin{background:var(--paper)}.retell-chain li.you{border-left-color:var(--accent);background:var(--chip)}
.retell-chain .gen{font-size:11px;letter-spacing:1px;color:var(--muted)}.retell-text{font-size:14px;line-height:1.9}
.overlap{display:grid;gap:4px}

/* 简报与班级 */
.digest-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}.digest-item{display:grid;gap:8px;justify-items:start}.digest-item .engage-h2{margin:0}
.digest-headline{font:21px/1.6 var(--serif);margin:8px 0}
.took-part{padding:12px 16px;border-radius:var(--radius);background:var(--accent);color:var(--accent-ink);font-size:14px}
.digest-bars,.class-bars{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:12px}
.digest-bars li{display:grid;grid-template-columns:minmax(90px,30%) 1fr auto auto;gap:10px;align-items:center;font-size:13px}
.class-bars li{display:grid;gap:5px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.bar-row{display:grid;grid-template-columns:56px 1fr 64px;gap:10px;align-items:center;font-size:12px}.bar-row strong{text-align:right;font-variant-numeric:tabular-nums}.bar-row.all{color:var(--muted)}
.digest-links{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:6px}

/* 首页回访入口 */
.return-section{border-top:1px solid var(--line);padding:35px 0 40px}
.return-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}
.return-card{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.return-card:hover{transform:translateY(-2px);border-color:var(--accent)}
.return-k{font:26px/1.2 var(--serif);color:var(--accent)}.return-card strong{font-size:16px}.return-card p{font-size:12px;color:var(--muted);line-height:1.9}

@media(max-width:900px){.return-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){
  .next-grid{grid-template-columns:1fr}.next-card{padding:18px}
  .return-grid{grid-template-columns:1fr}.return-section{padding:27px 0}
  .passport-stats{grid-template-columns:1fr 1fr 1fr;gap:8px}.passport-stats>div{padding:10px}.passport-stats strong{font-size:17px}
  .calendar-list>li{grid-template-columns:58px 1fr;gap:12px}.cal-date strong{font-size:16px;white-space:nowrap}
  .digest-bars li{grid-template-columns:1fr auto;}.digest-bars li meter{grid-column:1/-1;grid-row:2}
  .engage-page .row-actions .btn{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){.facet-dots li.fresh{animation:none}.return-card:hover{transform:none}}

/* 两地同题：地区目标、两地对照、合作单位列表 */
.region-goals{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}
.region-goals li{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius)}
.region-goals meter{width:100%;height:10px}
.region-study{padding:14px 0;border-top:1px dashed var(--line)}.region-study:first-of-type{border-top:0;padding-top:4px}
.region-study .bar-row{grid-template-columns:minmax(64px,max-content) 1fr 64px}
.site-list{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px}
.site-list li{display:grid;grid-template-columns:1fr auto;gap:2px 12px;align-items:center;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.site-list li .muted{grid-column:1}.site-list li .chip{grid-row:1 / span 2;grid-column:2}
