/* css/v2.css：v2 的页面补丁——草稿纸分区（tt-d2-*）、画布的约定条与「实际发生」页（tt-c2-*）、节点尺寸、演示设置浮层。
   底子是 10-12 的 draft.css、canvas.css，这里只补本版新出现的东西，不改它们。 */
/* --tt-flash（刚落下的东西亮一下的底色）定义在 coach.css，这里原来重复了一份（10-29 评审 S7 删） */

/* ── 草稿纸：做什么／背景／目标／条件／打算／待补 ── */
.tt-d2-paper.card { max-width: 700px; padding: 28px 36px 30px; }
.tt-d2-title { margin-top: 14px; font-size: var(--b-fs-28); line-height: var(--b-lh-title); font-weight: 700; letter-spacing: var(--b-ls-title); color: var(--b-text-1); }
.tt-d2 .tt-dr-desc { margin-top: 8px; font-size: var(--b-fs-13); }
.tt-d2-sections { display: grid; gap: 16px; margin-top: 22px; }
.tt-d2-sec { padding-top: 12px; border-top: 1px solid var(--b-line); }
.tt-d2-h { margin-bottom: 8px; font-size: var(--b-fs-12); font-weight: 600; letter-spacing: var(--b-ls-cap); color: var(--b-text-3); }
.tt-d2-slots { display: grid; gap: 4px; margin: 0; }
.tt-d2-slot { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 12px; align-items: baseline; min-height: 26px; padding: 2px 6px; margin: 0 -6px; border-radius: 8px; }
.tt-d2-slot.is-bare { grid-template-columns: minmax(0, 1fr); }
.tt-d2-l { font-size: var(--b-fs-13); line-height: 1.6; color: var(--b-text-3); }
.tt-d2-v { display: grid; align-items: center; min-height: 22px; margin: 0; font-size: var(--b-fs-15); line-height: 1.6; color: var(--b-text-1); }
.tt-d2-v > * { grid-area: 1 / 1; min-width: 0; }
.tt-d2-text { overflow-wrap: anywhere; text-wrap: pretty; }
.tt-d2-blank { align-self: center; width: 42%; height: 0; border-top: 1.5px dashed var(--b-slot-line); transition: opacity 200ms var(--m-ease-out); }
.tt-d2-slot[data-state="set"] .tt-d2-blank, .tt-d2-slot[data-state="incoming"] .tt-d2-blank { opacity: 0; }
.tt-d2-slot[data-state="asking"] .tt-d2-blank { width: auto; border: 0; font-size: var(--b-fs-13); color: var(--b-text-3); }
.tt-d2-slot[data-state="asking"] .tt-d2-blank::after { content: "团团正在问…"; }
.tt-d2-slot[data-state="asking"] { box-shadow: inset 0 0 0 1px var(--b-line-strong); }
.tt-d2-slot[data-state="incoming"] .tt-d2-text { opacity: 0; }
.tt-d2-sec[data-key="what"] .tt-d2-v { font-size: var(--b-fs-17); }
.tt-d2-sec[data-key="pend"] .tt-d2-text { color: var(--tt-need); }
.tt-d2-sec[data-key="pend"] .tt-d2-slot[data-state="set"] .tt-d2-text::before { content: "风险 · "; font-weight: 600; }
.tt-d2 .tt-sb-sum-head { pointer-events: none; }

/* ── 画布：项目头下的约定条（可折叠） ── */
.tt-c2 .tt-cv-head { padding-bottom: var(--b-sp-4); }
.tt-c2-pact { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px var(--b-sp-4); margin-top: var(--b-sp-4); padding: 10px 14px; border-radius: 12px; background: var(--b-bg-card); box-shadow: inset 0 0 0 1px var(--b-line); }
.tt-c2-pact.is-folded { grid-template-columns: auto; padding-block: 6px; justify-self: start; }
.tt-c2-pact.is-folded dl { display: none; }
.tt-c2-pact-k { display: grid; align-content: start; gap: 2px; padding-top: 2px; font-size: var(--b-fs-12); font-weight: 600; letter-spacing: var(--b-ls-cap); color: var(--b-text-3); text-align: left; }
.tt-c2-pact-k span { font-weight: 500; letter-spacing: 0; color: var(--b-text-3); text-decoration: underline; text-decoration-color: var(--b-line-strong); text-underline-offset: 3px; }
.tt-c2-pact.is-folded .tt-c2-pact-k { display: flex; gap: 8px; padding: 0; }
.tt-c2-pact-k:hover span { color: var(--b-text-1); }
.tt-c2-pact dl { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 2px var(--b-sp-3); margin: 0; font-size: var(--b-fs-13); line-height: 1.55; }
.tt-c2-pact-row { display: contents; }
.tt-c2-pact dt { color: var(--b-text-3); }
.tt-c2-pact dd { margin: 0; color: var(--b-text-1); text-wrap: pretty; }
.tt-c2-pact-row.is-unset dd { color: var(--b-text-3); }
.tt-c2 .tt-cv-metric dd b { max-width: none; overflow: visible; }

