/* 召集模块 · 共用样式 */
html, body { background:#fff; color:var(--folio-ink); }
body { font-family:'Inter','Noto Sans SC',system-ui,sans-serif; }
.serif-display { font-family:'Fraunces','Noto Serif SC',serif; font-weight:600; letter-spacing:-0.01em; }
.serif-title   { font-family:'Fraunces','Noto Serif SC',serif; font-weight:500; }
.zh            { font-family:'Noto Serif SC','Fraunces',serif; }
.font-sans     { font-family:'Inter','Noto Sans SC',system-ui,sans-serif; }
.num-serif     { font-family:'Fraunces',serif; font-feature-settings:'tnum' 1, 'lnum' 1; }
.text-ink      { color:var(--folio-ink); }
.text-ink2     { color:var(--folio-ink-2); }
.text-coral    { color:var(--folio-seal); }
.tracking-widest2 { letter-spacing:0.18em; }

/* 顶部内页导航需要的复用 */
.inner-nav {
  background:rgba(255,255,255,.94);
  border-bottom:1px solid var(--folio-rule);
  backdrop-filter:blur(12px);
}

/* 通用按钮 */
.btn-coral {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  white-space:nowrap;
  background:var(--folio-ink); color:#fff; border:1px solid var(--folio-ink);
  padding:10px 20px; font-size:13px; font-family:'Noto Serif SC','Fraunces',serif;
  border-radius:var(--folio-radius); cursor:pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.btn-coral:hover { background:#fff; border-color:var(--folio-ink); color:var(--folio-ink); }
.btn-coral[disabled] { background:#C8BDA6; border-color:#C8BDA6; cursor:not-allowed; }

.btn-ink {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  white-space:nowrap;
  background:transparent; color:var(--folio-ink); border:1px solid var(--folio-ink);
  padding:10px 20px; font-size:13px; font-family:'Noto Serif SC','Fraunces',serif;
  border-radius:var(--folio-radius); cursor:pointer;
  transition: all .2s ease;
}
.btn-ink:hover { background:var(--folio-ink); color:var(--folio-paper); }

.btn-ghost {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  white-space:nowrap;
  background:transparent; color:var(--folio-ink); border:1px solid var(--folio-rule);
  padding:10px 20px; font-size:13px; font-family:'Noto Serif SC','Fraunces',serif;
  border-radius:var(--folio-radius); cursor:pointer;
  transition: all .2s ease;
}
.btn-ghost:hover { border-color:var(--folio-ink); }
.btn-ghost.is-on { color:var(--folio-seal); border-color:var(--folio-seal); }

/* 文字链接 */
.text-link {
  text-decoration: underline;
  text-decoration-color: var(--folio-rule);
  text-underline-offset: 4px;
  transition: color .15s ease, text-decoration-color .15s ease;
  cursor:pointer;
}
.text-link:hover { color:var(--folio-ink); text-decoration-color:var(--folio-ink); }

/* 卡片 */
.card {
  background:#fff;
  border:0;
  border-top:1px solid var(--folio-rule);
  border-bottom:1px solid var(--folio-rule);
  border-radius:0;
}

/* 状态标签 */
.status-pill {
  display:inline-flex; align-items:center; justify-content:center;
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:11px; min-height:24px; padding:0 10px; border-radius:var(--folio-radius);
  letter-spacing:0.04em;
  border:1px solid currentColor;
  line-height:1;
  transform: translateY(1px);
}
.status-pill.s-wait { color:var(--folio-ink-2); }
.status-pill.s-prog { color:var(--folio-seal); }
.status-pill.s-done { color:var(--folio-ink); }

/* 召集人推荐标签 */
.tag-pick {
  display:inline-flex; align-items:center;
  font-family:'Fraunces','Noto Serif SC',serif;
  font-size:11px; padding:3px 8px;
  background:var(--folio-paper); color:#8C7A4F; border:1px solid #C9B786;
  border-radius:var(--folio-radius);
}

/* 头像 */
.av {
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px; border:1px solid var(--folio-rule);
  font-family:'Fraunces','Noto Serif SC',serif; color:var(--folio-ink); flex-shrink:0;
  background:#EFE4D2;
}
.av.rose { background:#F2C7A3; }
.av.blue  { background:#E3D2B5; }
.av.green  { background:#D9C6A7; }
.av.blue { background:#D6C6D0; }
.av.green  { background:#BEC6A5; }
.av.seal { background:var(--folio-seal); color:var(--folio-paper); }
.av.ink   { background:#2B2724; color:var(--folio-paper); }
.av.yellow  { background:#EFE4D2; }

/* Tab */
.summon-tab {
  position:relative; padding:14px 0; cursor:pointer;
  font-size:14px; color:var(--folio-ink-2);
  background:transparent; border:0;
  font-family:'Noto Serif SC','Fraunces',serif;
  transition: color .15s ease;
}
.summon-tab:hover { color:var(--folio-ink); }
.summon-tab.is-active { color:var(--folio-ink); font-weight:600; }
.summon-tab.is-active::after {
  content:""; position:absolute; left:0; right:0; bottom:-1px;
  height:2px; background:var(--folio-seal);
}

/* 召集封面色 */
.cover-tone {
  border:1px solid var(--folio-rule);
  background:#EFE4D2;
}
/* 🔴 这些是**作品封面**的底色，不是头像底色。
   原本写成裸 .tone-*，会同时命中页面上的头像（头像用的是同一组 tone 类名），
   于是同一个 tone 在封面和头像上是两个颜色。加上 .cover-tone 限定作用域后，
   头像统一由 shared/folio-theme.css 的 --folio-avatar-* 提供。
   另：原来 .tone-blue 与 .tone-green 各被写了两遍且色值不同（复制粘贴遗留），
   后者胜出，前者一直是死代码 —— 这里只保留实际生效的那份。 */
.cover-tone.tone-yellow { background:#EFE4D2; }
.cover-tone.tone-rose   { background:#F4D9C2; }
.cover-tone.tone-blue   { background:#E2D1DA; }
.cover-tone.tone-green  { background:#CBD3B6; }
.cover-tone.tone-seal   { background:var(--folio-seal); }
.cover-tone.tone-ink    { background:#2B2724; }

/* 输入框 */
.line-input {
  display:block; width:100%;
  background:transparent; color:var(--folio-ink);
  border:0; border-bottom:1px solid var(--folio-rule);
  padding:14px 0;
  outline:none;
  transition: border-color .15s ease;
}
.line-input:focus { border-bottom-color:var(--folio-ink); }
.line-input::placeholder { color:#A89F8C; }

/* textarea */
.bare-area {
  display:block; width:100%;
  background:transparent; color:var(--folio-ink);
  border:0; outline:none;
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:16px; line-height:1.8;
  resize:none;
}
.bare-area::placeholder { color:#A89F8C; }

/* msg-box */
.msg-box {
  background:var(--folio-paper); border:1px solid var(--folio-rule); border-radius:var(--folio-radius);
  padding:20px;
}
.msg-box textarea {
  width:100%; background:transparent; border:0; outline:none; resize:none;
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:14px; line-height:1.7; color:var(--folio-ink);
}
.msg-box textarea::placeholder { color:#A89F8C; }

/* 横向滚动版本卡 */
.versions-scroll {
  display:flex; gap:16px;
  overflow-x:auto; overflow-y:visible;
  padding-bottom:8px; scrollbar-width:thin;
}
.versions-scroll::-webkit-scrollbar { height:6px; }
.versions-scroll::-webkit-scrollbar-thumb { background:var(--folio-rule); border-radius:3px; }

/* 互动按钮 */
.act {
  display:inline-flex; align-items:center; gap:6px;
  font-size:13px; color:var(--folio-ink-2);
  background:transparent; border:0; padding:0;
  font-family:'Fraunces','Noto Serif SC',serif;
  cursor:pointer; transition: color .15s ease;
}
.act:hover { color:var(--folio-ink); }
.act.is-active { color:var(--folio-seal); }

/* =========================================================
   召集列表页 · 编辑清单版
   仅使用 summon-feed-* / summon-row-* 等专属类，避免影响详情与发起页。
   ========================================================= */

.summon-page {
  padding-bottom:96px;
}

.summon-hero {
  display:grid;
  grid-template-columns:minmax(300px, .86fr) minmax(480px, 1.34fr);
  gap:64px;
  align-items:center;
  padding-top:48px;
  padding-bottom:46px;
}

.summon-kicker,
.summon-index-title {
  font-family:'Inter','Noto Sans SC',system-ui,sans-serif;
  font-size:11px;
  letter-spacing:.30em;
  text-transform:uppercase;
  color:var(--folio-ink-2);
}

.summon-hero-copy h1 {
  font-size:clamp(58px, 6vw, 82px);
  line-height:.96;
  margin:22px 0 20px;
}

.summon-hero-copy p {
  font-size:21px;
  line-height:1.5;
  margin:0;
}

.summon-index {
  position:relative;
  min-height:190px;
  padding:28px 34px;
  overflow:hidden;
  background:#e6f3f8;
  border:1px solid rgba(92,132,147,.14);
}

.summon-index-title,
.summon-index-stats,
.summon-index-swatches {
  position:relative;
  z-index:2;
}

.summon-index-stats {
  display:flex;
  margin-top:30px;
}

.summon-index-stat {
  display:flex;
  flex-direction:column;
  min-width:122px;
  padding-right:28px;
  margin-right:28px;
  border-right:1px dotted rgba(44,44,40,.28);
}

.summon-index-stat:last-child {
  border-right:0;
  margin-right:0;
  padding-right:0;
}

.summon-index-stat strong {
  font-size:31px;
  line-height:1;
  font-weight:500;
  color:var(--folio-ink);
}

.summon-index-stat span {
  margin-top:9px;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:13px;
  color:var(--folio-ink-2);
}

.summon-index-swatches {
  display:flex;
  gap:8px;
  margin-top:24px;
}

.summon-index-swatches i {
  width:23px;
  height:10px;
}

.summon-index-swatches .sw-yellow { background:#f2d64d; }
.summon-index-swatches .sw-blue { background:#b9dce9; }
.summon-index-swatches .sw-rose { background:#efb1b1; }
.summon-index-swatches .sw-green { background:#c3d7ad; }
.summon-index-swatches .sw-seal { background:var(--folio-seal); }

.summon-index-shapes i {
  position:absolute;
  display:block;
  border:1px solid rgba(92,132,147,.10);
  background:rgba(255,255,255,.68);
  transform:rotate(-8deg);
}

.summon-index-shapes i:nth-child(1) {
  width:78px;
  height:114px;
  right:166px;
  top:28px;
}

.summon-index-shapes i:nth-child(2) {
  width:86px;
  height:128px;
  right:72px;
  top:50px;
  background:rgba(173,211,226,.74);
  transform:none;
}

.summon-index-shapes i:nth-child(3) {
  width:82px;
  height:82px;
  right:-22px;
  top:20px;
  transform:rotate(-16deg);
}

.summon-content {
  border-top:1px solid var(--folio-rule);
}

.summon-toolbar {
  display:grid;
  grid-template-columns:220px minmax(0,1fr) 178px;
  align-items:center;
  gap:28px;
  min-height:76px;
  border-bottom:1px solid var(--folio-rule);
}

.summon-search {
  display:flex;
  align-items:center;
  gap:9px;
  height:40px;
  padding:0 13px;
  border:1px solid var(--folio-rule);
  background:#fff;
}

.summon-search span {
  font-family:'Fraunces',serif;
  font-size:21px;
  line-height:1;
  transform:rotate(-18deg);
}

.summon-search input {
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:var(--folio-ink);
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:13px;
}

.summon-search input::placeholder {
  color:#9d9589;
}

.summon-tabs {
  display:flex;
  justify-content:center;
  align-items:center;
  gap:31px;
  min-width:0;
}

.summon-toolbar .summon-tab {
  flex:0 0 auto;
  padding:27px 0 24px;
  font-size:14px;
}

.summon-toolbar .summon-tab.is-active::after {
  left:0;
  right:0;
  bottom:17px;
  height:2px;
  background:#f2d64d;
}

.summon-create-link {
  display:flex;
  align-items:center;
  justify-content:center;
  height:40px;
  color:#fff;
  background:var(--folio-ink);
  border:1px solid var(--folio-ink);
  text-decoration:none;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:13px;
  transition:background .18s ease, color .18s ease;
}

.summon-create-link:hover {
  background:#fff;
  color:var(--folio-ink);
}

.summon-columns {
  display:grid;
  grid-template-columns:minmax(0,1fr) 260px;
  align-items:start;
}

.summon-feed-column {
  min-width:0;
  padding-right:34px;
}

.summon-side-rail {
  min-width:0;
  padding-left:28px;
  border-left:1px solid var(--folio-rule);
}

.summon-side-section {
  padding:28px 0;
  border-bottom:1px dotted var(--folio-rule);
}

.summon-side-section:last-child {
  border-bottom:0;
}

.summon-side-title-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  margin-bottom:17px;
}

.summon-side-heading {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:var(--folio-ink);
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:15px;
}

.summon-side-mark {
  width:10px;
  height:10px;
  flex:0 0 auto;
}

.summon-side-mark.yellow { background:#f2d64d; }
.summon-side-mark.blue { background:#9ecde0; }
.summon-side-mark.rose { background:#efb1b1; }

.summon-side-more {
  flex:0 0 auto;
  color:var(--folio-ink-2);
  text-decoration:none;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:11px;
}

.summon-side-list {
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

.summon-side-list li {
  display:grid;
  grid-template-columns:25px minmax(0,1fr) auto;
  align-items:baseline;
  gap:8px;
  min-width:0;
}

.summon-side-list a {
  overflow:hidden;
  color:var(--folio-ink);
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:12px;
}

.summon-side-list small {
  color:var(--folio-ink-2);
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:10px;
  white-space:nowrap;
}

.summon-side-rank {
  color:var(--folio-ink-2);
  font-family:'Fraunces',serif;
  font-size:12px;
}

.summon-side-rank.rank-1 { color:#d69d00; }
.summon-side-rank.rank-2 { color:#4f9fc3; }
.summon-side-rank.rank-3 { color:#c64b3a; }

.summon-side-empty {
  display:block !important;
  color:var(--folio-ink-2);
  font-size:12px;
}

.summon-ledger-row {
  --summon-status:#c6ac50;
  display:grid;
  grid-template-columns:minmax(72px,max-content) minmax(220px,1fr) 108px 122px 126px;
  gap:18px;
  align-items:start;
  padding:36px 0 34px;
  border-bottom:1px dotted var(--folio-rule);
}

.summon-ledger-row.is-progress { --summon-status:#68add0; }
.summon-ledger-row.is-done { --summon-status:#d86158; }
.summon-ledger-row.is-closed { --summon-status:#979188; }

.summon-row-index {
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  min-height:92px;
  padding-left:17px;
  border-left:2px solid var(--summon-status);
}

.summon-row-index > span {
  color:var(--folio-ink);
  font-size:34px;
  line-height:1;
}

.summon-row-index small {
  display:inline-flex;
  margin-top:15px;
  padding:4px 7px;
  color:var(--folio-ink);
  background:color-mix(in srgb, var(--summon-status) 22%, white);
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:11px;
  white-space:nowrap;
}

.summon-row-copy {
  min-width:0;
  padding-right:6px;
}

.summon-row-title {
  display:block;
  overflow:hidden;
  color:var(--folio-ink);
  text-decoration:none;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:'Fraunces','Noto Serif SC',serif;
  font-size:20px;
  font-weight:500;
  line-height:1.35;
}

.summon-row-copy p {
  display:-webkit-box;
  overflow:hidden;
  margin:13px 0 0;
  color:var(--folio-ink-2);
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:13px;
  line-height:1.75;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

.summon-row-origin {
  margin-top:11px;
  color:#8f887f;
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:10px;
}

.summon-row-meta {
  display:flex;
  flex-direction:column;
  gap:20px;
  margin:0;
}

.summon-row-meta div {
  min-width:0;
}

.summon-row-meta dt {
  margin-bottom:7px;
  color:#8f887f;
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:10px;
  letter-spacing:.08em;
}

.summon-row-meta dd {
  margin:0;
  overflow:hidden;
  color:var(--folio-ink);
  text-overflow:ellipsis;
  white-space:nowrap;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:12px;
}

.summon-row-people {
  min-width:0;
}

.summon-row-requester {
  display:flex;
  align-items:center;
  gap:8px;
  min-width:0;
  color:var(--folio-ink);
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:12px;
}

.summon-row-requester > span {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.summon-row-counts {
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:15px;
  color:var(--folio-ink-2);
  font-family:'Inter','Noto Sans SC',sans-serif;
  font-size:10px;
}

.summon-row-counts b {
  color:var(--folio-ink);
  font-size:12px;
  font-weight:500;
}

.summon-row-action {
  min-width:0;
  color:var(--folio-ink-2);
}

.summon-row-activity {
  min-height:44px;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:12px;
  line-height:1.7;
}

.summon-row-action button {
  margin-top:15px;
  padding:0 0 3px;
  color:var(--folio-ink);
  background:transparent;
  border:0;
  border-bottom:1px solid var(--folio-ink);
  cursor:pointer;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:12px;
}

.summon-row-action button:disabled {
  cursor:default;
  opacity:.62;
}

/* 已想要：用站点黄，不是灰。
 *
 * 与未点击态**同一种形态**（文字 + 下划线），只把 1px 墨线换成 2px 黄线，
 * 这正是站点已有的「选中」语言——顶部「最热」tab 的选中态就是 2px 黄下划线。
 *
 * 为什么不用 :disabled 来做这个态：folio-theme.css 里有条
 * `.is-disabled, button:disabled, ...` 的全局规则，background/color/opacity
 * 六个属性全带 !important，会把任何文字型按钮压成灰方块（就是原来那个丑灰块）。
 * 所以状态改用 .is-wanted + aria-pressed 表达，按钮保持 enabled，
 * 重复点击在 JS 里挡。 */
.summon-row-action button.is-wanted {
  color:var(--folio-ink);
  border-bottom:2px solid var(--folio-yellow);
  padding-bottom:2px;      /* 线加粗 1px，这里减 1px，基线不跳 */
  cursor:default;
}

.summon-row-action > small {
  display:block;
  margin-top:8px;
  color:var(--folio-seal);
  font-size:10px;
}

.summon-empty {
  padding:64px 20px;
  color:var(--folio-ink-2);
  text-align:center;
  font-family:'Noto Serif SC','Fraunces',serif;
  font-size:15px;
}

.summon-empty a,
.summon-empty button {
  color:var(--folio-ink);
  background:transparent;
  border:0;
  border-bottom:1px solid var(--folio-ink);
  cursor:pointer;
  text-decoration:none;
  font:inherit;
}

@media (max-width:1180px) {
  .summon-hero {
    grid-template-columns:minmax(280px,.75fr) minmax(420px,1.25fr);
    gap:36px;
  }

  .summon-index-shapes {
    display:none;
  }

  .summon-toolbar {
    grid-template-columns:190px minmax(0,1fr) 150px;
    gap:18px;
  }

  .summon-tabs {
    gap:20px;
  }

  .summon-ledger-row {
    grid-template-columns:minmax(66px,max-content) minmax(210px,1fr) 100px 112px;
  }

  .summon-row-action {
    grid-column:2 / -1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
  }

  .summon-row-activity {
    min-height:0;
  }

  .summon-row-action button {
    margin-top:0;
  }
}

@media (max-width:960px) {
  .summon-hero {
    grid-template-columns:1fr;
  }

  .summon-index {
    min-height:auto;
  }

  .summon-toolbar {
    grid-template-columns:1fr auto;
    padding:16px 0;
  }

  .summon-search {
    max-width:260px;
  }

  .summon-tabs {
    grid-column:1 / -1;
    grid-row:2;
    justify-content:flex-start;
    overflow-x:auto;
  }

  .summon-toolbar .summon-tab {
    padding:14px 0;
  }

  .summon-toolbar .summon-tab.is-active::after {
    bottom:5px;
  }

  .summon-columns {
    grid-template-columns:1fr;
  }

  .summon-feed-column {
    padding-right:0;
  }

  .summon-side-rail {
    display:none;
  }
}

@media (max-width:700px) {
  .summon-hero {
    padding-top:34px;
    padding-bottom:32px;
  }

  .summon-hero-copy h1 {
    font-size:56px;
  }

  .summon-index {
    padding:23px;
  }

  .summon-index-stat {
    min-width:0;
    flex:1;
    margin-right:16px;
    padding-right:16px;
  }

  .summon-index-stat strong {
    font-size:26px;
  }

  .summon-toolbar {
    grid-template-columns:1fr;
  }

  .summon-create-link {
    grid-row:2;
  }

  .summon-tabs {
    grid-row:3;
  }

  .summon-ledger-row {
    grid-template-columns:minmax(58px,max-content) minmax(0,1fr);
    gap:15px;
    padding:30px 0;
  }

  .summon-row-index {
    grid-row:1 / 4;
    padding-left:10px;
  }

  .summon-row-index > span {
    font-size:29px;
  }

  .summon-row-meta {
    grid-column:2;
    flex-direction:row;
    gap:28px;
  }

  .summon-row-people {
    grid-column:2;
  }

  .summon-row-counts {
    flex-direction:row;
  }

  .summon-row-action {
    grid-column:2;
    flex-wrap:wrap;
  }
}
