@import url("../v2-layout.css?v=20261012-secondary1");

:root {
  color-scheme: light;
  /* 页面局部候选：保留轻微冷灰倾向，但显著降低蓝色彩度。 */
  --canvas: var(--v2-surface-canvas);
  --surface: oklch(0.992 0.0018 245);
  --surface-soft: oklch(0.975 0.003 245);
  --surface-strong: oklch(0.945 0.004 245);
  --line: oklch(0.89 0.006 245);
  --line-strong: oklch(0.73 0.012 245);
  --text: oklch(0.22 0.012 250);
  --text-secondary: oklch(0.46 0.016 250);
  --text-tertiary: oklch(0.61 0.014 250);
  --agent: oklch(0.46 0.065 242);
  --agent-soft: oklch(0.955 0.012 242);
  --counter-soft: oklch(0.952 0.006 275);
  --attention: oklch(0.52 0.082 68);
  --attention-soft: oklch(0.965 0.026 78);
  --success: oklch(0.46 0.075 153);
  --danger: oklch(0.49 0.12 28);
  --radius-sm: 8px;
  --radius-md: 12px;
  --shadow: 0 20px 64px oklch(0.2 0.01 250 / 0.14);
  font-family: Inter, "Noto Sans SC", "PingFang SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { background: var(--canvas); }
body { margin: 0; min-width: 320px; background: var(--canvas); color: var(--text); font: 14px/1.62 Inter, "Noto Sans SC", "PingFang SC", system-ui, sans-serif; }
button, textarea { font: inherit; }
button, a { color: inherit; }
button:focus-visible, a:focus-visible, textarea:focus-visible { outline: 2px solid var(--agent); outline-offset: 3px; }
[hidden] { display: none !important; }
.svg-defs { position: absolute; width: 0; height: 0; overflow: hidden; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.site-header { position: sticky; top: 0; z-index: 20; height: 64px; background: var(--canvas); }
.site-header.is-scrolled { box-shadow: inset 0 -1px var(--line); }
.site-header__inner { width: min(var(--v2-layout-shell), calc(100% - var(--v2-layout-gutter))); height: 100%; margin: 0 auto; display: flex; align-items: center; gap: 32px; }
.brand { display: inline-flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 650; text-decoration: none; }
.brand__mark { width: 20px; height: 20px; }
.main-nav { align-self: stretch; display: flex; align-items: center; gap: 8px; }
.main-nav a { min-height: 40px; padding: 0 14px; border-radius: var(--radius-sm); display: inline-flex; align-items: center; color: var(--text-secondary); font-weight: 500; text-decoration: none; }
.main-nav a:hover { background: var(--surface-strong); color: var(--text); }
.main-nav .is-current { background: var(--surface-strong); color: var(--text); font-weight: 600; }
.header-actions { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.agent-state { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; }
.agent-state i, .live-state i { width: 7px; height: 7px; border-radius: 50%; background: var(--success); }
.account-trigger { width: 40px; height: 40px; border-radius: 50%; background: var(--surface-strong); display: inline-flex; align-items: center; justify-content: center; font-weight: 600; text-decoration: none; }

.thread-page { width: min(var(--v2-layout-workspace), calc(100% - var(--v2-layout-gutter))); height: calc(100dvh - 64px); min-height: 0; margin: 0 auto; padding: 12px 0 16px; display: flex; flex-direction: column; }
.thread-heading { flex: 0 0 auto; margin-bottom: 22px; }
.back-link { width: fit-content; min-height: 36px; margin-left: -8px; padding: 0 8px; border-radius: 7px; display: inline-flex; align-items: center; gap: 6px; color: var(--text-secondary); text-decoration: none; }
.back-link svg { width: 16px; height: 16px; }
.back-link:hover { background: var(--surface-strong); color: var(--text); }
.thread-heading__main { margin-top: 12px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.deadline-slot--mobile { display: none; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1 { margin: 0; font-size: 27px; line-height: 1.3; font-weight: 620; letter-spacing: -0.018em; }
h2 { margin: 0; font-size: 17px; line-height: 1.4; font-weight: 600; letter-spacing: -0.008em; }
h3 { margin: 0; font-size: 13px; line-height: 1.5; font-weight: 600; }
.thread-heading__actions { display: flex; align-items: center; gap: 8px; }
.stage-pill { min-height: 28px; padding: 3px 9px; border-radius: 6px; background: var(--agent-soft); color: var(--agent); display: inline-flex; align-items: center; font-size: 12px; font-weight: 500; }
.stage-pill.is-attention { background: var(--attention-soft); color: var(--attention); }
.quiet-button, .text-button { border: 0; background: transparent; cursor: pointer; }
.quiet-button { min-height: 36px; padding: 0 10px; border-radius: var(--radius-sm); color: var(--text-secondary); font-weight: 500; }
.quiet-button:hover { background: var(--surface-strong); color: var(--text); }
.text-button { padding: 0; color: var(--agent); font-size: 12px; font-weight: 500; }

.thread-layout { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr) 304px; gap: 24px; align-items: stretch; }
.conversation-panel { min-width: 0; height: 100%; border-radius: var(--radius-md); background: var(--surface); display: grid; grid-template-rows: auto minmax(0, 1fr) auto auto; overflow: hidden; }
.conversation-header { position: relative; z-index: 2; min-height: 60px; padding: 14px 24px; background: var(--surface); display: flex; align-items: center; justify-content: space-between; gap: 24px; transition: box-shadow 160ms ease; }
.conversation-header.has-content-above { box-shadow: 0 7px 14px -12px oklch(0.22 0.014 250 / .126); }
.conversation-header__title { min-width: 0; display: flex; align-items: center; gap: 8px; }
.conversation-header__meta { max-width: min(58%, 560px); display: grid; justify-items: end; gap: 3px; }
.conversation-header p { max-width: 100%; margin: 0; color: oklch(0.72 0.007 245); font-size: 12px; line-height: 1.5; font-weight: 400; text-align: right; }
.live-state { flex: 0 0 auto; min-height: 26px; margin-top: 0; padding: 3px 8px; border-radius: 6px; background: var(--agent-soft); color: var(--agent); display: inline-flex; align-items: center; font-size: 11px; font-weight: 500; white-space: nowrap; }
.live-state.is-attention { background: var(--attention-soft); color: var(--attention); }
.live-state.is-success, .stage-pill.is-success { background: color-mix(in oklch, var(--success) 9%, var(--surface)); color: var(--success); }
.conversation-scroll { overflow: auto; scroll-behavior: smooth; scrollbar-gutter: stable; }
.timeline { margin: 0; padding: 20px 32px 36px 28px; list-style: none; display: flex; flex-direction: column; gap: 28px; }
.system-event { align-self: center; max-width: 80%; color: var(--text-tertiary); font-size: 11px; line-height: 1.5; text-align: center; }
.system-event--milestone { margin-top: 2px; }
.message { width: 100%; max-width: none; }
.message__avatar, .mini-avatar { display: grid; place-items: center; }
.message__avatar { --glyph-cutout: var(--agent-soft); width: 28px; height: 28px; border-radius: 50%; background: var(--agent-soft); color: var(--agent); }
.message__avatar svg { width: 15px; height: 15px; }
.message__avatar--agent { background: oklch(0.925 0.025 242); color: oklch(0.4 0.09 242); }
.message__avatar--counter { --glyph-cutout: var(--counter-soft); background: var(--counter-soft); color: var(--text-secondary); }
.message__avatar--platform { --glyph-cutout: var(--text); background: var(--text); color: var(--surface); }
.message__avatar--counter-human { background: oklch(0.942 0.018 78); color: oklch(0.42 0.045 68); font-size: 10px; font-weight: 600; }
.message__meta { min-height: 28px; display: flex; align-items: center; gap: 8px; }
.message__meta strong { font-size: 13px; line-height: 1.4; font-weight: 590; letter-spacing: -0.004em; }
.message__time { color: oklch(0.7 0.008 245); font-size: 10px; font-weight: 400; }
.message__content { width: 100%; margin: 0; }
.message__body { width: 100%; max-width: none; margin: 0; color: oklch(0.285 0.012 250); font-size: 14px; line-height: 24px; font-weight: 400; white-space: pre-wrap; }
.message--mine { width: fit-content; max-width: min(520px, 68%); margin-left: auto; }
.message--mine .message__meta { justify-content: flex-end; min-height: auto; }
.message--mine .message__avatar { display: none; }
.message--mine .message__content { width: auto; margin: 5px 0 0; padding: 10px 13px; border-radius: 10px 10px 3px 10px; background: var(--surface-strong); }
.message__activity { width: fit-content; margin: 0 0 7px; display: flex; align-items: center; gap: 6px; color: var(--text-tertiary); font-size: 11px; line-height: 1.45; }
.message__activity:only-child { margin-bottom: 0; }
.message__activity svg { width: 13px; height: 13px; color: var(--success); }
.message__activity-dot { position: relative; width: 6px; height: 6px; border-radius: 50%; background: var(--agent); box-shadow: 0 0 0 1px color-mix(in oklch, var(--agent) 24%, transparent); flex: 0 0 auto; }
.message__activity-dot::after { position: absolute; inset: -3px; border-radius: inherit; background: color-mix(in oklch, var(--agent) 20%, transparent); content: ""; animation: activity-breathe 2.4s ease-in-out infinite; }
@keyframes activity-breathe { 0%, 100% { opacity: .24; transform: scale(.8); } 50% { opacity: .72; transform: scale(1.06); } }
.message__activity-label { position: relative; display: inline-block; color: var(--text-tertiary); }
.message__activity-label-base { position: relative; z-index: 0; }
.message__activity-label-gloss { position: absolute; z-index: 1; inset: 0; color: oklch(0.38 0.1 242); clip-path: polygon(-28% 0, -8% 0, -18% 100%, -38% 100%); opacity: 0; pointer-events: none; animation: activity-text-gloss 2.3s linear infinite; }
@keyframes activity-text-gloss {
  0%, 10% { clip-path: polygon(-28% 0, -8% 0, -18% 100%, -38% 100%); opacity: 0; }
  12% { clip-path: polygon(-28% 0, -8% 0, -18% 100%, -38% 100%); opacity: 1; }
  82% { clip-path: polygon(108% 0, 128% 0, 118% 100%, 98% 100%); opacity: 1; }
  84%, 100% { clip-path: polygon(108% 0, 128% 0, 118% 100%, 98% 100%); opacity: 0; }
}

.blocking-card, .delivery-card { border: 1px solid oklch(0.93 0.0035 245); border-radius: var(--radius-md); background: oklch(0.982 0.0025 245); }
.proposal-card { border: 0; border-radius: var(--radius-md); background: oklch(0.974 0.003 245); }
.proposal-card:focus-visible { outline: 2px solid color-mix(in oklch, var(--agent) 42%, transparent); outline-offset: 3px; }
.authority-node--located { animation: authority-node-locate 720ms cubic-bezier(.22, 1, .36, 1) both; }
@keyframes authority-node-locate {
  0%, 100% { box-shadow: 0 0 0 0 transparent, 0 0 0 0 transparent; }
  28% { box-shadow: 0 0 0 2px color-mix(in oklch, var(--agent) 54%, transparent), 0 0 0 7px color-mix(in oklch, var(--agent) 10%, transparent); }
}
.blocking-card { width: 100%; max-width: none; margin-left: 0; }
.proposal-card { width: 100%; max-width: none; margin-left: 0; }
.blocking-card { padding: 22px 24px; }
.blocking-card__head, .proposal-card__head { display: flex; justify-content: space-between; gap: 20px; }
.blocking-card strong, .proposal-card strong { font-weight: 600; }
.blocking-card p, .proposal-card p { margin: 5px 0 0; color: var(--text-secondary); }
.blocking-card span, .proposal-card__status { color: var(--text-tertiary); font-size: 11px; font-weight: 500; }
.proposal-card__status.stage-pill { align-self: flex-start; color: var(--agent); }
.proposal-card__status.stage-pill.is-attention { color: var(--attention); }
.node-status-stack { flex: 0 0 auto; display: grid; justify-items: end; gap: 6px; }
.node-deadline-hint { color: var(--text-tertiary); font-size: 10px; line-height: 1.4; font-weight: 450; font-variant-numeric: tabular-nums; white-space: nowrap; }
.node-deadline-hint.is-attention { color: var(--attention); }
.blocking-card button { margin-top: 16px; }
.proposal-card { padding: 24px 26px 22px; }
.proposal-card.is-invalid { background: oklch(0.982 0.0025 245); }
.proposal-card__head { padding: 0; }
.proposal-card__head > div > strong { font-size: 15px; line-height: 1.4; font-weight: 620; letter-spacing: -0.006em; }
.proposal-card__head > div > p { max-width: 52ch; font-size: 12px; line-height: 1.6; }
.proposal-card__terms { margin: 24px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 34px; }
.proposal-card__terms div { min-width: 0; }
.proposal-card__terms dt { color: var(--text-tertiary); font-size: 11px; }
.proposal-card__terms dd { margin: 4px 0 0; color: var(--text); font-size: 14px; line-height: 1.55; font-weight: 520; }
.proposal-card__notice { margin: 18px 0 0 !important; padding: 11px 12px; border-radius: 7px; background: var(--attention-soft); color: var(--attention) !important; font-size: 12px; }
.proposal-card__unresolved { margin: 18px 0 0 !important; color: var(--text-secondary) !important; font-size: 12px; }
.proposal-card__unresolved span { margin-right: 10px; color: var(--text-tertiary); font-weight: 500; }
.proposal-card__actions { margin-top: 24px; display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 8px; }
.alignment-actions { position: relative; z-index: 1; margin: 0 28px -10px; padding: 10px 14px 18px; border: 1px solid oklch(0.925 0.004 245); border-bottom: 0; border-radius: 14px 14px 0 0; background: var(--surface-soft); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.alignment-actions > p { min-width: 0; margin: 0; color: var(--text-secondary); font-size: 13px; line-height: 1.45; font-weight: 500; }
.alignment-actions__controls { flex: 0 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.alignment-actions__status { color: var(--text-secondary); font-size: 12px; font-weight: 500; }
.alignment-actions .button { min-height: 30px; padding-inline: 12px; font-size: 12px; }
.alignment-actions .button--quiet-danger { border: 1px solid color-mix(in oklch, var(--danger) 26%, transparent); background: var(--surface); color: var(--danger); }
.alignment-actions .button--quiet-danger:hover { border-color: color-mix(in oklch, var(--danger) 42%, transparent); background: color-mix(in oklch, var(--danger) 6%, var(--surface)); }
.button { min-height: 40px; padding: 0 16px; border-radius: var(--radius-sm); font-weight: 580; cursor: pointer; }
.button--primary { border: 1px solid var(--text); background: var(--text); color: var(--surface); }
.button--primary:hover { background: oklch(0.28 0.014 250); }
.button--secondary { border: 1px solid var(--line-strong); background: transparent; color: var(--text); }
.button--secondary:hover { background: var(--surface-strong); }
.button--danger { border: 1px solid var(--danger); background: var(--danger); color: var(--surface); }
.button--danger:hover { border-color: oklch(0.43 0.12 28); background: oklch(0.43 0.12 28); }
.status-unit { min-height: 40px; padding: 0 13px; border-radius: var(--radius-sm); background: color-mix(in oklch, var(--success) 9%, var(--surface)); color: var(--success); display: inline-flex; align-items: center; font-weight: 550; }

.delivery-card { width: 100%; padding: 24px 26px 22px; }
.delivery-card:focus-visible { outline: 2px solid color-mix(in oklch, var(--agent) 38%, transparent); outline-offset: 3px; }
.delivery-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.delivery-card__head strong { font-size: 15px; line-height: 1.4; font-weight: 620; }
.delivery-card__head p { max-width: 56ch; margin: 5px 0 0; color: var(--text-secondary); font-size: 12px; line-height: 1.6; }
.delivery-card__facts { margin: 22px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 34px; }
.delivery-card__facts dt { color: var(--text-tertiary); font-size: 11px; }
.delivery-card__facts dd { margin: 4px 0 0; color: var(--text); font-size: 14px; line-height: 1.55; font-weight: 520; }
.delivery-card__actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 8px; }
.delivery-card__files { margin-top: 22px; }
.delivery-card__files-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.delivery-card__files-heading strong { color: var(--text-secondary); font-size: 12px; font-weight: 560; }
.delivery-card__files-heading span { color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; }
.delivery-card__file-list { margin-top: 7px; display: grid; gap: 4px; }
.delivery-card.is-due { background: color-mix(in oklch, var(--attention-soft) 36%, var(--surface)); }
.delivery-card.is-completed { background: color-mix(in oklch, var(--success) 3%, var(--surface)); }

.acceptance-card { width: 100%; padding: 24px 26px 22px; border-radius: var(--radius-md); background: oklch(0.974 0.0045 245); }
.acceptance-card:focus { outline: 2px solid color-mix(in oklch, var(--agent) 38%, transparent); outline-offset: 3px; }
.acceptance-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.acceptance-card__head > div { min-width: 0; }
.acceptance-card__head strong { font-size: 15px; line-height: 1.4; font-weight: 620; letter-spacing: -0.006em; }
.acceptance-card__head p { max-width: 58ch; margin: 5px 0 0; color: var(--text-secondary); font-size: 12px; line-height: 1.62; }
.acceptance-card__head .stage-pill { align-self: flex-start; }
.acceptance-card__facts { margin: 24px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 19px 34px; }
.acceptance-card__facts dt { color: var(--text-tertiary); font-size: 11px; }
.acceptance-card__facts dd { margin: 4px 0 0; color: var(--text); font-size: 13px; line-height: 1.55; font-weight: 500; }
.acceptance-card__files { margin-top: 22px; display: grid; gap: 4px; }
.acceptance-file { width: 100%; min-height: 52px; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; display: flex; align-items: center; justify-content: space-between; gap: 18px; text-align: left; cursor: pointer; }
.acceptance-file:hover { background: color-mix(in oklch, var(--surface) 70%, transparent); }
.acceptance-file span { min-width: 0; }
.acceptance-file strong, .acceptance-file small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acceptance-file strong { color: var(--text-secondary); font-size: 12px; font-weight: 530; }
.acceptance-file small { margin-top: 2px; color: var(--text-tertiary); font-size: 10px; font-weight: 400; }
.acceptance-file em { flex: 0 0 auto; color: var(--text-tertiary); font-size: 10px; font-style: normal; }
.acceptance-card__feedback { margin: 20px 0 0; padding: 12px 14px; border-radius: 8px; background: color-mix(in oklch, var(--attention-soft) 42%, var(--surface)); color: var(--text-secondary); font-size: 12px; line-height: 1.6; }
.acceptance-card__feedback span { display: block; margin-bottom: 3px; color: var(--text-tertiary); font-size: 10px; }
.acceptance-card__actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 8px; }

body[data-viewer-role="client"] .message-composer { box-shadow: none; }
body[data-viewer-role="client"] .message-composer:focus-within { box-shadow: none; }

.message-composer { position: relative; z-index: 2; margin: 0 16px 16px; padding: 13px 14px 10px; border: 1px solid oklch(0.935 0.003 245); border-radius: 15px; background: var(--surface); box-shadow: 0 5px 18px oklch(0.22 0.014 250 / .06), 0 1px 3px oklch(0.22 0.014 250 / .03); display: grid; gap: 7px; transition: border-color 160ms ease, box-shadow 160ms ease; }
.message-composer:focus-within { border-color: oklch(0.86 0.007 245); box-shadow: 0 7px 22px oklch(0.22 0.014 250 / .075), 0 1px 3px oklch(0.22 0.014 250 / .04); }
.message-composer textarea { width: 100%; min-height: 58px; max-height: 148px; padding: 0 2px; resize: none; overflow-y: auto; border: 0; border-radius: 0; background: transparent; color: var(--text); font-size: 14px; line-height: 24px; outline: 0; }
.message-composer textarea:focus { border: 0; background: transparent; }
.message-composer textarea::placeholder { color: var(--v2-text-placeholder); font-weight: 400; opacity: 1; }
.message-composer.is-alignment { padding-top: 11px; }
.message-composer.is-alignment textarea { min-height: 38px; max-height: 112px; }
.mention-menu { position: absolute; z-index: 8; bottom: calc(100% + 8px); left: 0; width: min(304px, calc(100% - 24px)); padding: 6px; border: 1px solid oklch(0.925 0.004 245); border-radius: 11px; background: var(--surface); box-shadow: 0 14px 34px oklch(0.22 0.014 250 / .12), 0 2px 7px oklch(0.22 0.014 250 / .05); }
.mention-menu__label { margin: 0; padding: 6px 8px 5px; color: var(--text-tertiary); font-size: 11px; font-weight: 400; }
.mention-menu__options { display: grid; gap: 2px; }
.mention-option { width: 100%; min-height: 46px; padding: 7px 8px; border: 0; border-radius: 8px; background: transparent; display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; text-align: left; cursor: pointer; }
.mention-option:hover, .mention-option.is-active { background: var(--surface-soft); }
.mention-option__avatar { width: 28px; height: 28px; border-radius: 50%; background: oklch(0.942 0.018 78); color: oklch(0.42 0.045 68); display: grid; place-items: center; font-size: 10px; font-weight: 600; }
.mention-option__avatar.is-platform { background: var(--text); color: var(--surface); }
.mention-option__avatar svg { width: 15px; height: 15px; }
.mention-option__copy { min-width: 0; }
.mention-option__copy strong, .mention-option__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mention-option__copy strong { color: var(--text); font-size: 13px; font-weight: 500; }
.mention-option__copy small { margin-top: 1px; color: var(--text-tertiary); font-size: 11px; font-weight: 400; }
.message-composer__toolbar { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.composer-icon-button { width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; display: grid; place-items: center; cursor: pointer; transition: background 150ms ease, color 150ms ease, transform 100ms ease; }
.composer-icon-button svg { width: 18px; height: 18px; }
.composer-icon-button--send svg { width: 20px; height: 20px; }
.composer-icon-button--attach { background: transparent; color: var(--text-secondary); }
.composer-icon-button--attach:hover { background: var(--surface-strong); color: var(--text); }
.composer-icon-button--send { background: var(--text); color: var(--surface); }
.composer-icon-button--send:hover:not(:disabled) { background: oklch(0.28 0.014 250); }
.composer-icon-button--send:active:not(:disabled) { transform: scale(.94); }
.composer-icon-button--send:disabled { background: var(--surface-strong); color: var(--text-tertiary); cursor: default; }
.composer-icon-button:focus-visible { outline: 2px solid var(--agent); outline-offset: 2px; }
.message-composer__attachments { display: flex; flex-wrap: wrap; gap: 7px; padding-bottom: 5px; }
.composer-attachment { min-width: 0; width: min(292px, 100%); min-height: 46px; padding: 6px 6px 6px 7px; border-radius: 9px; background: var(--surface-soft); display: grid; grid-template-columns: 32px minmax(0, 1fr) 24px; align-items: center; gap: 8px; }
.composer-attachment__copy, .message-attachment__copy { min-width: 0; }
.composer-attachment__copy strong, .composer-attachment__copy small, .message-attachment__copy strong, .message-attachment__copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.composer-attachment__copy strong { color: var(--text-secondary); font-size: 11px; line-height: 1.35; font-weight: 520; }
.composer-attachment__copy small { margin-top: 2px; color: var(--text-tertiary); font-size: 10px; line-height: 1.2; }
.composer-attachment__remove { width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text-tertiary); display: grid; place-items: center; cursor: pointer; }
.composer-attachment__remove:hover { background: var(--surface-strong); color: var(--text); }
.composer-attachment__remove svg { width: 14px; height: 14px; }
.message-attachments { width: min(360px, 100%); margin-top: 10px; display: grid; gap: 6px; }
.message-attachment { min-width: 0; min-height: 52px; padding: 7px 9px 7px 7px; border-radius: 9px; background: color-mix(in oklch, var(--surface) 68%, transparent); display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: 9px; }
.attachment-type-icon { width: 36px; height: 36px; border-radius: 8px; background: var(--surface-strong); color: var(--text-secondary); display: grid; place-items: center; }
.attachment-type-icon svg { width: 19px; height: 19px; }
.composer-attachment .attachment-type-icon { width: 32px; height: 32px; border-radius: 7px; }
.composer-attachment .attachment-type-icon svg { width: 17px; height: 17px; }
.message-attachment--image .attachment-type-icon, .composer-attachment--image .attachment-type-icon { background: var(--agent-soft); color: var(--agent); }
.message-attachment--pdf .attachment-type-icon, .composer-attachment--pdf .attachment-type-icon { background: color-mix(in oklch, var(--danger) 9%, var(--surface)); color: var(--danger); }
.message-attachment--zip .attachment-type-icon, .composer-attachment--zip .attachment-type-icon { background: var(--surface-strong); color: var(--text-secondary); }
.message-attachment__copy strong { color: var(--text-secondary); font-size: 12px; line-height: 1.35; font-weight: 540; }
.message-attachment__copy small { margin-top: 3px; color: var(--text-tertiary); font-size: 10px; line-height: 1.2; font-weight: 400; }

.conclusion-panel { height: 100%; min-height: 0; padding: 4px 2px 16px 10px; overflow: auto; }
.conclusion-panel__heading { display: block; }
.conclusion-panel__status { min-width: 0; display: grid; grid-template-columns: auto auto minmax(0, 1fr); align-items: baseline; row-gap: 4px; }
.conclusion-panel__status > h2 { grid-column: 1; grid-row: 1; white-space: nowrap; }
.eyebrow { margin: 0 0 4px; color: var(--text-tertiary); font-size: 10px; font-weight: 500; letter-spacing: .045em; }
.deadline-slot--desktop, .deadline-slot--desktop .thread-deadline { display: contents; }
.thread-deadline__context { display: none; }
.thread-deadline__separator { grid-column: 2; grid-row: 1; margin: 0 3px; color: var(--text-secondary); font-size: 12px; line-height: 1; font-weight: 650; }
.thread-deadline > strong { grid-column: 3; grid-row: 1; color: var(--text); font-size: 15px; line-height: 1.42; font-weight: 650; letter-spacing: -0.006em; font-variant-numeric: tabular-nums; white-space: nowrap; }
.thread-deadline__note { grid-column: 1 / 3; grid-row: 2; color: var(--text-tertiary); font-size: 11px; line-height: 1.5; white-space: nowrap; }
.thread-deadline__locate { grid-column: 3; grid-row: 2; justify-self: end; align-self: baseline; white-space: nowrap; }
.thread-deadline__more { display: none; width: 20px; height: 20px; }
.thread-deadline.is-urgent > strong, .thread-deadline.is-overdue > strong { color: var(--attention); }
.thread-deadline.is-overdue .thread-deadline__note { color: var(--attention); }
.summary-section { margin-top: 32px; }
.section-heading { display: flex; justify-content: space-between; gap: 12px; }
.proposal-summary { width: 100%; margin-top: 9px; padding: 0; border: 0; background: transparent; display: flex; align-items: baseline; gap: 7px; text-align: left; cursor: pointer; }
.proposal-summary:hover p { color: var(--agent); }
.proposal-summary p { margin: 0; font-size: 14px; font-weight: 560; }
.proposal-summary span { color: var(--text-secondary); font-size: 12px; }
.proposal-summary.is-attention p { color: var(--attention); }
.terms-list { margin: 12px 0 0; display: grid; gap: 10px; }
.terms-list div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 6px; align-items: baseline; }
.terms-list dt { color: var(--text-tertiary); font-size: 12px; }
.terms-list dd { margin: 0; color: var(--text-secondary); text-align: left; font-size: 12px; }
.summary-value-action { min-width: 0; display: flex; align-items: baseline; gap: 6px; }
.summary-value-action > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.summary-value-action .text-button { min-height: 24px; flex: 0 0 auto; }
.progress-summary-list { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.progress-summary-list li { position: relative; min-height: 34px; padding-left: 16px; display: grid; gap: 1px; }
.progress-summary-list li::before { position: absolute; top: 7px; left: 1px; width: 6px; height: 6px; border-radius: 50%; background: var(--line-strong); content: ""; }
.progress-summary-list strong { color: var(--text-secondary); font-size: 12px; line-height: 1.5; font-weight: 500; }
.progress-summary-list time { color: var(--text-tertiary); font-size: 10px; font-variant-numeric: tabular-nums; }
.project-facts { margin: 12px 0 0; display: grid; gap: 10px; }
.project-facts div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 6px; align-items: baseline; }
.project-facts dt { color: var(--text-tertiary); font-size: 12px; }
.project-facts dd { margin: 0; color: var(--text-secondary); font-size: 12px; }
.project-facts .project-files-row { align-items: start; }
.project-facts--files-only div { grid-template-columns: 1fr; }
.project-files-summary { min-width: 0; display: grid; gap: 6px; }
.project-file-link { min-width: 0; width: fit-content; max-width: 100%; padding: 0; border: 0; background: transparent; color: var(--text-secondary); display: inline-flex; align-items: center; gap: 6px; text-align: left; cursor: pointer; }
.project-file-link svg { flex: 0 0 auto; width: 14px; height: 14px; color: var(--text-tertiary); }
.project-file-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.project-file-link:hover { color: var(--agent); }
.project-file-link:hover svg { color: currentColor; }
.project-file-link:focus-visible { border-radius: 4px; outline-offset: 2px; }
.project-files-empty { color: var(--text-tertiary); }
.acceptance-summary__files { margin-top: 14px; }
.acceptance-summary__files > p { margin: 0 0 7px; color: var(--text-tertiary); font-size: 11px; }
.delivery-summary-files { min-width: 0; display: grid; gap: 8px; }
.delivery-summary-file { min-width: 0; width: 100%; padding: 0; border: 0; background: transparent; color: var(--text-secondary); display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 7px; text-align: left; cursor: pointer; }
.delivery-summary-file > svg { width: 15px; height: 15px; color: var(--text-tertiary); }
.delivery-summary-file > span { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.delivery-summary-file strong, .delivery-summary-file small { min-width: 0; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.delivery-summary-file strong { font-size: 12px; font-weight: 500; }
.delivery-summary-file small { color: var(--text-tertiary); font-size: 10px; opacity: 0; transition: opacity 160ms ease; }
.delivery-summary-file:is(:hover, :focus-visible) small { opacity: 1; }
.delivery-summary-file:hover, .delivery-summary-file:hover > svg { color: var(--agent); }
.delivery-summary-file:focus-visible { border-radius: 4px; outline-offset: 2px; }
.project-tab-files { min-width: 0; display: grid; gap: 8px; }
.mobile-conclusion-progress, .mobile-conclusion-files { margin-top: 24px; }
.participants-summary { margin-top: 30px; }
.participant-list { margin: 12px 0 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 10px; }
.participant-list li { min-width: 0; display: flex; align-items: center; gap: 8px; }
.participant-list li > span:last-child { min-width: 0; }
.participant-list strong, .participant-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.participant-list strong { color: var(--text-secondary); font-size: 11px; font-weight: 500; }
.participant-list small { margin-top: 1px; color: var(--text-tertiary); font-size: 10px; }
.mini-avatar { flex: 0 0 auto; width: 28px; height: 28px; border-radius: 50%; font-size: 10px; font-style: normal; font-weight: 550; }
.mini-avatar svg { width: 15px; height: 15px; }
.mini-avatar--person { background: var(--surface-strong); color: var(--text-secondary); }
.mini-avatar--client { background: oklch(0.95 0.012 78); color: oklch(0.46 0.045 68); }
.mini-avatar--agent { --glyph-cutout: var(--agent-soft); background: var(--agent-soft); color: var(--agent); }
.mini-avatar--counter { --glyph-cutout: var(--counter-soft); background: var(--counter-soft); color: var(--text-secondary); }
.mini-avatar--platform { --glyph-cutout: var(--text); background: var(--text); color: var(--surface); }
.private-note { margin-top: 28px; }
.private-note > div { display: flex; align-items: baseline; justify-content: space-between; }
.private-note span { color: var(--text-tertiary); font-size: 10px; }
.private-note textarea { appearance: none; width: 100%; min-height: 36px; max-height: 132px; margin-top: 8px; padding: 6px 0; resize: none; overflow-y: hidden; border: 0; border-radius: 0; background: transparent; color: var(--text); outline: 0; box-shadow: none !important; }
.private-note textarea.is-empty { box-shadow: inset 0 -1px color-mix(in oklch, var(--line) 48%, transparent) !important; }
.private-note textarea.is-hovered { box-shadow: inset 0 -1px var(--line) !important; }
.private-note textarea.is-focused { box-shadow: inset 0 -1px var(--line-strong) !important; }
.private-note textarea:focus-visible { outline: 0; }
.private-note textarea::placeholder { color: var(--v2-text-placeholder); }
.private-note.is-readonly textarea { color: var(--text-secondary); cursor: default; box-shadow: none !important; }

.dialog-field { margin-top: 18px; display: grid; gap: 7px; }
.dialog-field > span { color: var(--text-tertiary); font-size: 11px; }
.dialog-field textarea { width: 100%; min-height: 112px; max-height: 180px; padding: 12px 13px; resize: none; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-soft); color: var(--text); line-height: 1.6; }
.dialog-field textarea:focus { border-color: var(--line-strong); background: var(--surface); outline: 0; }
.rating-copy-field > span { color: var(--text); font-size: 13px; font-weight: 560; line-height: 1.45; }
.rating-copy-field > span small { margin-left: 4px; color: var(--text-tertiary); font-size: 10px; font-weight: 400; }
.rating-copy-field textarea { height: 96px; min-height: 96px; max-height: 96px; resize: none; background: transparent; }
.rating-copy-field textarea:focus { background: transparent; }
.rating-copy-field textarea::placeholder { color: var(--v2-text-placeholder); opacity: 1; }
#rating-dialog h2 { margin: 0; }
.rating-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.rating-dialog__close { width: 32px; height: 32px; margin: -5px -7px 0 0; flex: 0 0 auto; }
.rating-dialog__close svg { width: 18px; height: 18px; }
.rating-fieldset { min-width: 0; margin: 22px 0 0; padding: 0; border: 0; }
.rating-fieldset legend { color: var(--text); font-size: 13px; font-weight: 560; line-height: 1.45; }
.rating-stars { margin-top: 9px; display: flex; gap: 0; }
.rating-stars label { width: 28px; height: 32px; display: grid; place-items: center; color: oklch(0.82 0.008 245); cursor: pointer; transition: color 140ms ease-out; }
.rating-stars label.is-preview { color: oklch(0.82 0.16 88); }
.rating-stars label.is-selected { color: oklch(0.76 0.17 85); }
.rating-stars input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.rating-stars svg { width: 24px; height: 24px; }
.rating-stars input:focus-visible + svg { outline: 2px solid var(--agent); outline-offset: 3px; border-radius: 4px; }
.button:disabled { opacity: .42; cursor: default; }

dialog { color: var(--text); }
.project-dialog, .decision-dialog, .mobile-conclusion-dialog { border: 0; background: transparent; padding: 0; }
.project-dialog::backdrop, .decision-dialog::backdrop, .mobile-conclusion-dialog::backdrop { background: oklch(0.2 0.01 250 / .3); }
.project-dialog { width: min(560px, calc(100vw - 32px)); margin-right: 0; height: 100%; max-height: 100%; }
.project-dialog__panel { min-height: 100%; padding: 28px; background: var(--surface); box-shadow: var(--shadow); }
.project-dialog header { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.icon-button { width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--text-secondary); display: grid; place-items: center; cursor: pointer; }
.icon-button svg { width: 18px; height: 18px; }
.icon-button:hover { background: var(--surface-strong); color: var(--text); }
.project-tabs { margin-top: 26px; display: flex; gap: 24px; }
.project-tabs button { position: relative; min-height: 40px; padding: 0 2px; border: 0; background: transparent; color: var(--text-secondary); cursor: pointer; }
.project-tabs button.is-active { color: var(--text); font-weight: 580; }
.project-tabs button.is-active::after { content: ""; position: absolute; right: 0; bottom: 0; left: 0; height: 2px; background: var(--text); }
.project-tab-panel { padding: 22px 0; }
.project-tab-panel section + section { margin-top: 24px; }
.project-tab-panel p { color: var(--text-secondary); }
.project-detail-list { margin: 13px 0 0; display: grid; gap: 13px; }
.project-detail-list div { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 8px; }
.project-detail-list dt { color: var(--text-tertiary); }
.project-detail-list dd { margin: 0; }
.record-list { margin: 18px 0 0; padding: 0; list-style: none; display: grid; }
.record-list li { position: relative; min-height: 62px; padding: 0 0 22px 26px; }
.record-list li::before { content: ""; position: absolute; top: 9px; bottom: -1px; left: 3px; width: 1px; background: var(--line); }
.record-list li::after { content: ""; position: absolute; top: 5px; left: 0; width: 7px; height: 7px; border: 1px solid var(--line-strong); border-radius: 50%; background: var(--surface); }
.record-list li:last-child { min-height: 0; padding-bottom: 0; }
.record-list li:last-child::before { display: none; }
.record-list time { display: block; margin-bottom: 3px; color: var(--text-tertiary); font-size: 10px; }
.record-list p { margin: 0; color: var(--text) !important; font-size: 13px; line-height: 1.55; }
.decision-dialog { width: min(500px, calc(100vw - 32px)); }
.decision-dialog form { padding: 26px; border-radius: 12px; background: var(--surface); box-shadow: var(--shadow); }
.decision-dialog p { color: var(--text-secondary); }
.dialog-summary { padding: 14px; border-radius: var(--radius-sm); background: var(--surface-soft); display: flex; justify-content: space-between; }
.dialog-summary strong { font-weight: 560; }
.dialog-actions { margin-top: 22px; display: flex; justify-content: flex-end; gap: 8px; }
.diff-list { margin-top: 20px; display: grid; gap: 12px; }
.diff-list div { padding: 13px 14px; border-radius: var(--radius-sm); background: var(--surface-soft); display: grid; grid-template-columns: 90px minmax(0, 1fr); gap: 4px 12px; }
.diff-list span { grid-row: 1 / 3; color: var(--text-tertiary); }
.diff-list del { color: var(--danger); }
.diff-list ins { color: var(--success); text-decoration: none; }
.toast { position: fixed; z-index: 50; top: 88px; left: 50%; max-width: min(360px, calc(100vw - 32px)); padding: 12px 16px; transform: translateX(-50%); border-radius: var(--radius-sm); background: var(--text); color: var(--surface); box-shadow: var(--shadow); }

.mobile-conclusion-dialog { position: fixed; inset: 0; width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; overflow: hidden; }
.mobile-conclusion-dialog[open] { display: grid; align-items: end; }
.mobile-conclusion-sheet { width: 100%; max-height: min(78dvh, 720px); padding: 16px 20px calc(20px + env(safe-area-inset-bottom)); border-radius: 18px 18px 0 0; background: var(--surface); box-shadow: 0 -12px 42px oklch(0.2 0.01 250 / .14); overflow: auto; overscroll-behavior: contain; }
.mobile-conclusion-sheet__header { min-height: 52px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.mobile-conclusion-sheet__header .eyebrow { margin-bottom: 1px; }
.mobile-conclusion-sheet__body { padding-top: 16px; display: grid; gap: 28px; }
.mobile-conclusion-sheet__body section { min-width: 0; }
.mobile-conclusion-status { padding-bottom: 0; border-bottom: 0; }
.mobile-conclusion-status > strong { margin-top: 6px; color: var(--text); display: block; font-size: 16px; line-height: 1.45; font-weight: 620; }
.mobile-conclusion-status > p { margin: 4px 0 0; color: var(--text-tertiary); font-size: 12px; }
.mobile-conclusion-plan > div { margin-top: 8px; color: var(--text-secondary); }
.mobile-conclusion-plan p { margin: 0; color: var(--text); font-size: 14px; font-weight: 560; }
.mobile-conclusion-plan span { color: var(--text-tertiary); font-size: 12px; }
.mobile-conclusion-terms { margin-top: 10px; gap: 12px; }
.mobile-conclusion-terms div { grid-template-columns: 72px minmax(0, 1fr); gap: 10px; align-items: start; }
.mobile-conclusion-terms dd { color: var(--text); line-height: 1.55; }
.mobile-conclusion-sheet__note { margin: -4px 0 0; padding-top: 0; border-top: 0; color: var(--text-tertiary); font-size: 11px; line-height: 1.6; }

@media (max-width: 1000px) {
  .thread-layout { grid-template-columns: minmax(0, 1fr) 288px; gap: 18px; }
  .thread-page { width: min(100% - var(--v2-layout-gutter-mobile), var(--v2-layout-workspace)); }
}
@media (max-width: 820px) {
  html, body { background: var(--surface); }
  .site-header { display: none; }
  .site-header__inner { width: calc(100% - var(--v2-layout-gutter-mobile)); gap: 16px; }
  .agent-state { display: none; }
  .thread-page { width: 100%; height: 100dvh; min-height: 0; padding: env(safe-area-inset-top) 0 env(safe-area-inset-bottom); background: var(--surface); overflow: hidden; }
  .thread-heading { min-height: 0; margin: 0; padding: 0 16px; display: grid; grid-template-columns: 44px minmax(0, 1fr); align-items: center; }
  .back-link { grid-column: 1; grid-row: 1; width: 44px; height: 52px; min-height: 44px; margin: 0 0 0 -10px; padding: 0; border-radius: 8px; justify-content: center; }
  .back-link svg { width: 20px; height: 20px; }
  .back-link span { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  body[data-page-level="secondary"] .thread-heading .thread-heading__main { grid-column: 2; grid-row: 1; min-width: 0; margin: 0; align-items: center; }
  .thread-heading__main > div { min-width: 0; }
  body[data-page-level="secondary"] .thread-heading.thread-heading h1 { overflow: hidden; color: var(--text); font-size: 20px; line-height: 1.3; font-weight: 620; letter-spacing: -0.012em; text-overflow: ellipsis; white-space: nowrap; }
  .deadline-slot--desktop { display: none; }
  .deadline-slot--mobile { grid-column: 1 / -1; grid-row: 2; display: block; margin: 0; }
  .deadline-slot--mobile .thread-deadline { height: auto; min-height: 50px; padding: 3px 0; border: 0; border-radius: 0; background: transparent; display: grid; grid-template-columns: auto auto minmax(0, 1fr) 44px; align-items: center; row-gap: 1px; cursor: pointer; }
  .deadline-slot--mobile .thread-deadline:not(.has-note) { min-height: 44px; padding-block: 0; }
  .deadline-slot--mobile .thread-deadline:focus-visible { outline: 2px solid var(--agent); outline-offset: -2px; }
  .deadline-slot--mobile .thread-deadline__context { grid-column: 1; grid-row: 1; display: block; color: var(--text-secondary); font-size: 12px; line-height: 1.42; font-weight: 500; white-space: nowrap; }
  .deadline-slot--mobile .thread-deadline__separator { color: var(--text-tertiary); font-size: 11px; }
  .deadline-slot--mobile .thread-deadline > strong { font-size: 14px; font-weight: 620; }
  .deadline-slot--mobile .thread-deadline__note { grid-column: 1 / 4; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .deadline-slot--mobile .thread-deadline__locate { grid-column: 4; grid-row: 1 / 3; width: 44px; height: 44px; align-self: center; justify-self: end; border-radius: 8px; color: var(--text-secondary); display: grid; place-items: center; }
  .deadline-slot--mobile .thread-deadline:not(.has-note) .thread-deadline__locate { grid-row: 1; }
  .deadline-slot--mobile .thread-deadline__locate:hover { background: var(--surface-strong); color: var(--text); }
  .deadline-slot--mobile .thread-deadline__locate-label { display: none; }
  .deadline-slot--mobile .thread-deadline__more { display: block; }
  .thread-layout { flex: 1 1 auto; min-height: 0; grid-template-columns: 1fr; gap: 0; border-top: 1px solid color-mix(in oklch, var(--line) 56%, transparent); }
  .conversation-panel { height: 100%; min-height: 0; border-radius: 0; background: transparent; }
  .conversation-header { padding-inline: 16px; }
  .conversation-scroll { overscroll-behavior: contain; }
  .message__content { margin-top: 4px; }
  .alignment-actions { flex: 0 0 auto; margin: 0 16px -10px; padding: 10px 14px 18px; border: 1px solid oklch(0.925 0.004 245); border-bottom: 0; border-radius: 14px 14px 0 0; background: var(--surface-soft); }
  .message-composer { flex: 0 0 auto; margin-bottom: 10px; }
  body[data-page-level="secondary"] .message-composer textarea { font-size: 14px; line-height: 24px; }
  .conclusion-panel { display: none; }
}
@media (max-width: 620px) {
  .site-header { height: auto; min-height: 64px; }
  .site-header__inner { padding: 10px 0; flex-wrap: wrap; }
  .main-nav { order: 3; width: 100%; height: 40px; overflow-x: auto; }
  .header-actions { margin-left: auto; }
  .thread-page { width: 100%; padding-top: env(safe-area-inset-top); }
  .thread-heading__main { margin-top: 0; align-items: center; flex-direction: row; }
  .thread-heading__actions { width: 100%; justify-content: space-between; }
  .conversation-header { padding: 12px 16px 11px; display: grid; gap: 2px; }
  .conversation-header__meta { width: 100%; max-width: none; justify-items: start; }
  .conversation-header p { width: 100%; max-width: none; text-align: left; }
  .conversation-header .live-state { min-height: 24px; padding: 2px 7px; }
  .stage-pill { min-height: 22px; padding: 1px 7px; font-size: 11px; line-height: 1.4; white-space: nowrap; }
  .proposal-card__head, .delivery-card__head, .acceptance-card__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; column-gap: 10px; row-gap: 0; }
  .proposal-card__head > div:first-child, .delivery-card__head > div:first-child, .acceptance-card__head > div:first-child { display: contents; }
  .proposal-card__head strong, .delivery-card__head strong, .acceptance-card__head strong { grid-column: 1; grid-row: 1; align-self: center; min-width: 0; }
  .proposal-card__head p, .delivery-card__head p, .acceptance-card__head p { grid-column: 1 / -1; grid-row: 2; max-width: none; margin-top: 3px; }
  .proposal-card__head > .stage-pill, .delivery-card__head > .stage-pill, .acceptance-card__head > .stage-pill { grid-column: 2; grid-row: 1; align-self: center; justify-self: end; }
  .node-status-stack { grid-column: 2; grid-row: 1; display: flex; align-items: center; justify-content: flex-end; gap: 8px; white-space: nowrap; }
  .node-status-stack .stage-pill { flex: 0 0 auto; align-self: center; }
  .node-status-stack .node-deadline-hint { flex: 0 0 auto; margin: 0; }
  .timeline { padding: 20px 16px 28px; }
  .message, .blocking-card, .proposal-card { max-width: 100%; }
  .message--mine { max-width: 84%; }
  .blocking-card { margin-left: 0; }
  .proposal-card { padding: 20px; }
  .proposal-card__terms { grid-template-columns: 1fr; }
  .alignment-actions { margin: 0 10px -10px; gap: 10px; }
  .alignment-actions__controls { flex: 0 0 auto; }
  .delivery-card { padding: 20px; }
  .delivery-card__facts { grid-template-columns: 1fr; }
  .acceptance-card { padding: 20px; }
  .acceptance-card__facts { margin-top: 18px; grid-template-columns: 1fr; gap: 14px; }
  .acceptance-card__facts dd { margin-top: 2px; }
  .message-composer { margin-inline: 10px; }
  .toast { top: 72px; }
  .project-dialog { width: 100%; }
  .dialog-actions { flex-direction: column-reverse; }
  .dialog-actions .button { width: 100%; }
}
@media (max-width: 360px) {
  .alignment-actions { align-items: flex-start; flex-wrap: wrap; }
  .alignment-actions__controls { width: 100%; flex: 1 1 100%; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
  * { scroll-behavior: auto !important; transition: none !important; }
  .message__activity-dot::after { animation: none; opacity: .45; transform: none; }
  .message__activity-label-gloss { display: none; animation: none; }
  .authority-node--located { animation: none; box-shadow: 0 0 0 2px color-mix(in oklch, var(--agent) 46%, transparent); }
}
