/* 「今天要做什么」第七轮方案 1「浮起的提议单」（默认；地址带 brief=old 回旧版，那时本文件的规则基本不命中）。
   令牌沿用 app.css，新加的几个在下面 :root。结构：
   一、令牌与外形（单子、窄条、桌面退暗）；二、页首（抬头、窄条那一行）；三、那句话与时间轴；四、三组与行；五、落款；
   六、过渡用的；七、中屏；八、手机；九、减少动态效果。 */

/* ============ 一、令牌与外形 ============ */
:root {
  --sheet-w: 920px;
  --sheet-bg: #FFFFFF;
  --sheet-pad: 30px;
  /* 浮起：近处一层细影＋远处两层大而软的影，比普通卡深一截 */
  --shadow-lift: 0 1px 2px rgba(70, 48, 34, .06), 0 16px 32px -12px rgba(70, 48, 34, .20), 0 42px 84px -28px rgba(70, 48, 34, .36);
  --sign-bg: #FBF8F4;
}
.brief.bn { display: block; }
.brief.bn.card:hover { box-shadow: var(--shadow-card); }   /* 大简报不是按钮，悬停不浮起 */
/* 展开时是一张居中的单子；窄条整宽 */
.brief.bn-sheet { width: min(100%, var(--sheet-w)); margin-left: auto; margin-right: auto; }
/* 草案＝浮起来：纯白卡面、深投影、上移 4 像素，压在桌面上面 */
.brief.bn.is-draft { z-index: 2; background: var(--sheet-bg); box-shadow: var(--shadow-lift); transform: translateY(-4px); }
.brief.bn.is-draft.card:hover { box-shadow: var(--shadow-lift); }
/* 桌面退暗：单子以外的卡退暗退色，不挡点击；指到、聚焦时恢复 */
.desk.has-proposal > .grid > *, .desk.has-proposal > .minis > * { opacity: .5; filter: saturate(.35); transition: opacity 240ms var(--ease), filter 240ms var(--ease), box-shadow var(--dur) var(--ease); }
.desk.has-proposal > .grid > :is(:hover, :focus-within), .desk.has-proposal > .minis > :is(:hover, :focus-within) { opacity: 1; filter: saturate(1); }
.desk.has-proposal > .hello { opacity: .7; transition: opacity 240ms var(--ease); }