/* 画布栏：纸面窄于 880（1280 宽、看板多一组切换）时，概况换到第二行，不截断 */
@container (max-width: 880px) { .tt-c2 .tt-cv-bar { flex-wrap: wrap; } .tt-c2 .tt-cv-summary { order: 3; flex-basis: 100%; } }
.tt-c2 .tt-cv-bar.has-by { flex-wrap: wrap; }
.tt-c2 .tt-cv-bar.has-by .tt-cv-summary { order: 3; flex-basis: 100%; }

/* 页签里的数字 */
.tt-cc-tabs button { display: inline-flex; align-items: center; gap: 6px; }

/* 节点：t8 的事项名长（最长四十多字），节点 192×148、名字最多四行，不截断 */
.tt-c2 .tt-cv-node { width: 192px; height: 148px; }
.tt-c2 .tt-cv-node .tt-cv-node-t { font-size: var(--b-fs-13); line-height: 1.4; -webkit-line-clamp: 4; }
.tt-c2 .tt-cv-node.is-card { position: relative; width: auto; height: auto; min-height: 112px; }
.tt-c2-flow { padding: 36px 28px; }
.tt-cv-mark.is-add { color: var(--b-ok); box-shadow: inset 0 0 0 1px currentColor; }
.tt-cv-mark.is-move { color: var(--b-text-2); background: var(--b-neutral-tint); }   /* 改期：中性小标签（10-29 评审 I9：琥珀只给方法记号与等待你确认，原来写死的 --tt-move 已删） */
.tt-cv-state.is-past { color: var(--b-text-3); }
.tt-cv-state.is-on { color: var(--b-ok); }
.tt-cc-row.is-need .tt-cv-tl-name b { color: var(--tt-need); }
.tt-in-pill.is-need { color: var(--tt-need); box-shadow: inset 0 0 0 1px var(--tt-need); }
.tt-in-pill.is-on { color: var(--b-ok); box-shadow: inset 0 0 0 1px var(--b-ok); }

/* ── 实际发生 ── */
.tt-c2-happened { padding: var(--b-sp-5) var(--b-sp-5) var(--b-sp-8); }
.tt-c2-hap-list { display: grid; margin: var(--b-sp-4) 0 0; padding: 0; list-style: none; }
.tt-c2-hap-list > li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: var(--b-sp-4); padding: var(--b-sp-3) 0; border-bottom: 1px solid var(--b-line); }
.tt-c2-hap-list ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; font-size: var(--b-fs-13); line-height: 1.6; color: var(--b-text-1); }
.tt-c2-hap-list ul li { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: var(--b-sp-2); align-items: baseline; }
.tt-c2-kind { justify-self: start; padding: 0 6px; border-radius: 6px; font-size: var(--b-fs-12); font-weight: 600; line-height: 20px; color: var(--b-text-2); background: var(--b-neutral-tint); }
.tt-c2-kind.is-平台, .tt-c2-kind.is-产品 { color: var(--tt-need); background: var(--tt-need-tint); }

/* ── 顶栏：当前页 ── */
.topbar .nav a[aria-current="page"] { color: var(--b-text-1); }

/* ── 让开底部演示控制带：画布页与草稿页的团团栏高度减去控制带，提示浮在它上面 ── */
.tt-cv-page { height: calc(100dvh - var(--b-topbar-h) - var(--b-sp-6) * 2 - var(--tt-band-h)); }
.tt-dr-side > .tt-sb { height: calc(100vh - var(--b-topbar-h) - var(--tt-gap) * 2 - var(--tt-band-h)); }
.toast { bottom: calc(var(--tt-band-h) + 16px) !important; }
