/* 「今天要做什么」第七轮定稿（10-15 夜白晨选「方案 1＋方案 4」）：方案 1 的「被递到面前的提议单」＋方案 4 的「AI 光边、极简清单」。
   默认版本；地址带 brief=old 回旧版，那时本文件的规则基本不命中。令牌沿用 app.css，新加的在下面 :root。结构：
   一、令牌与外形（单子、窄条、桌面退暗）；二、光边；三、页首（抬头、窄条那一行、原地提示）；四、那句话与时间轴；五、三组与清单行；
   六、落款；七、过渡用的；八、中屏；九、手机；十、减少动态效果。 */

/* ============ 一、令牌与外形 ============ */
/* 光边的三个角度／强度量：注册成属性才能做动画（Safari 16.4 起支持；不支持时停在初始值，静止样子不变） */
@property --edge-a { syntax: "<angle>"; inherits: true; initial-value: 0deg; }
@property --edge-hi { syntax: "<number>"; inherits: true; initial-value: 0; }
@property --edge-k { syntax: "<number>"; inherits: true; initial-value: 1; }
:root {
  --sheet-w: 920px;
  --sheet-bg: #FFFFFF;
  --sheet-pad: 30px;
  /* 光边色：只取浮彩皮肤里的杏、粉、淡紫，压低饱和度 */
  --e1: #E9AE86; --e2: #E6A0B2; --e3: #B7A3DC;
  --r1: #E39F78; --r2: #DB8EA4; --r3: #A994D8;   /* 描边只有 1 像素，同一套颜色压深一档才看得清 */
  --e-ink: #96566A;   /* 草案标识的字色：粉里压一点墨 */
  --e-tint: linear-gradient(115deg, color-mix(in srgb, var(--e1) 16%, #FFFFFF) 0%, color-mix(in srgb, var(--e2) 14%, #FFFFFF) 50%, color-mix(in srgb, var(--e3) 16%, #FFFFFF) 100%);
  --e-wash: linear-gradient(115deg, color-mix(in srgb, var(--e1) 6%, #FFFFFF) 0%, color-mix(in srgb, var(--e2) 5%, #FFFFFF) 50%, color-mix(in srgb, var(--e3) 7%, #FFFFFF) 100%);
  /* 浮起：近处一层细影＋远处两层大而软的影，比普通卡深一截 */
  --shadow-lift: 0 1px 2px rgba(70, 48, 34, .05), 0 16px 32px -14px rgba(70, 48, 34, .16), 0 42px 84px -30px rgba(70, 48, 34, .30);
}
.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 像素、投影更深、外面一圈光边（第二节）；卡面画在 ::before 上，好让光晕垫在卡下面 */
/* 光边外侧：一圈 1 像素的白色高光（在暖色桌面上显出玻璃般的边）＋贴边一层淡粉的柔光，再往外是浮起的投影 */
:root { --shadow-edge: 0 0 0 1px rgba(255, 255, 255, .75), 0 0 16px -3px color-mix(in srgb, var(--e2) 45%, transparent), var(--shadow-lift); }
.brief.bn.is-draft { z-index: 2; background: transparent; box-shadow: var(--shadow-edge); transform: translateY(-4px); }
.brief.bn.is-draft.card:hover { box-shadow: var(--shadow-edge); }
/* 桌面退暗：单子以外的卡退暗退色，不挡点击；指到、聚焦时恢复 */
.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); }

/* ============ 二、光边 ============
   三层：①卡面＋1 像素渐变描边（::before，描边用 border-box 背景，不靠 mask）；②描边上一段流过的暖光（同一层，只在入场时亮）；
   ③卡下面一层很淡的同色光晕（::after，模糊 26 像素、只露出卡外那一圈）。静止时不动；入场时颜色沿边转一圈（edgeIntro）。 */
.brief.bn.is-draft::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border: 1px solid transparent; border-radius: inherit; pointer-events: none;
  background:
    linear-gradient(var(--sheet-bg), var(--sheet-bg)) padding-box,
    conic-gradient(from calc(var(--edge-a) + 120deg), transparent 0deg 280deg, rgba(206, 98, 130, var(--edge-hi)) 328deg, transparent 356deg) border-box,
    conic-gradient(from calc(var(--edge-a) + 200deg), var(--r1), var(--r2) 28%, var(--r3) 52%, var(--r2) 76%, var(--r1)) border-box;
}
.brief.bn.is-draft::after {
  content: ""; position: absolute; inset: 2px; z-index: -2; border-radius: inherit; pointer-events: none;
  background:
    conic-gradient(from calc(var(--edge-a) + 120deg), transparent 0deg 280deg, rgba(222, 120, 150, calc(.95 * var(--edge-hi))) 328deg, transparent 356deg),
    conic-gradient(from calc(var(--edge-a) + 200deg), var(--r1), var(--r2) 28%, var(--r3) 52%, var(--r2) 76%, var(--r1));
  filter: blur(20px); opacity: calc(.8 * var(--edge-k)); transform: translateY(5px);
}
/* 采用那一下：描边交给 SVG（.edge-run，看起来一模一样）往按钮收；光晕退成普通卡片阴影，单子落回桌面 */
.brief.bn.is-draft.is-landing { transform: none; box-shadow: var(--shadow-card); transition: transform 340ms cubic-bezier(.45, 0, .25, 1), box-shadow 340ms cubic-bezier(.45, 0, .25, 1); }
.brief.bn.is-draft.is-landing::before { background: linear-gradient(var(--sheet-bg), var(--sheet-bg)) padding-box, linear-gradient(transparent, transparent) border-box; }
.brief.bn.is-draft.is-landing::after { opacity: 0; transition: opacity 260ms ease-out; }
.edge-run { position: absolute; left: 0; top: 0; z-index: 4; overflow: visible; pointer-events: none; filter: drop-shadow(0 0 2.5px rgba(230, 160, 178, .7)); }
/* 暂不采用：旧单子的光边在原处淡掉、落下 4 像素 */
.edge-fade { z-index: 3; border: 1px solid transparent; border-radius: var(--radius-card); pointer-events: none;
  background: conic-gradient(from 200deg, var(--e1), var(--e2) 28%, var(--e3) 52%, var(--e2) 76%, var(--e1)) border-box;
  -webkit-mask: linear-gradient(#000 0 0) padding-box exclude, linear-gradient(#000 0 0); -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) padding-box exclude, linear-gradient(#000 0 0); }

/* ============ 三、页首 ============ */
.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(--done-dot); 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); }

/* 原地提示（通知第 3 层）：「周会纪要已生成 · 去生成待办」一小段；第一次出现时整条扫过一道很淡的暖光 */
.ms-note { display: inline-flex; flex: none; align-items: center; gap: 7px; height: 30px; padding: 0 12px 0 10px; border: 0; border-radius: var(--radius-pill); background: var(--e-tint); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--e2) 26%, transparent); color: var(--ink); font: 500 13px var(--font-sans); white-space: nowrap; cursor: pointer; transition: box-shadow 120ms var(--ease); }
.ms-note > i { width: 6px; height: 6px; border-radius: 50%; background: linear-gradient(135deg, var(--e1), var(--e3)); }
.ms-note > span { color: var(--e-ink); text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--e-ink) 35%, transparent); text-underline-offset: 3px; }
.ms-note > span::before { content: "·"; display: inline-block; margin-right: 7px; color: var(--ink-3); text-decoration: none; }
.ms-note:hover { box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--e2) 48%, transparent); }
.bn.is-lit { animation: noteRing 1.4s var(--ease) 1; }
.bn.is-lit::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; mix-blend-mode: multiply;
  background: linear-gradient(100deg, transparent 30%, color-mix(in srgb, var(--e1) 22%, transparent) 42%, color-mix(in srgb, var(--e2) 24%, transparent) 50%, color-mix(in srgb, var(--e3) 22%, transparent) 58%, transparent 70%) 0 0 / 260% 100% no-repeat;
  animation: noteSweep 1.2s cubic-bezier(.45, .05, .35, 1) 1 both; }