/* ============ 二、页首 ============ */
.bn .bh { position: relative; display: flex; align-items: center; gap: 8px 14px; min-height: 60px; padding: 12px 14px 12px 18px; }
.bn .bh-t { display: flex; flex: none; align-items: center; gap: 10px; }
.bn .bh-t .tb-k { font-size: 14px; font-weight: var(--fw-strong); }
.bn .ms-st { flex: 0 1 auto; min-width: 0; gap: 8px; }
.bn .ms-st::before { content: ""; flex: none; width: 1px; height: 16px; margin-right: 4px; background: var(--line-strong); }
.bn .ms-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; color: var(--ink); }
.bn.k-wait .ms-text { color: var(--wait-ink); }
.bn.k-done .ms-text { color: var(--done-ink); }
.bn.k-wait .ms-ic { background: var(--wait-bg); }
.bn.k-done .ms-ic { background: var(--done-bg); }
.bn.k-done .ms-chk { stroke: var(--done-ink); }
.bn.k-wait { --ring-c: color-mix(in srgb, var(--wait-dot) 28%, transparent); }
.bn.k-done { --ring-c: color-mix(in srgb, var(--done-dot) 28%, transparent); }
/* 做完了几件：一圈进度 */
.ms-ring { width: 18px; height: 18px; transform: rotate(-90deg); fill: none; stroke-width: 3; }
.ms-ring circle { stroke: var(--line-strong); }
.ms-ring circle.on { stroke: var(--ink); stroke-linecap: round; }
.bn.k-prog .ms-ic { background: transparent; }
.bh-seg { padding: 0; border: 0; background: none; color: inherit; font: inherit; white-space: nowrap; cursor: pointer; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; transition: text-decoration-color var(--dur-fast) var(--ease); }
.bh-seg:hover, .bh-seg:focus-visible { text-decoration-color: currentColor; }
.bh-dot { margin: 0 6px; color: var(--ink-3); font-style: normal; font-weight: 400; }
.bn .ms-now { font-size: 14px; }
.bn .ms-now .ms-k, .bn .ms-cd { font-size: 12px; }
.bn .ms-go { font-size: 14px; }
.bn .tb-fold, .bn .ms-open { flex: none; margin-left: 0; }
/* 窄条：整宽一行，白卡 */
.bn.bn-mini .bh { min-height: 58px; }
.bn .ms-facts { font-size: 12px; }
.bn .ms-more { display: none; }
.ms-undo { margin-left: 6px; padding: 0; border: 0; background: none; color: var(--ink); font: 600 12px var(--font-sans); text-decoration: underline; text-decoration-color: var(--accent-line); text-underline-offset: 3px; cursor: pointer; }
.ms-undo:hover { text-decoration-color: var(--ink); }
/* 窄条上的小时间轴 */
.ms-day { display: inline-flex; flex: none; align-items: center; width: 168px; height: 24px; margin-right: 8px; }
.md-in { position: relative; display: block; width: 100%; height: 6px; }
.md-in::before { content: ""; position: absolute; left: 0; right: 0; top: 2px; height: 2px; border-radius: 1px; background: var(--line); }
.md-past { position: absolute; left: 0; top: 2px; height: 2px; border-radius: 1px; background: var(--line-strong); }
.md-ev, .md-pl { position: absolute; top: 0; height: 6px; border-radius: 2px; }
.md-ev { background: var(--ink); }
.md-ev.past { background: color-mix(in srgb, var(--ink) 28%, transparent); }
.md-ev.live { background: var(--today-dot); }
.md-pl { top: 1px; height: 4px; background: color-mix(in srgb, var(--ink) 22%, transparent); }
.md-pl.done { background: var(--done-dot); }
.md-now { position: absolute; top: -4px; width: 2px; height: 14px; margin-left: -1px; border-radius: 1px; background: var(--today-dot); }
@media (max-width: 1240px) { .ms-day { display: none; } }
/* 平放的单子（白天展开、暂不采用后）：页首一行下面一道细线 */
.bn-sheet:not(.is-draft) > .bh { border-bottom: 1px solid var(--line); }

/* 草案的抬头：标题｜「草案」标识（墨色小印＋一句）｜谁按什么起草的；下面一道双线 */
.bn .sh-head { gap: 10px 16px; min-height: 0; padding: 16px var(--sheet-pad) 14px; }
.bn .sh-head::after { content: ""; position: absolute; left: var(--sheet-pad); right: var(--sheet-pad); bottom: 0; height: 4px; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line-strong); opacity: .9; }
.sh-head .bh-t .tb-k { color: var(--ink-2); font-weight: 600; }
.sh-head .bh-t .ch-ic { background: var(--ink); color: var(--on-accent); }
.sh-stamp { display: inline-flex; align-items: center; gap: 8px; min-width: 0; padding-left: 16px; border-left: 1px solid var(--line-strong); font-size: 15px; font-weight: 650; color: var(--ink); white-space: nowrap; }
.sh-stamp b { display: inline-grid; place-items: center; height: 22px; padding: 0 7px 0 8px; border-radius: 6px; background: var(--ink); color: var(--on-accent); font-size: 12px; font-weight: 700; letter-spacing: .14em; }
.sh-by { margin-left: auto; font-size: 12px; color: var(--ink-3); white-space: nowrap; }

