/* Document authoring inherits the authenticated workbench tokens. */
.document-authoring { color: var(--dv-text, #283530); min-width: 0; margin: 0 0 24px;
  /* 사업 정보 패널 틴트: 코발트를 22% 섞는다. 기존 trust-soft(#ecefee) 대비 흰색과의 거리가 두 배(2026-09-13 대표 지시).
     틴트 위 보조 문구는 회색이 아니라 네이비 계열로 낮춰 4.5:1 을 지킨다. */
  /* 2026-09-13 오전 대표 지시로 22%에서 절반(11%)으로 낮췄다. 경계선은 틴트보다 두 단계 진하게. */
  --da-panel-bg: color-mix(in srgb, var(--dv-primary, #0d3021) 11%, var(--dv-bg-surface, #ffffff));
  --da-panel-line: color-mix(in srgb, var(--dv-primary, #0d3021) 24%, var(--dv-bg-surface, #ffffff));
  --da-panel-muted: color-mix(in srgb, var(--dv-trust, #051b11) 78%, var(--dv-bg-surface, #ffffff));
  --da-bot-bg: var(--dv-bg-surface, #ffffff);
  --da-me-bg: var(--dv-bg-selected, #e4e9e6);
}
.document-authoring *, .document-authoring *::before, .document-authoring *::after { box-sizing: border-box; }
.document-authoring[hidden], .document-authoring [hidden] { display: none !important; }
.document-authoring h2 { margin: 0; font-size: 24px; line-height: 1.35; letter-spacing: -.02em; }
.document-authoring h3 { margin: 0 0 12px; font-size: 17px; line-height: 1.45; }
.document-authoring p { max-width: 72ch; line-height: 1.6; }
.document-authoring-sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.document-authoring-head { display: flex; justify-content: space-between; align-items: start; gap: 16px; margin-bottom: 20px; }
.document-authoring-head p { margin: 8px 0 0; }
.document-authoring-head .btn { flex: 0 0 auto; }
.document-authoring .document-authoring-head h2 { color: var(--dv-trust, #051b11); font-size: 24px; font-weight: 750; }
.document-authoring-modes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
/* 가져올 원본의 항목 한 줄(대화 머리 메뉴 안). 옛 작성 준비 패널(.document-authoring-context) 규칙은 패널과 함께 걷었다(2026-09-28). */
.document-authoring-context-field { display: flex; align-items: flex-start; gap: 12px; overflow-wrap: anywhere; }
.document-authoring-context-field > span { display: grid; gap: 6px; min-width: 0; white-space: pre-wrap; }
.document-authoring-mode { display: grid; grid-template-rows: auto 1fr auto; gap: 16px; padding: 24px; border: 1px solid var(--dv-trust-border, #93a49c); border-radius: 8px; background: var(--dv-bg-surface, #ffffff); text-align: left; font: inherit; color: var(--dv-text, #283530); cursor: pointer; transition: border-color 160ms ease-out, background-color 160ms ease-out; }
.document-authoring .document-authoring-mode strong { font-size: 20px; line-height: 1.4; font-weight: 700; color: var(--dv-trust, #051b11); }
.document-authoring-mode-title { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.document-authoring-mode-copy { max-width: 60ch; font-size: 15px; line-height: 1.6; word-break: keep-all; overflow-wrap: anywhere; }
.document-authoring-mode-indicator { display: block; flex: 0 0 20px; width: 20px; height: 20px; border: 1px solid var(--dv-border-strong, #708079); border-radius: 50%; background: var(--dv-bg-surface, #ffffff); }
.document-authoring-mode-action { display: flex; align-items: center; justify-content: space-between; min-height: 24px; margin-top: 4px; color: var(--dv-primary, #0d3021); font-size: 13px; line-height: 1.5; font-weight: 700; }
.document-authoring-mode-action::after { content: ""; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); margin-right: 4px; }
@media (hover: hover) and (pointer: fine) { .document-authoring-mode:hover:not(:disabled) { border-color: var(--dv-primary, #0d3021); background: var(--dv-bg-selected, #e4e9e6); } }
.document-authoring-mode[aria-pressed="true"] { border: 2px solid var(--dv-primary, #0d3021); padding: 23px; background: var(--dv-bg-selected, #e4e9e6); }
.document-authoring-mode[aria-pressed="true"] .document-authoring-mode-indicator { border: 6px solid var(--dv-primary, #0d3021); }
.document-authoring button:focus-visible, .document-authoring a:focus-visible, .document-authoring textarea:focus-visible, .document-authoring summary:focus-visible, .document-authoring input:focus-visible { outline: 2px solid var(--dv-primary, #0d3021); outline-offset: 3px; }
.document-authoring button:disabled { cursor: wait; opacity: .65; }
/* 두 열은 같은 높이로 선다(2026-09-13 대표 지시). 대화 열은 스레드가 남는 높이를 채우고 안에서 스크롤한다. */
.document-authoring-layout { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }

/* 대화 열: 머리(에이전트 정체) → 스레드 → 작성 확인 카드 → 입력창. 채팅의 익숙한 순서. */
.document-authoring-conversation { display: flex; flex-direction: column; min-width: 0; max-height: 780px; padding: 0; background: var(--dv-bg-surface, #ffffff); border: 1px solid var(--dv-border, #b2c2bb); border-radius: 8px; overflow: hidden; }
.document-authoring-chat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--dv-border, #b2c2bb); }
.document-authoring-chat-identity { display: flex; flex: 1 1 auto; align-items: center; gap: 12px; min-width: 0; }
.document-authoring-chat-identity > div { min-width: 0; }
.document-authoring-avatar { display: inline-grid; place-items: center; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 8px; background: var(--dv-trust, #051b11); color: var(--dv-rail-ink-strong, #ffffff); font-size: 12px; font-weight: 800; letter-spacing: .02em; }
.document-authoring .document-authoring-conversation-title { margin: 0; padding: 0; border: 0; color: var(--dv-trust, #051b11); font-size: 17px; line-height: 1.35; font-weight: 700; }
.document-authoring .document-authoring-chat-caption { margin: 2px 0 0; color: var(--dv-text-muted, #50605a); font-size: 13px; line-height: 1.5; }
.document-authoring-thread { display: flex; flex: 1 1 auto; flex-direction: column; gap: 14px; min-height: 240px; overflow-y: auto; padding: 20px; background: var(--dv-bg-page, #f4f9f7); overscroll-behavior: contain; scroll-behavior: smooth; }
.document-authoring-messages { display: flex; flex-direction: column; gap: 14px; }
.document-authoring-proposals { display: flex; flex-direction: column; gap: 14px; }
.document-authoring-proposals:empty { display: none; }
.document-authoring .bubble { position: relative; display: flex; flex-direction: column; gap: 6px; max-width: min(72ch, 88%); padding: 12px 14px; border-radius: 8px; font-size: 15px; line-height: 1.65; white-space: pre-wrap; overflow-wrap: anywhere; }
.document-authoring .bubble.bot { align-self: flex-start; background: var(--da-bot-bg); color: var(--dv-text, #283530); border: 1px solid var(--dv-border, #b2c2bb); border-top-left-radius: 2px; }
/* 내 답변은 가로폭 전체를 네이비로 채운다 — 에이전트의 흰 말풍선과 한눈에 구분되게(2026-09-13 대표 지시). */
.document-authoring .bubble.me { align-self: stretch; max-width: none; background: var(--dv-trust, #051b11); color: var(--dv-rail-ink-strong, #ffffff); border: 1px solid var(--dv-trust, #051b11); border-top-right-radius: 2px; }
.document-authoring .bubble-head { display: flex; align-items: center; gap: 8px; white-space: normal; }
.document-authoring .bubble-head .document-authoring-avatar { width: 22px; height: 22px; border-radius: 6px; font-size: 10px; }
.document-authoring .bubble small { font-size: 12px; font-weight: 650; color: var(--dv-trust, #051b11); }
.document-authoring .bubble.me small { color: var(--dv-rail-ink, #cad8d2); }
.document-authoring .bubble time { margin-left: auto; font-size: 12px; color: var(--dv-text-muted, #50605a); }
.document-authoring .bubble.me time { color: var(--dv-rail-muted, #a9c4b8); }
.document-authoring .bubble-body { display: block; }
.document-authoring .bubble.is-proposal { max-width: min(72ch, 96%); border-color: var(--dv-trust-border, #93a49c); background: var(--dv-trust-soft, #ecefee); white-space: normal; }
.document-authoring .bubble.is-proposal p { margin: 0; white-space: pre-wrap; }
.document-authoring .bubble.is-proposal .document-authoring-proposal-reason { color: var(--da-panel-muted); font-size: 13px; }
.document-authoring .bubble.is-proposal .btn { align-self: flex-start; margin-top: 4px; }
/* 유일하게 허락된 움직임: 에이전트가 답을 정리하는 동안의 세 점. */
.document-authoring-typing { display: flex; align-self: flex-start; gap: 5px; padding: 14px 16px; border: 1px solid var(--dv-border, #b2c2bb); border-radius: 8px; border-top-left-radius: 2px; background: var(--da-bot-bg); }
.document-authoring-typing span { width: 7px; height: 7px; border-radius: 50%; background: var(--dv-trust, #051b11); opacity: .35; animation: document-authoring-typing 1.1s ease-out infinite; }
.document-authoring-typing span:nth-child(2) { animation-delay: .18s; }
.document-authoring-typing span:nth-child(3) { animation-delay: .36s; }
@keyframes document-authoring-typing { 0%, 60%, 100% { opacity: .35; transform: translateY(0); } 30% { opacity: 1; transform: translateY(-3px); } }

.document-authoring-review { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin: 0; padding: 16px 20px; border-top: 1px solid var(--dv-trust-border, #93a49c); background: var(--dv-trust-soft, #ecefee); }
.document-authoring-review-copy { min-width: 0; flex: 1 1 320px; }
.document-authoring .document-authoring-review strong { display: block; color: var(--dv-trust, #051b11); font-size: 15px; line-height: 1.5; }
.document-authoring .document-authoring-review p { margin: 4px 0 0; color: var(--dv-trust, #051b11); font-size: 13px; }
.document-authoring-review .document-authoring-actions { flex: 0 0 auto; }

.document-authoring-composer { display: grid; gap: 6px; padding: 12px 20px 14px; border-top: 1px solid var(--dv-border, #b2c2bb); background: var(--dv-bg-surface, #ffffff); }
.document-authoring-composer-field { display: flex; align-items: flex-end; gap: 8px; padding: 6px 6px 6px 10px; border: 1px solid var(--dv-border-strong, #708079); border-radius: 8px; background: var(--dv-bg-surface, #ffffff); transition: border-color 160ms ease-out, box-shadow 160ms ease-out; }
.document-authoring-composer-field:focus-within { border-color: var(--dv-primary, #0d3021); box-shadow: 0 0 0 3px var(--dv-bg-selected, #e4e9e6); }
.document-authoring .document-authoring-composer textarea { flex: 1 1 auto; width: auto; min-width: 0; min-height: 44px; max-height: 168px; margin: 0; padding: 11px 4px; border: 0; border-radius: 0; background: transparent; color: inherit; font: inherit; font-size: 15px; line-height: 1.5; resize: none; overflow-y: auto; }
.document-authoring .document-authoring-composer textarea:focus-visible { outline: none; }
.document-authoring-composer textarea::placeholder { color: var(--dv-text-muted, #50605a); opacity: 1; }
.document-authoring-composer-attach, .document-authoring .document-authoring-composer-send { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; min-height: 44px; padding: 0; border-radius: 8px; cursor: pointer; }
.document-authoring-composer-attach { border: 0; background: transparent; color: var(--dv-trust, #051b11); }
@media (hover: hover) and (pointer: fine) { .document-authoring-composer-attach:hover:not(:disabled) { background: var(--dv-bg-subtle, #eaf3ef); } }
.document-authoring .document-authoring-composer-send.subtle { border: 1px solid var(--dv-trust-border, #93a49c); background: var(--dv-bg-surface, #ffffff); color: var(--dv-trust, #051b11); }
.document-authoring .document-authoring-composer-hint { margin: 0; padding: 0 4px; color: var(--dv-text-muted, #50605a); font-size: 12px; line-height: 1.5; }
.document-authoring-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.document-authoring .btn, body.has-document-authoring .document-authoring .btn { min-height: 44px; white-space: normal; }

/* 사업 정보 패널: 진행 막대 → 항목 묶음. 정리된 항목은 흰 표면으로 올라와 '안착'을 보여 준다. */
.document-authoring-summary { min-width: 0; max-height: 780px; overflow-y: auto; overscroll-behavior: contain; padding: 24px; border: 1px solid var(--da-panel-line); border-radius: 8px; background: var(--da-panel-bg); color: var(--dv-trust, #051b11); }
.document-authoring .document-authoring-summary > summary { display: flex; align-items: center; gap: 10px; min-height: 44px; cursor: pointer; color: var(--dv-trust, #051b11); font-size: 20px; line-height: 1.4; font-weight: 700; }
.document-authoring .document-authoring-summary[open] > summary { margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--da-panel-line); border-radius: 0; }
/* display:flex 가 기본 펼침 표시를 지우므로 접힘·펼침을 알리는 화살표를 직접 그린다. */
.document-authoring .document-authoring-summary > summary::after { content: ""; flex: 0 0 auto; width: 9px; height: 9px; margin: -3px 4px 0 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform 160ms ease-out; }
.document-authoring .document-authoring-summary[open] > summary::after { margin-top: 4px; transform: rotate(-135deg); }
.document-authoring .document-authoring-summary > summary::-webkit-details-marker { display: none; }
.document-authoring-summary-count { margin-left: auto; padding: 3px 9px; border-radius: 999px; background: var(--dv-bg-surface, #ffffff); color: var(--dv-primary, #0d3021); font-size: 12px; font-weight: 650; line-height: 1.4; }
.document-authoring-summary-count:empty { display: none; }
/* 펼친 패널에서는 진행 막대가 같은 사실을 말한다 — 접힌 한 줄에서만 개수를 보인다. */
.document-authoring .document-authoring-summary[open] > summary .document-authoring-summary-count { display: none; }
.document-authoring-summary #documentAuthoringReadiness { padding: 0 0 18px; }
.document-authoring-summary #documentAuthoringReadiness strong { display: block; font-size: 15px; line-height: 1.6; }
.document-authoring .document-authoring-summary #documentAuthoringReadiness p { margin: 8px 0 0; font-size: 13px; color: var(--da-panel-muted); }
.document-authoring .document-authoring-summary #documentAuthoringReadiness .document-authoring-readiness-issue { color: var(--dv-warning-text, #303734); }
.document-authoring-progress { display: grid; gap: 6px; margin-top: 10px; }
.document-authoring-progress-track { display: block; height: 6px; border-radius: 999px; background: var(--dv-bg-surface, #ffffff); overflow: hidden; }
.document-authoring-progress-track i { display: block; width: 100%; height: 100%; border-radius: inherit; background: var(--dv-primary, #0d3021); transform-origin: left center; transform: scaleX(0); transition: transform 320ms cubic-bezier(.2, .8, .2, 1); }
.document-authoring-progress-text { font-size: 13px; line-height: 1.5; color: var(--da-panel-muted); font-weight: 600; }
.document-authoring-material-group { border-top: 1px solid var(--da-panel-line); }
.document-authoring .document-authoring-material-group > summary { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 14px 0; cursor: pointer; font-size: 15px; font-weight: 700; line-height: 1.5; }
.document-authoring-material-group-title { flex: 1 1 auto; min-width: 0; }
.document-authoring-material-group-count { color: var(--da-panel-muted); font-size: 12px; font-weight: 600; }
.document-authoring-material-changed { padding: 2px 8px; border-radius: 999px; background: var(--dv-bg-surface, #ffffff); color: var(--dv-primary, #0d3021); font-size: 12px; font-weight: 600; }
.document-authoring-summary dl { display: grid; gap: 8px; margin: 0; padding: 0 0 20px; }
.document-authoring-material-row { display: grid; grid-template-columns: minmax(84px, .3fr) minmax(0, 1fr); column-gap: 16px; align-items: start; padding: 12px 14px; border-radius: 8px; }
.document-authoring-material-row.is-filled { background: var(--dv-bg-surface, #ffffff); border: 1px solid var(--da-panel-line); }
.document-authoring-material-row.is-empty { padding: 8px 14px; border: 1px dashed var(--da-panel-line); }
.document-authoring-material-row.is-updated { border-color: var(--dv-primary, #0d3021); animation: document-authoring-land 480ms cubic-bezier(.2, .8, .2, 1); }
@keyframes document-authoring-land { from { background-color: var(--dv-bg-selected, #e4e9e6); transform: translateY(4px); } to { background-color: var(--dv-bg-surface, #ffffff); transform: translateY(0); } }
.document-authoring-material-row.is-editing { background: var(--dv-bg-surface, #ffffff); border: 1px solid var(--dv-primary, #0d3021); }
.document-authoring-summary dt { min-width: 0; margin: 0; padding-top: 2px; font-size: 13px; line-height: 1.6; font-weight: 650; color: var(--dv-trust, #051b11); }
.document-authoring-summary dd { min-width: 0; margin: 0; font-size: 15px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--dv-text, #283530); }
.document-authoring-material-row.is-empty dt, .document-authoring-material-row.is-empty dd { padding-top: 0; }
.document-authoring-material-value { display: block; }
.document-authoring-material-empty { display: block; color: var(--da-panel-muted); font-size: 13px; line-height: 1.6; }
.document-authoring-material-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 6px; white-space: normal; }
.document-authoring-material-row.is-empty .document-authoring-material-meta { margin-top: 0; }
.document-authoring-material-status { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; line-height: 1.4; font-weight: 600; color: var(--da-panel-muted); }
.document-authoring-material-status svg { flex: 0 0 auto; color: var(--dv-success-text, #0d3021); }
.document-authoring-material-status.is-user-confirmed, .document-authoring-material-status.is-adopted-plan { color: var(--dv-success-text, #0d3021); }
.document-authoring-material-status.is-conflict { color: var(--dv-danger, #b42318); }
.document-authoring-material-status.is-proposed, .document-authoring-material-status.is-unknown { color: var(--dv-warning-text, #303734); }
/* 지난 문서에서 옮겨 온 값. 초록(이번 대화에서 확인)과 색으로 구분되어야 회원이 자기가 한
   말로 착각하지 않는다. 문제가 아니므로 경고색도 아니다. 옅은 틴트는 구형 모니터에서 흰색으로
   뭉개지므로 알약 배경과 1px 경계를 함께 준다. */
.document-authoring-material-status.is-carried { padding: 2px 8px; border: 1px solid var(--da-panel-line); border-radius: 999px; background: var(--dv-bg-selected, #e4e9e6); color: var(--dv-trust, #051b11); }
/* 행 안의 행동은 작은 알약 버튼 하나 — 밑줄 링크보다 누르는 것으로 읽힌다. 틴트 위에서도 6:1 이상. */
.document-authoring-material-edit { min-width: 44px; min-height: 32px; padding: 5px 12px; border: 1px solid var(--da-panel-line); border-radius: 999px; background: var(--dv-bg-surface, #ffffff); color: var(--dv-primary, #0d3021); font: inherit; font-size: 12px; font-weight: 650; line-height: 1.4; cursor: pointer; transition: background-color 140ms ease-out, border-color 140ms ease-out; }
@media (hover: hover) and (pointer: fine) { .document-authoring-material-edit:hover:not(:disabled) { background: var(--dv-bg-selected, #e4e9e6); border-color: var(--dv-primary, #0d3021); } }
.document-authoring-material-row.is-empty .document-authoring-material-meta { justify-content: space-between; margin-top: 0; }
.document-authoring-material-row.is-empty .document-authoring-material-edit { margin-left: auto; }
/* 채운 항목의 수정은 연필 아이콘 버튼 하나(44px). 기본 상태 표시가 없을 때도 오른쪽 끝에 선다(2026-09-28). */
.document-authoring-material-edit.is-icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; min-width: 44px; height: 44px; min-height: 44px; margin-left: auto; padding: 0; }
.document-authoring-material-editor { display: grid; gap: 8px; white-space: normal; }
.document-authoring .document-authoring-material-editor textarea { width: 100%; min-height: 140px; resize: vertical; padding: 10px; border: 1px solid var(--dv-border-strong, #708079); border-radius: 6px; background: var(--dv-bg-surface, #ffffff); color: var(--dv-text, #283530); font: inherit; line-height: 1.6; }
.document-authoring-material-editor small { font-size: 12px; line-height: 1.6; color: var(--dv-text-muted, #50605a); }
.document-authoring-material-facts { margin-top: 12px !important; padding: 12px 14px 4px; border-top: 1px solid var(--da-panel-line); grid-template-columns: minmax(84px, .3fr) minmax(0, 1fr); column-gap: 16px; row-gap: 12px; }
.document-authoring .document-authoring-material-note { margin: 4px 0 0; }
.document-authoring .document-authoring-summary p { max-width: 72ch; margin: 24px 0 0; font-size: 13px; color: var(--dv-trust, #051b11); }
.document-authoring .bubble .document-authoring-current-chip { padding: 2px 8px; border-radius: 999px; background: var(--dv-bg-selected, #e4e9e6); color: var(--dv-primary, #0d3021); font-size: 12px; font-weight: 650; white-space: nowrap; }
.document-authoring .bubble.is-current-question { border-color: var(--dv-primary, #0d3021); }
/* 옮겨 온 내용 안내. 경고가 아니라 출처를 밝히는 말이므로 경고색을 쓰지 않는다. */
.document-authoring-carried-notice { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--da-panel-line); border-radius: 8px; background: var(--dv-bg-selected, #e4e9e6); }
.document-authoring .document-authoring-carried-notice strong { display: block; font-size: 13px; line-height: 1.5; color: var(--dv-trust, #051b11); }
/* 틴트 위 보조 문구는 회색이 아니라 네이비 계열로 낮춘다(파일 머리 주석의 대표 지시). */
.document-authoring .document-authoring-summary .document-authoring-carried-notice p { margin: 4px 0 8px; font-size: 13px; line-height: 1.6; color: var(--da-panel-muted); }
.document-authoring-carried-notice .btn { min-height: 32px; padding: 5px 12px; font-size: 12px; }
.document-authoring-attention { margin-top: 10px; padding: 10px 12px; border: 1px solid var(--dv-gold-line, #bfc6c3); border-radius: 8px; background: var(--dv-warning-surface, #f0f3f2); }
.document-authoring .document-authoring-attention strong { display: block; font-size: 13px; color: var(--dv-warning-text, #303734); }
.document-authoring .document-authoring-summary .document-authoring-attention p { margin: 4px 0 0; color: var(--dv-warning-text, #303734); }
.document-authoring .document-authoring-summary .document-authoring-sources { margin-top: 12px; border-top: 1px solid var(--da-panel-line); }
.document-authoring .document-authoring-sources > summary { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 14px 0; cursor: pointer; color: var(--dv-trust, #051b11); font-size: 15px; font-weight: 700; line-height: 1.5; }
.document-authoring .document-authoring-sources > summary::after { content: ""; margin-left: auto; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.document-authoring .document-authoring-sources[open] > summary::after { transform: rotate(-135deg); }
.document-authoring .document-authoring-sources > summary::-webkit-details-marker { display: none; }
.document-authoring .document-authoring-sources > p { margin: 0 0 8px; }
.document-authoring-facts-group > dl { padding-top: 0; }
.document-authoring-source { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 10px; margin-top: 8px; padding: 12px 14px; align-items: start; border: 1px solid var(--da-panel-line); border-radius: 8px; background: var(--dv-bg-surface, #ffffff); }
.document-authoring-source input { width: 18px; height: 18px; margin: 4px 0 0; accent-color: var(--dv-primary, #0d3021); }
.document-authoring-source strong, .document-authoring-source small { display: block; }
.document-authoring-source strong { color: var(--dv-trust, #051b11); }
.document-authoring-source small { margin-top: 4px; font-size: 13px; line-height: 1.6; color: var(--dv-text-muted, #50605a); }
.document-authoring-source blockquote { margin: 8px 0 0; font-size: 15px; line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--dv-text, #283530); }
.document-authoring .document-authoring-sources .document-authoring-actions { margin-top: 12px; }
.document-authoring-status { min-height: 24px; margin: 12px 0; font-size: 13px; }
.document-authoring-status.is-error { color: var(--dv-danger, #b42318); }
.document-authoring-hub { margin: 24px 0; padding: 24px; background: var(--dv-trust-soft, #ecefee); border: 0; border-radius: 8px; }
.document-authoring-hub .document-authoring-head { margin-bottom: 24px; }
.document-authoring-hub .document-authoring-head p { color: var(--dv-trust, #051b11); }
.document-authoring-hub-next { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 16px; }
body.has-document-authoring .bp-side, body.has-document-authoring .bp-hero { display: none !important; }
body.has-document-authoring .feature-content > .document-authoring { padding: 8px 0 0; }
/* Let the active writing workspace use the window, including tall/wide monitors. */
body.has-document-authoring[data-ui-generation="2"] .feature-main.container,
body.has-document-authoring[data-ui-generation="2"] .feature-main > .feature-grid { max-width: none; }
body.has-document-authoring[data-ui-generation="2"] .feature-main:has(#documentAuthoring:not([hidden])) { padding-bottom: 0; }
body.has-document-authoring[data-ui-generation="2"] .feature-content:has(> #documentAuthoring:not([hidden])) { row-gap: 0; }
body.has-document-authoring[data-ui-generation="2"] .feature-content,
body.has-document-authoring[data-ui-generation="2"] .bp-layout { max-width: none; width: 100%; }
body.has-document-authoring #documentAuthoring {
  display: flex; flex-direction: column; margin-bottom: 0;
  min-height: max(560px, calc(100dvh - var(--authoring-top, 100px) - 16px));
}
body.has-document-authoring #documentAuthoringWork { display: flex; flex: 1; min-height: 0; }
body.has-document-authoring #documentAuthoringWork > .document-authoring-layout { flex: 1; min-width: 0; min-height: 0; }
body.has-document-authoring #documentAuthoring .document-authoring-conversation,
body.has-document-authoring #documentAuthoring .document-authoring-summary { max-height: none; }
@media (min-width: 1025px) {
  body.has-document-authoring #documentAuthoring { height: max(560px, calc(100dvh - var(--authoring-top, 100px) - 16px)); }
  body.has-document-authoring #documentAuthoring .document-authoring-conversation,
  body.has-document-authoring #documentAuthoring .document-authoring-summary { min-height: 0; }
  body.has-document-authoring #documentAuthoring .document-authoring-thread { min-height: 100px; }
  body.has-document-authoring #documentAuthoring .document-authoring-chat-head,
  body.has-document-authoring #documentAuthoring .document-authoring-composer,
  body.has-document-authoring #documentAuthoring > :not(#documentAuthoringWork) { flex-shrink: 0; }
}
@media (max-width: 1024px) {
  .document-authoring-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .document-authoring-summary { max-height: none; overflow-y: visible; }
  .document-authoring-conversation > .document-authoring-summary { margin: 0 16px; border-radius: 8px; }
  .document-authoring-conversation > .document-authoring-summary:not([open]) { padding: 0 16px; }
  .document-authoring-conversation > .document-authoring-summary:not([open]) > summary { font-size: 15px; }
  .document-authoring-conversation > .document-authoring-review { margin-top: 16px; }
  .document-authoring-conversation { max-height: none; }
  .document-authoring-thread { flex: 1 1 auto; max-height: 440px; }
}
/* 740px 가로 화면에서는 본문 여백을 빼면 제목과 문서 목록 링크가 한 줄에
   함께 들어갈 폭이 없다. 이 중간 폭부터는 읽는 순서대로 쌓아 가로 스크롤과
   한 글자씩 떨어지는 제목을 모두 막는다. */
@media (max-width: 800px) {
  .document-authoring-head { flex-direction: column; align-items: stretch; }
  .document-authoring-head > * { min-width: 0; }
}
@media (max-width: 640px) {
  .document-authoring-modes { grid-template-columns: minmax(0, 1fr); }
  .document-authoring h2, .document-authoring .document-authoring-head h2 { font-size: 20px; }
  .document-authoring-hub { padding: 16px; }
  .document-authoring-chat-head { flex-wrap: wrap; row-gap: 8px; padding: 12px 16px; }
  .document-authoring-chat-identity { flex: 1 1 100%; }
  .document-authoring .document-authoring-chat-caption { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .document-authoring-thread { min-height: 160px; }
  .document-authoring-thread { padding: 16px; max-height: 400px; }
  .document-authoring-review, .document-authoring-composer { padding-left: 16px; padding-right: 16px; }
  .document-authoring-summary { padding: 16px; }
  .document-authoring-conversation > .document-authoring-summary { margin: 0 12px; }
  .document-authoring-modes { gap: 16px; }
  .document-authoring .document-authoring-mode strong { font-size: 17px; }
  .document-authoring-mode { padding: 16px; }
  .document-authoring-mode[aria-pressed="true"] { padding: 15px; }
  .document-authoring-material-row { grid-template-columns: minmax(0, 1fr); row-gap: 4px; padding: 10px 12px; }
  .document-authoring .bubble { max-width: 94%; padding: 10px 12px; }
  .document-authoring-actions .btn { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
  .document-authoring-mode, .document-authoring-composer-field, .document-authoring-progress-track i { transition: none; }
  .document-authoring-typing span, .document-authoring-material-row.is-updated { animation: none; }
  .document-authoring-typing span { opacity: .7; }
  .document-authoring-thread { scroll-behavior: auto; }
}

/* 전자동·반자동 작성 선택(2026-09-14 대표 지시). 두 값 중 하나를 고르는 알약형 라디오 — 선택한 쪽만 채운다. */
.document-authoring-chat-head { flex-wrap: wrap; }
.document-authoring-chat-tools { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.document-authoring-chat-writing-mode { display: flex; flex: 1 1 100%; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.document-authoring-chat-writing-mode small { flex: 1 1 16ch; color: var(--dv-text-muted, #50605a); font-size: 13px; line-height: 1.45; word-break: keep-all; }
.document-authoring .bubble-head time { margin-left: auto; white-space: nowrap; }
.document-authoring-writing-mode { display: inline-flex; flex: 0 0 auto; padding: 3px; border: 1px solid var(--dv-trust-border, #93a49c); border-radius: 999px; background: var(--dv-bg-page, #f4f9f7); }
.document-authoring-writing-mode-option { position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.document-authoring-writing-mode-option input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.document-authoring-writing-mode-option span { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; border-radius: 999px; color: var(--dv-text-muted, #50605a); font-size: 13px; line-height: 1.3; font-weight: 700; white-space: nowrap; transition: background-color .15s ease, color .15s ease; }
.document-authoring-writing-mode-option input:checked + span { background: var(--dv-primary, #0d3021); color: #fff; }
.document-authoring-writing-mode-option:hover input:not(:checked):not(:disabled) + span { color: var(--dv-trust, #051b11); background: var(--dv-bg-selected, #e4e9e6); }
.document-authoring-writing-mode-option input:focus-visible + span { outline: 2px solid var(--dv-primary, #0d3021); outline-offset: 2px; }
.document-authoring-writing-mode-option input:disabled + span { opacity: .65; cursor: wait; }
.document-authoring-material-status.is-composed { padding: 2px 8px; border: 1px solid var(--dv-trust-border, #93a49c); border-radius: 999px; background: var(--dv-bg-selected, #e4e9e6); color: var(--dv-trust, #051b11); }

@media (prefers-reduced-motion: reduce) { .document-authoring-writing-mode-option span { transition: none; } }

/* 작성 준비 화면을 없앤 뒤의 자리(2026-09-28 대표 지시). 방식·가져올 내용은 대화 머리의 조용한 링크 하나가 여는
   작은 메뉴에서만 바꾼다. 첫 화면에 선택지를 늘어놓지 않는다. */
.document-authoring .document-authoring-chat-link { flex: 0 0 auto; min-height: 44px; padding: 0 4px; border: 0; background: none; color: var(--dv-primary, #0d3021); font: inherit; font-size: 13px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
@media (hover: hover) and (pointer: fine) { .document-authoring .document-authoring-chat-link:hover { color: var(--dv-trust, #051b11); } }
.document-authoring .document-authoring-chat-link[aria-expanded="true"] { text-decoration: none; color: var(--dv-trust, #051b11); }
.document-authoring-context-menu { display: grid; flex: 1 1 100%; gap: 10px; max-height: min(60vh, 440px); overflow-y: auto; padding: 14px 16px; border: 1px solid var(--dv-border, #b2c2bb); border-radius: 8px; background: var(--dv-bg-page, #f4f9f7); overscroll-behavior: contain; }
.document-authoring-context-menu[hidden] { display: none; }
.document-authoring-context-menu-label { color: var(--dv-trust, #051b11); font-size: 13px; font-weight: 700; }
.document-authoring-context-menu-body { display: grid; gap: 10px; padding-top: 10px; border-top: 1px solid var(--dv-border, #b2c2bb); }
.document-authoring-context-menu-body p { margin: 0; color: var(--dv-text, #283530); font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
.document-authoring-context-menu-note { color: var(--dv-text-muted, #50605a); font-size: 13px; line-height: 1.5; }
.document-authoring-context-menu .document-authoring-context-choices { display: grid; gap: 2px; margin: 0; }
.document-authoring-context-menu .document-authoring-context-choices label { display: flex; align-items: center; gap: 10px; min-height: 44px; color: var(--dv-text, #283530); font-size: 14px; cursor: pointer; }
.document-authoring-context-menu input { flex: 0 0 auto; width: 18px; height: 18px; accent-color: var(--dv-primary, #0d3021); }
/* '새로 작성' 아래 '다른 사업자 문서예요'(2026-09-28). 라디오 칸과 틈(18px + 10px)만큼 들여 새로 작성에 딸린 선택으로 읽힌다. 44px 칸은 그대로다. */
.document-authoring-context-menu .document-authoring-context-choices .document-authoring-context-separate { align-items: flex-start; padding: 6px 0 6px 28px; }
.document-authoring-context-menu .document-authoring-context-separate input { margin: 2px 0 0; }
.document-authoring-context-separate span { display: grid; gap: 2px; min-width: 0; }
/* 딸린 선택이라 위 라디오 이름(보통 굵기)보다 굵게 쓰지 않는다. */
.document-authoring-context-separate strong { color: var(--dv-text, #283530); font-size: 14px; font-weight: 400; line-height: 1.4; }
.document-authoring-context-separate small { color: var(--dv-text-muted, #50605a); font-size: 12.5px; line-height: 1.45; word-break: keep-all; overflow-wrap: anywhere; }
.document-authoring-context-source { display: grid; gap: 6px; color: var(--dv-trust, #051b11); font-size: 13px; font-weight: 700; }
.document-authoring-context-menu select { display: block; width: 100%; min-height: 44px; font: inherit; font-weight: 400; }
.document-authoring-context-menu .document-authoring-context-field { margin: 0; font-size: 14px; }
.document-authoring-context-menu .document-authoring-context-field small { color: var(--dv-text-muted, #50605a); }
.document-authoring-context-menu > .document-authoring-chat-writing-mode { margin: 0; }
.document-authoring-context-menu :is(input, select, button):focus-visible { outline: 2px solid var(--dv-primary, #0d3021); outline-offset: 2px; }
/* 나아갈 수 없을 때의 한 줄: 까닭 문장 바로 옆에 갈 길(다시 불러오기·새로 작성으로 바꾸기). 폰에서도 문장과 붙어 선다. */
.document-authoring-context-menu-body .document-authoring-context-reload { display: flex; flex-wrap: wrap; align-items: center; gap: 0 8px; }
.document-authoring-context-menu-body .document-authoring-context-reload .document-authoring-chat-link { margin-left: 0; padding: 0; text-align: left; }
/* 대화 중 다른 사업 설명이 감지됐을 때 입력창 자리에 서는 한 줄 확인. 대화를 가리지 않는다. */
.document-authoring-context-prompt { display: grid; gap: 8px; padding: 14px 20px; border-top: 1px solid var(--dv-border, #b2c2bb); background: var(--dv-bg-surface, #ffffff); }
.document-authoring-context-prompt[hidden] { display: none; }
.document-authoring-context-prompt strong { color: var(--dv-trust, #051b11); font-size: 15px; }
.document-authoring-context-prompt p { margin: 0; color: var(--dv-text, #283530); font-size: 14px; line-height: 1.55; overflow-wrap: anywhere; }
@media (max-width: 640px) {
  .document-authoring .document-authoring-chat-link { margin-left: auto; }
  .document-authoring-context-menu { padding: 12px; }
  .document-authoring-context-prompt { padding: 12px 16px; }
}