@keyframes noteSweep { from { background-position: 100% 0; opacity: 1; } 85% { opacity: 1; } to { background-position: 0% 0; opacity: 0; } }
@keyframes noteRing { 0% { box-shadow: var(--shadow-card), 0 0 0 0 color-mix(in srgb, var(--e2) 0%, transparent); } 30% { box-shadow: var(--shadow-card), 0 0 0 4px color-mix(in srgb, var(--e2) 22%, transparent); } 100% { box-shadow: var(--shadow-card), 0 0 0 10px color-mix(in srgb, var(--e2) 0%, transparent); } }

/* 草案的抬头：标题｜「草案」标识（光边同一套暖色）＋一句「早上的安排，等你确认」 */
.bn .sh-head { gap: 10px 14px; min-height: 0; padding: 20px var(--sheet-pad) 0; }
.sh-head .bh-t .tb-k { color: var(--ink-2); font-weight: 600; }
.sh-head .bh-t .ch-ic { background: var(--e-tint); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--e2) 24%, transparent); color: var(--e-ink); }
.sh-stamp { display: inline-flex; align-items: center; gap: 10px; min-width: 0; padding-left: 14px; border-left: 1px solid var(--line-strong); font-size: 14px; font-weight: 500; color: var(--ink-2); white-space: nowrap; }
.sh-stamp b { display: inline-grid; place-items: center; height: 22px; padding: 0 9px; border-radius: var(--radius-pill); background: var(--e-tint); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--e2) 30%, transparent); color: var(--e-ink); font-size: 12px; font-weight: 650; letter-spacing: .12em; }