/* ============ 三、那句话与时间轴 ============ */
.bn .bb { display: flex; flex-direction: column; gap: 0; padding: 0 var(--sheet-pad) 24px; }
.bn.is-draft .bb { padding-top: 18px; padding-bottom: 0; }
.bn:not(.is-draft) .bb { padding-top: 14px; }
.bn .sh-say { max-width: none; margin: 0; font-size: 22px; font-weight: 600; line-height: 1.45; letter-spacing: -.01em; text-wrap: pretty; color: var(--ink); }
.sh-at { white-space: nowrap; }
.sh-at b { margin-right: 1px; font-weight: 650; }
.sh-tail { display: block; margin-top: 4px; font-size: 14px; font-weight: 400; line-height: 1.6; letter-spacing: 0; color: var(--ink-2); }
/* 时间轴：两端 9:00／18:00，会议名在上、建议在下 */
.dt { display: flex; align-items: center; gap: 12px; margin: 14px 0 0; }
.dt-end { flex: none; width: 34px; font-size: 11px; color: var(--ink-3); text-align: center; }
.dt-in { position: relative; flex: 1; min-width: 0; }
.dt-top, .dt-bot { position: relative; height: 20px; }
.dt-bar { position: relative; height: 10px; margin: 3px 0; }
.dt-bar::before { content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 2px; border-radius: 1px; background: var(--line); }
.dt-past { position: absolute; left: 0; top: 4px; height: 2px; border-radius: 1px; background: var(--line-strong); }
.dt-lunch { position: absolute; top: 1px; height: 8px; border-radius: 2px; background: repeating-linear-gradient(135deg, var(--line) 0 2px, transparent 2px 5px); }
.dt-ev { position: absolute; top: 0; height: 10px; border-radius: 3px; background: var(--ink); }
.dt-ev.past { background: color-mix(in srgb, var(--ink) 30%, transparent); }
.dt-ev.live { background: var(--today-dot); }
.dt-sug { position: absolute; top: 1px; height: 8px; border-radius: 3px; background: color-mix(in srgb, var(--ink) 16%, transparent); transition: background-color 200ms var(--ease); }
.dt-sug.is-set { background: var(--done-dot); }
.dt-now { position: absolute; top: -4px; width: 2px; height: 18px; margin-left: -1px; border-radius: 1px; background: var(--today-dot); }
.dt-l { position: absolute; top: 0; display: inline-flex; align-items: baseline; gap: 5px; height: 20px; padding: 0; overflow: hidden; border: 0; background: none; color: var(--ink); font: 500 12px/20px var(--font-sans); white-space: nowrap; text-overflow: ellipsis; text-align: left; }
.dt-l b { flex: none; font-weight: 650; }
button.dt-l { cursor: pointer; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color 120ms var(--ease); }
button.dt-l:hover { text-decoration-color: var(--accent-line); }
.dt-l.past { color: var(--ink-3); }
.dt-l.live b { color: var(--today-ink); }
.dt-ls { color: var(--ink-3); }

/* ============ 四、三组与行 ============ */
.bn .sg-wrap { display: flex; flex-direction: column; align-items: stretch; gap: 16px; margin-top: 16px; }
.bn:not(.is-draft) .sg-wrap { margin-top: 4px; }
.bn .sg-h { display: flex; flex-direction: row; align-items: baseline; gap: 12px; min-width: 0; margin: 0 0 2px; }
.bn .sg-h b { display: inline-flex; flex: none; align-items: baseline; font-size: 13px; font-weight: 650; letter-spacing: .04em; color: var(--ink-2); }
.bn .sg-h .n { margin-left: 6px; font: 600 12px var(--font-num); font-style: normal; color: var(--ink-3); letter-spacing: 0; }
.bn .sg-note { min-width: 0; overflow: hidden; font-size: 13px; color: var(--ink-3); white-space: nowrap; text-overflow: ellipsis; }
.sg-link { display: inline-flex; align-items: center; gap: 1px; padding: 0; border: 0; background: none; color: var(--ink-2); font: 500 13px var(--font-sans); text-decoration: underline; text-decoration-color: var(--accent-line); text-underline-offset: 3px; cursor: pointer; }
.sg-link .ico { width: 13px; height: 13px; }
.sg-link:hover { color: var(--ink); }
.sg-empty { margin: 6px 0 0; font-size: 14px; color: var(--ink-3); }
.bn .bgrp-later:not(.has-shown) .sg-h { margin-bottom: 0; }

