/* 宗地卡片 —— 仅引用 tokens.css 中的变量；移植自原型 app.css 的“宗地卡片”与“五段流程卡片”（设计任务书 §7、形状与动效「过渡」）。
   桌面右侧槽位与手机完整资料共用，只读，不含编辑入口的样式 */
.pcard-head { display: grid; gap: 6px; padding-bottom: 12px; border-bottom: 0.5px solid var(--border-soft); }
.pcard-head h3 { font-size: var(--text-dialog-title); font-weight: 600; letter-spacing: -0.015em; }
.pcard-head .meta { color: var(--muted); font-size: var(--text-caption); }
.parcel-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; margin: 8px 0; }
.parcel-facts > div { display: grid; align-content: start; gap: 3px; min-width: 0; }
.parcel-facts span { color: var(--fg-2); font-size: var(--text-label); }
.parcel-facts b { color: var(--fg); font-weight: 500; font-size: var(--text-table); overflow-wrap: anywhere; }
.flow-progress { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; height: 7px; }
.flow-part { background: var(--fill-soft); border: 1px solid var(--border); border-radius: var(--radius-sm); }
.flow-part.is-completed { background: var(--fg-2); border-color: var(--fg-2); }
.flow-part.is-in-progress { background: var(--border); border: 1.5px dashed var(--fg-2); }
.flow-part.is-skipped { background: repeating-linear-gradient(135deg, var(--bg) 0 2px, var(--border) 2px 4px); }
.progress-summary { padding: 14px 0 10px; }
.progress-summary p { margin-top: 8px; font-size: var(--text-caption); color: var(--fg-2); line-height: 1.6; }
.parcel-flow { position: relative; }
.flow-node { position: relative; padding: 0 0 10px 0; }
.flow-node:not(:last-child)::before { content: ""; position: absolute; left: 13px; top: 36px; bottom: -4px; border-left: 1px solid var(--border); }
.flow-node-head { display: flex; gap: 8px; align-items: flex-start; }
.flow-icon { position: relative; margin-top: 12px; width: 28px; height: 28px; flex: none; display: grid; place-items: center; color: var(--fg-2); background: var(--fill-soft); border-radius: var(--radius-pill); }
.flow-icon .i { width: 18px; height: 18px; }
.flow-toggle { display: grid; min-width: 0; flex: 1; gap: 4px; padding: 12px 2px; min-height: 52px; background: transparent; border: 0; border-radius: var(--radius-sm); text-align: left; color: var(--fg); transition: background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard); }
.flow-title { display: flex; gap: 8px; align-items: center; font-size: var(--text-table); }
.flow-title > span { margin-left: auto; font-size: var(--text-label); color: var(--fg-2); }
.flow-fact { font-size: var(--text-caption); line-height: 1.5; color: var(--fg-2); overflow-wrap: anywhere; }
.flow-toggle[aria-expanded="true"] .chev { transform: rotate(90deg); }
.flow-toggle:focus-visible, .flow-history-toggle:focus-visible { outline: none; box-shadow: var(--focus-ring); }
.flow-node.is-not-started .flow-title, .flow-node.is-not-started .flow-icon { color: var(--muted); }
.flow-node.is-current .flow-icon { box-shadow: inset 0 0 0 1px var(--fg-2); }
.flow-content { padding: 0 0 12px 36px; }
/* 折叠容器：220ms，展开用标准曲线、收起用镜像曲线，收起时 inert、内容保留 */
.flow-fold { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows var(--motion-base) var(--ease-exit), opacity var(--motion-base) var(--ease-exit); }
.flow-fold.is-open { grid-template-rows: 1fr; opacity: 1; transition-timing-function: var(--ease-standard); }
.flow-fold-inner { min-height: 0; overflow: hidden; }
.flow-toggle .chev, .flow-history-toggle .chev { transition: transform var(--motion-base) var(--ease-standard); }
.flow-content .dt-row > :first-child { color: var(--fg-2); }
.flow-history { margin-top: 10px; font-size: var(--text-caption); }
.flow-history-toggle { display: flex; align-items: center; gap: 4px; min-height: 44px; padding: 0 6px; margin-left: -6px; border: 0; border-radius: var(--radius-sm); background: transparent; color: var(--fg-2); font-size: inherit; cursor: pointer; transition: background var(--motion-fast) var(--ease-standard); }
.flow-history-toggle[aria-expanded="true"] .chev { transform: rotate(90deg); }
.flow-history-toggle:active { background: var(--fill-soft); transition-duration: 0ms; }
@media (hover: hover) { .flow-history-toggle:hover, .flow-toggle:hover { background: var(--fill-soft); } }
/* 按下即时反馈（形状与动效「按压与悬停」）：底色加轻微缩放，与只有底色的悬停态可区分（同列表行 .res-item）；松开按 --motion-fast 回位；减少动态效果只保留底色、不缩放 */
.flow-toggle:active { background: var(--fill-soft); transform: scale(.985); transition-duration: 0ms; }
@media (prefers-reduced-motion: reduce) { .flow-toggle:active { transform: none; } }
html.sim-reduce-motion .flow-toggle:active { transform: none; }
.flow-history p { padding: 6px 0; }
.supply-active { padding: 8px; margin: 8px -8px; border-radius: var(--radius-sm); background: var(--fill-soft); }
.joint { margin-top: 8px; padding: 10px 12px; border-radius: var(--radius-md); background: var(--fill-soft); font-size: var(--text-table); }
.joint-value { font-size: var(--text-dialog-title); font-weight: 600; margin: 4px 0; font-variant-numeric: tabular-nums; }
.joint-value small { font-size: var(--text-table); color: var(--fg-2); }
.trail { margin-top: 14px; color: var(--muted); font-size: var(--text-label); line-height: 1.6; }
@media (prefers-reduced-motion: reduce) { .flow-fold, .flow-toggle .chev, .flow-history-toggle .chev { transition: none; } }

/* 手绘边界的资料与估算，桌面和手机共用。 */
.boundary-info { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-2); color: var(--fg-2); font-size: var(--text-caption); }
.boundary-estimate { color: var(--warn-ink); font-size: var(--text-caption); margin: var(--space-1) 0; }
.region-match { color: var(--fg-2); font-size: var(--text-caption); margin: var(--space-1) 0; }