/* ============ 四、那句话与时间轴 ============ */
.bn .bb { display: flex; flex-direction: column; gap: 0; padding: 0 var(--sheet-pad) 22px; }
.bn.is-draft .bb { padding-top: 16px; padding-bottom: 0; }
.bn:not(.is-draft) .bb { padding-top: 8px; }
.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: 16px 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: linear-gradient(90deg, color-mix(in srgb, var(--e1) 55%, #FFFFFF), color-mix(in srgb, var(--e2) 50%, #FFFFFF) 50%, color-mix(in srgb, var(--e3) 55%, #FFFFFF)); transition: background 220ms var(--ease), opacity 160ms var(--ease); }
.dt-sug.is-set { background: color-mix(in srgb, var(--ink) 42%, transparent); }
.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); transition: opacity 160ms var(--ease); }

/* ============ 五、三组与清单行 ============ */
.bn .sg-wrap { display: flex; flex-direction: column; align-items: stretch; gap: 14px; margin-top: 18px; }
.bn:not(.is-draft) .sg-wrap { margin-top: 2px; }
.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: 12px; font-weight: 650; letter-spacing: .06em; color: var(--ink-3); }
.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: 22px minmax(0, 1fr) auto auto; align-items: center; gap: 0 14px; min-height: 48px; padding: 7px 0; border: 0; border-radius: 0; background: none; box-shadow: inset 0 1px 0 var(--line); }
.sr.is-parked { border: 0; background: none; box-shadow: inset 0 1px 0 var(--line); }
.sr-chk { display: grid; place-items: center; width: 20px; height: 20px; padding: 0; border: 1.5px solid color-mix(in srgb, var(--ink) 28%, transparent); border-radius: 50%; background: var(--sheet-bg); cursor: pointer; transition: border-color 120ms var(--ease), background-color 160ms var(--ease), transform 120ms var(--ease); }
.sr-chk svg { width: 14px; height: 14px; fill: none; stroke: transparent; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: stroke 120ms var(--ease); }
.sr-chk:hover { border-color: var(--ink-2); }
.sr-chk:hover svg { stroke: var(--ink-3); }
.sr-chk[aria-pressed="true"] { border-color: var(--ink); background: var(--ink); }
.sr-chk[aria-pressed="true"] svg { stroke: var(--on-accent); }
.sr-chk:active { transform: scale(.9); }
.sr-main { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.sr .wc-title { flex: none; max-width: 58%; overflow: hidden; font-size: 15px; font-weight: 600; line-height: 1.45; white-space: nowrap; text-overflow: ellipsis; color: var(--ink); 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 .wc-why { display: block; flex: 1 1 auto; min-width: 0; overflow: hidden; font-size: 13px; line-height: 1.45; color: var(--ink-3); white-space: nowrap; text-overflow: ellipsis; }
.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-acts { display: inline-flex; align-items: center; gap: 14px; margin: 0; 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); }
/* 右边时间：建议＝光边色淡胶囊（不比会议抢眼）；已排＝✓ 已排；没排上＝浅灰字，原因在悬停 */
.sr .wc-when { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-width: 112px; height: 28px; padding: 0 12px; border-radius: var(--radius-pill); color: var(--ink-2); font: 500 12px var(--font-sans); white-space: nowrap; }
.sr .wc-when b { font: 600 13px var(--font-num); font-variant-numeric: tabular-nums; color: var(--ink); }
.sr .wc-when .ico { width: 13px; height: 13px; stroke-width: 2.2; }
.sr .wc-when.sug { background: var(--e-tint); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--e2) 24%, transparent); transition: box-shadow 160ms var(--ease), opacity 160ms var(--ease); }
.sr .wc-when.sug b { color: var(--ink-2); }
.sr .wc-when.st-feishu { background: var(--surface-2); color: var(--ink-2); transition: background-color 220ms var(--ease); }
.sr .wc-when.st-feishu .ico { color: var(--done-ink); }
.sr .wc-when.st-feishu b { color: var(--ink); }
.sr .wc-when.st-pending { background: var(--wait-bg); color: var(--wait-ink); }
.sr .wc-when.none-t { padding: 0 2px; color: var(--ink-3); }
.sr .wc-when.none-t[title] { text-decoration: underline dotted var(--ink-3); text-underline-offset: 3px; cursor: help; }
.sr .sr-nowhen { padding: 0; }
.sr .wc-when.sr-prepw { padding: 0; }
/* 延后、挪到今天每行常显（10-16 白晨：指到才出现，别人不知道还有延后），平时是灰色小字；指到这一行时变深色，指到它本身再加下划线 */
.sr:where(:hover, :focus-within) .lnk-park, .sr:where(:hover, :focus-within) .lnk-pull { color: var(--ink-2); }
/* 会后新增：行首一道琥珀色、淡底，看过一次就没了 */
.sr.is-new { background: linear-gradient(90deg, var(--wait-bg), transparent 70%); box-shadow: inset 2px 0 0 var(--wait-dot), inset 0 1px 0 var(--line); padding-left: 10px; margin-left: -10px; grid-template-columns: 22px minmax(0, 1fr) auto auto; }
.sr.is-parked .wc-title { color: var(--ink-2); }
/* 做完的：圈成实心、标题划线、整行淡下去 */
.sr.is-done .sr-main { opacity: .55; }
.sr.is-done .wc-title { font-weight: 500; 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(1px - var(--sheet-pad)) 1px; padding: 14px calc(var(--sheet-pad) - 1px) 15px; border-radius: 0 0 calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px); background: var(--e-wash); box-shadow: inset 0 1px 0 var(--line); }
.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; }
/* 指到「采用」时卡上的建议时间一起描深，指到「暂不采用」时一起变淡（因果关系） */
.bn.is-draft:has(.ab-go:hover, .ab-go:focus-visible) .sr .wc-when.sug { box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--e2) 62%, transparent); }
.bn.is-draft:has(.ab-go:hover, .ab-go:focus-visible) .sr .wc-when.sug b { color: var(--ink); }
.bn.is-draft:has([data-act="skip"]:hover, [data-act="skip"]:focus-visible) :is(.sr .wc-when.sug, .dt-sug, .dt-ls) { opacity: .35; }
/* 暂不采用之后：一行说明＋恢复建议 */
.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 .edge-run { display: none; }
.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, .ms-note):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; }
  .sr .wc-title { max-width: 62%; }
}