/* 行：时间栏｜标题与依据｜延后 */
.bn .sr-list { display: flex; flex-direction: column; gap: 0; }
.sr { display: grid; grid-template-columns: 116px minmax(0, 1fr) auto; align-items: start; gap: 0 18px; padding: 11px 0 10px; border: 0; border-radius: 0; background: none; box-shadow: none; border-top: 1px solid var(--line); }
.sr:first-child { border-top-color: var(--line-strong); }
.sr-main { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.sr .wc-title { font-size: 15px; font-weight: 600; line-height: 1.45; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px; transition: text-decoration-color 120ms var(--ease); }
.sr .wc-title:hover { text-decoration-color: var(--accent-line); }
.sr-must .wc-title { font-size: 16px; font-weight: 650; }
.sr .wc-why { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 1; -webkit-box-orient: vertical; font-size: 13px; line-height: 1.55; color: var(--ink-3); }
.sr:is(:hover, :focus-within) .wc-why { -webkit-line-clamp: unset; }
.sr .wc-tag::before { content: none; }
.sr .wc-tag { color: var(--ink-2); }
.sr .wc-tag.late { color: var(--late-ink); font-weight: 600; }
.wn-sep { margin: 0 6px; font-style: normal; color: var(--ink-3); }
.wr-new { margin-right: 6px; color: var(--wait-ink); font-weight: 600; }
.sr .wc-note { font-size: 13px; color: var(--ink-2); }
.sr .sr-time { padding: 1px 0 0; border-radius: 0; background: none; box-shadow: none; }
.sr.is-parked { border: 0; border-top: 1px solid var(--line); background: none; box-shadow: none; }
/* 时间栏：上一行时间（数字字体），下一行小字说明（建议时间／✓ 已排／截止） */
.sr-time { display: flex; flex-direction: column; align-items: flex-start; gap: 1px; height: auto; padding-top: 1px; font-weight: 400; white-space: nowrap; transition: color 200ms var(--ease); }
.sr-t { display: inline-flex; align-items: baseline; }
.sr-t b { font: 650 16px/1.4 var(--font-num); font-variant-numeric: tabular-nums; color: var(--ink); }
.sr-t i { font: 500 13px var(--font-num); font-style: normal; color: var(--ink-3); }
.sr-time em { display: inline-flex; align-items: center; gap: 3px; font-size: 12px; font-style: normal; font-weight: 500; color: var(--ink-3); transition: color 200ms var(--ease); }
.sr-time em .ico { width: 12px; height: 12px; }
.sr-time.sug .sr-t b { color: var(--ink-2); }
.sr-time.st-feishu em, .sr-time.done em { color: var(--done-ink); }
.sr-time.st-pending em { color: var(--wait-ink); }
.sr-time.tc-none em { padding-top: 3px; font-size: 13px; }
.sr-time.tc-due .sr-t b, .sr-time.tc-carry .sr-t b { font-size: 14px; color: var(--ink-2); }
.sr-time.tc-parked em { padding-top: 2px; font-size: 13px; color: var(--ink-2); }
.sr .wc-acts { display: inline-flex; align-items: center; gap: 14px; margin: 0; padding-top: 3px; white-space: nowrap; }
.sr .lnk { font-size: 13px; }
.sr .sr-prep { color: var(--ink); font-weight: 600; }
.sr .lnk-park, .sr .lnk-pull { display: inline-flex; align-items: center; gap: 3px; color: var(--ink-3); text-decoration: underline; text-decoration-color: transparent; transition: color 120ms var(--ease), text-decoration-color 120ms var(--ease); }
.sr .lnk-park .ico { width: 12px; height: 12px; }
.sr .lnk-park:is(:hover, :focus-visible, [aria-expanded="true"]), .sr .lnk-pull:is(:hover, :focus-visible) { color: var(--ink); text-decoration-color: var(--accent-line); }
/* 桌面上延后、挪到今天指到才出现（会后新增与已延后的照常显示）；触屏常显 */
@media (hover: hover) and (min-width: 761px) {
  .sr:not(.is-new):not(.is-parked) .wc-acts { opacity: 0; transition: opacity 120ms var(--ease); }
  .sr:is(:hover, :focus-within) .wc-acts, .sr .wc-acts:has([aria-expanded="true"]) { opacity: 1; }
  .sr-carry .wc-acts { opacity: 1 !important; }
}
.sr.is-new { box-shadow: inset 3px 0 0 var(--wait-dot); padding-left: 12px; margin-left: -12px; }
.sr.is-parked .wc-title { color: var(--ink-2); }
/* 做完的收成一行 */
.sr.is-done { align-items: center; padding: 9px 0; opacity: .75; }
.sr.is-done .wc-title { font-size: 14px; font-weight: 500; color: var(--ink-3); text-decoration-line: line-through; text-decoration-color: var(--ink-3); }
.sr.bn-ping { animation: bnPing 1.2s var(--ease) 1; }
@keyframes bnPing { 0% { background-color: transparent; } 25% { background-color: var(--wait-bg); } 100% { background-color: transparent; } }

/* ============ 五、落款：单子的最后一栏，唯一的实心主按钮 ============ */
.bn .sh-sign { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; margin: 18px calc(-1 * var(--sheet-pad)) 0; padding: 14px var(--sheet-pad) 16px; border-radius: 0 0 var(--radius-card) var(--radius-card); background: var(--sign-bg); border-top: 1px dashed var(--line-strong); }
.sh-sign .ab-msg { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 12px; color: var(--ink-3); }
.sh-sign .ab-msg b { font-size: 15px; font-weight: 650; color: var(--ink); }
.sh-sign .ab-btns { gap: 10px; }
.sh-sign .btn { height: 42px; padding: 0 18px; font-size: 15px; }
.sh-sign .btn.ghost { color: var(--ink-2); }
.sh-sign .ab-go { gap: 8px; padding: 0 22px 0 18px; box-shadow: 0 1px 2px rgba(31, 30, 27, .2), 0 8px 18px -8px rgba(31, 30, 27, .5); }
.sh-sign .ab-go .ico { width: 17px; height: 17px; stroke-width: 2.2; }
.sh-sign .ab-go.is-signed { background: var(--done-ink); }
/* 指到「采用」时卡上的建议时间一起加深，指到「暂不采用」时一起变淡（因果关系） */
.bn.is-draft:has(.ab-go:hover, .ab-go:focus-visible) :is(.sr-time.sug .sr-t b, .sr-time.sug em) { color: var(--ink); }
.bn.is-draft:has(.ab-go:hover, .ab-go:focus-visible) .dt-sug { background: color-mix(in srgb, var(--ink) 34%, transparent); }
.bn.is-draft:has([data-act="skip"]:hover, [data-act="skip"]:focus-visible) :is(.sr-time.sug, .dt-sug, .dt-ls) { opacity: .35; }
.sr-time.sug, .dt-ls { transition: opacity 160ms var(--ease), color 160ms var(--ease); }
/* 暂不采用之后：一行说明＋恢复建议 */
.bn .sh-skip { margin-top: 18px; padding: 10px 12px 10px 16px; background: var(--surface-2); }
.sh-skip .ab-msg { font-size: 13px; color: var(--ink-2); }

/* ============ 六、过渡用的（brief-motion.js 与 sheetMorph） ============ */
.sheet-ghost { will-change: left, top, width, height, transform; }
.sheet-ghost .sr-time.is-set { transition: color 200ms var(--ease); }
.bm-ghost { will-change: transform, opacity; }
.bm-num { position: relative; display: inline-block; white-space: pre; }
.bm-num-old { position: absolute; right: 0; top: 0; white-space: pre; pointer-events: none; }
.bm-d { display: inline-block; }
.bm-strike { position: absolute; left: 0; top: 52%; height: 1.5px; background: var(--ink-3); transform-origin: left center; pointer-events: none; }
html.brief-new .ms-now, html.brief-new .ms-chip { transition: background-color 120ms var(--ease), transform 120ms var(--ease); }
html.brief-new :is(button.ms-now, .bh-seg, button.dt-l):active { transform: scale(.97); }
html.brief-new .bn :is(.lnk, .ms-go, .wc-title, .sg-link):active { opacity: .6; }

/* ============ 七、中屏 ============ */
@media (max-width: 1100px) {
  :root { --sheet-pad: 24px; }
  .sh-by { display: none; }
}

/* ============ 八、手机：单子占满宽，时间轴不画（会议卡就在下面），时间栏变窄，落款吸底 ============ */
@media (max-width: 760px) {
  :root { --sheet-pad: 16px; }
  .brief.bn-sheet { width: 100%; }
  .bn .bh { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "t fold" "st st" "r r"; gap: 6px 8px; min-height: 0; padding: 10px 10px 10px 14px; }
  .bn .bh:not(:has(.tb-fold)) { grid-template-areas: "t t" "st st" "r r"; }
  .bn .bh-t { grid-area: t; gap: 8px; }
  .bn .bh-t .ch-ic { width: 28px; height: 28px; border-radius: 9px; }
  .bn .bh-t .ch-ic .ico { width: 16px; height: 16px; }
  .bn .ms-st { grid-area: st; }
  .bn .ms-st::before { display: none; }
  .bn .ms-text { font-size: 14px; white-space: normal; }
  .bn .ms-r { grid-area: r; min-width: 0; margin-left: 0; overflow: hidden; }
  .bn .ms-r:empty { display: none; }
  .bn .tb-fold, .bn .ms-open { grid-area: fold; height: 28px; min-height: 0; padding: 0 10px; }
  .bn .ms-now { height: 28px; padding: 0 10px; font-size: 13px; }
  .bn.bn-mini .bh { grid-template-areas: "st fold" "r r"; padding: 8px 8px 8px 12px; }
  .bn.bn-mini .bh-t { display: none; }
  .bn.bn-mini .ms-text { white-space: nowrap; }
  /* 刚采用的 15 分钟里，窄条多一行「N 段已写入飞书 · 撤销」（提示条一消失，撤销还在这里） */
  .bn.bn-mini .bh:has(.ms-undo) { grid-template-areas: "st fold" "r r" "f f"; }
  .bn.bn-mini .ms-facts:has(.ms-undo) { display: flex !important; grid-area: f; padding-left: 30px; }
  .bn.bn-mini .ms-facts:has(.ms-undo) span:first-child::before { content: none; }
  .bn .ms-more { display: inline-flex; align-items: center; gap: 2px; min-height: 28px; padding: 0 0 0 30px; border: 0; background: none; color: var(--ink-2); font: 500 12px var(--font-sans); text-decoration: underline dotted var(--ink-3); text-underline-offset: 3px; cursor: pointer; }
  .bn .ms-more .ico { width: 13px; height: 13px; }
  .bn .ms-tip.show { display: block !important; top: calc(100% + 6px); left: 12px; right: 12px; white-space: pre-wrap; }
  /* 抬头两行：标题｜草案标识 */
  .bn .sh-head { display: flex; flex-wrap: nowrap; gap: 10px; padding: 12px var(--sheet-pad) 12px; }
  .sh-head .bh-t .tb-k { font-size: 13px; }
  .sh-stamp { min-width: 0; padding-left: 10px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
  .sh-stamp > span { overflow: hidden; text-overflow: ellipsis; }
  .sh-stamp b { height: 20px; font-size: 11px; }
  .sh-by { display: none; }
  .bn.is-draft .bb { padding-top: 16px; }
  .bn .sh-say { font-size: 19px; line-height: 1.5; }
  .sh-tail { font-size: 13px; }
  .dt { display: none; }
  .bn .sg-wrap { gap: 16px; margin-top: 16px; }
  /* 行：第一行时间与延后，第二行标题，第三行依据 */
  .sr { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "time acts" "main main"; gap: 2px 12px; padding: 10px 0 11px; }
  .sr-time { grid-area: time; flex-direction: row; align-items: baseline; gap: 8px; padding-top: 0; }
  .sr-t { flex-direction: row; }
  .sr-t b { font-size: 14px; }
  .sr-t i { font-size: 12px; }
  .sr-time.tc-none em, .sr-time.tc-parked em { padding-top: 0; font-size: 12px; }
  .sr-main { grid-area: main; }
  .sr .wc-acts { grid-area: acts; padding-top: 0; }
  .sr .wc-why { -webkit-line-clamp: 2; font-size: 12px; }
  .sr-must .wc-title { font-size: 15px; }
  .sr.is-done .wc-acts { display: none; }
  .sr.is-new { padding-left: 10px; margin-left: -10px; }
  .bn .sg-note { white-space: normal; }
  .bn .bgrp-later .bcards { display: flex; }
  /* 落款吸在屏幕底，组尾就停住 */
  .bn .sh-sign.ab-sticky { position: sticky; bottom: 8px; z-index: 5; flex-wrap: wrap; gap: 8px; margin: 18px -8px 8px; padding: 10px 10px 10px 14px; border: 0; border-radius: var(--radius-ctl); background: var(--sheet-bg); box-shadow: var(--shadow-pop); }
  .sh-sign .ab-msg { flex-basis: 100%; }
  .sh-sign .ab-msg b { display: none; }
  .sh-sign .ab-btns { flex-wrap: nowrap; width: 100%; }
  .sh-sign .btn { flex: 1; height: 40px; padding: 0 10px; font-size: 14px; }
  .sh-sign .btn.ghost { flex: 0 0 auto; }
  .bn .bb { padding-bottom: 16px; }
  .bn.is-draft .bb { padding-bottom: 0; }
  .desk.has-proposal > .hello { opacity: 1; }
}

/* ============ 九、减少动态效果 ============ */
@media (prefers-reduced-motion: reduce) {
  .desk.has-proposal > .grid > *, .desk.has-proposal > .minis > *, .sr-time, .dt-sug { transition: none; }
}