/* ============ 九、手机：单子占满宽，时间轴不画（会议卡就在下面），清单两行，落款吸底 ============ */
@media (max-width: 760px) {
  :root { --sheet-pad: 16px; }
  .brief.bn-sheet { width: 100%; }
  .brief.bn.is-draft::after { inset: 8px; filter: blur(18px); opacity: calc(.3 * var(--edge-k)); }
  .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; display: flex; flex-wrap: wrap; gap: 6px; 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; }
  .ms-note { height: 28px; font-size: 12px; }
  .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: 14px var(--sheet-pad) 0; }
  .sh-head .bh-t .tb-k { font-size: 13px; }
  .sh-stamp { min-width: 0; gap: 8px; padding-left: 10px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; }
  .sh-stamp > span { overflow: hidden; text-overflow: ellipsis; }
  .sh-stamp b { height: 20px; padding: 0 7px; font-size: 11px; }
  .bn.is-draft .bb { padding-top: 12px; }
  .bn .sh-say { font-size: 19px; line-height: 1.5; }
  .sh-tail { font-size: 13px; }
  .dt { display: none; }
  .bn .sg-wrap { gap: 12px; margin-top: 14px; }
  /* 行：勾选圈｜标题与依据（两行）；下一行时间与延后 */
  .sr { grid-template-columns: 22px minmax(0, 1fr) auto; grid-template-areas: "chk main main" ". when acts"; align-items: start; gap: 6px 12px; padding: 10px 0; }
  .sr.is-new { grid-template-columns: 22px minmax(0, 1fr) auto; padding-left: 10px; margin-left: -10px; }
  .sr-chk { grid-area: chk; margin-top: 1px; }
  .sr-main { grid-area: main; flex-direction: column; align-items: stretch; gap: 1px; }
  .sr .wc-title { max-width: none; font-size: 15px; white-space: normal; }
  .sr .wc-why { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; font-size: 12px; white-space: normal; }
  .sr .wc-when { grid-area: when; justify-self: start; min-width: 0; height: 26px; padding: 0 10px; }
  .sr .wc-when.none-t { padding: 0; }
  .sr .sr-nowhen { height: 0; }
  .sr:has(.sr-nowhen) { row-gap: 0; }
  .sr:has(.sr-nowhen):has(.wc-acts:empty) { grid-template-areas: "chk main main"; }
  .sr .wc-acts { grid-area: acts; align-self: center; justify-self: end; }
  .sr .wc-acts:empty { display: none; }
  .sr.is-done { grid-template-areas: "chk main main"; align-items: center; }
  .sr.is-done .wc-acts, .sr.is-done .wc-when { display: none; }
  .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: 16px -8px 8px; padding: 10px 10px 10px 14px; border: 0; border-radius: var(--radius-ctl); background: rgba(255, 255, 255, .96); box-shadow: 0 0 0 1px color-mix(in srgb, var(--e2) 22%, transparent), var(--shadow-pop); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
  .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 > *, .dt-sug, .sr .wc-when, .brief.bn.is-draft.is-landing { transition: none; }
  .bn.is-lit, .bn.is-lit::after { animation: none; }
}
