/* Analysis shares the application tokens and components. */
.ai-analysis-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ai-analysis-card { min-width: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.ai-analysis-card.is-summary { grid-column: 1 / -1; }
.ai-analysis-card summary { min-height: 88px; padding: 16px 38px 16px 16px; position: relative; display: grid; gap: 5px; cursor: pointer; list-style: none; }
.ai-analysis-card summary::-webkit-details-marker { display: none; }
.ai-analysis-card summary > strong { color: var(--ink); font-size: 14px; font-weight: 600; line-height: 1.4; }
.ai-card-category { color: var(--accent-ink); font-size: 12px; font-weight: 650; letter-spacing: .035em; }
.ai-card-excerpt { max-height: 42px; overflow: hidden; color: var(--muted); font-size: 12px; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ai-card-disclosure { position: absolute; right: 16px; top: 24px; color: var(--muted); font-size: 20px; }
.ai-analysis-card[open] .ai-card-disclosure { transform: rotate(45deg); }
.ai-analysis-card[open] .ai-card-excerpt { display: none; }
.ai-card-body { padding: 0 16px 16px; }
.ai-card-body p, .ai-card-body li { margin: 0; color: var(--ink-soft); font-size: 14px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-card-body ol { margin: 0; padding-left: 20px; }
.ai-card-body li + li { margin-top: 10px; }
.dialog:has(.ai-analysis-form) { width: min(1240px, 100%); }
.ai-analysis-form > .dialog-body { padding: 0; }
.ai-analysis-form .analysis-history { margin: 18px 24px 24px; }
.ai-analysis-context { margin: 20px 24px; padding: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.ai-analysis-context > summary { min-height: 52px; padding: 14px 16px; color: var(--ink-soft); font-size: 14px; font-weight: 600; cursor: pointer; }
.ai-analysis-context > .analysis-controls { padding: 0 16px 18px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.ai-analysis-context .analysis-controls > .form-group:nth-child(2), .ai-analysis-context .analysis-controls > .analysis-files-box { grid-column: 1 / -1; }
.ai-analysis-context .analysis-context { margin: 0 16px 16px; }
.ai-analysis-chat-host { padding: 0 24px; }
.ai-chat-workspace { min-width: 0; display: grid; grid-template-columns: minmax(280px, .9fr) minmax(330px, 1.1fr); align-items: start; overflow: hidden; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.ai-chat-conversation, .ai-chat-preview { min-width: 0; }
.ai-chat-conversation { display: flex; flex-direction: column; align-self: stretch; background: var(--surface); border-right: 1px solid var(--line); }
.ai-chat-heading, .ai-preview-heading { min-height: 78px; padding: 18px; display: flex; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); }
.ai-chat-heading strong, .ai-preview-heading strong { display: block; font-size: 14px; font-weight: 600; }
.ai-chat-heading small, .ai-preview-heading small { margin-top: 4px; display: block; color: var(--muted); font-size: 12px; }
.ai-assistant-mark { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; color: var(--accent-ink); background: var(--accent-soft); border-radius: var(--radius-sm); font-size: 12px; font-weight: 700; }
.ai-chat-transcript { min-height: 260px; max-height: 510px; padding: 20px 18px; overflow-y: auto; overscroll-behavior: contain; display: grid; align-content: start; gap: 20px; scrollbar-width: thin; }
.ai-chat-welcome { padding: 22px 3px; }
.ai-chat-welcome > strong { color: var(--ink); font-size: 19px; letter-spacing: -.02em; }
.ai-chat-welcome > p { margin: 10px 0 18px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.ai-chat-suggestions { display: flex; flex-wrap: wrap; gap: 8px; }
.ai-chat-suggestions button { min-height: 38px; padding: 7px 10px; color: var(--ink-soft); background: var(--surface-soft); border: 1px solid var(--line); border-radius: 8px; font-size: 12px; }
.ai-chat-suggestions button:hover { color: var(--accent-ink); background: var(--accent-soft); border-color: var(--accent-line); }
.ai-chat-turn { min-width: 0; display: grid; gap: 14px; }
.ai-chat-message { min-width: 0; padding: 15px; border-radius: 12px; }
.ai-chat-message.is-user { max-width: 96%; justify-self: end; color: var(--ink); background: var(--surface-strong); border-bottom-right-radius: 3px; }
.ai-chat-message.is-assistant { padding-inline: 0; background: var(--surface); }
.ai-message-author { display: block; color: var(--muted); font-size: 12px; font-weight: 600; }
.is-assistant .ai-message-author { color: var(--accent-ink); }
.ai-chat-message p { margin: 7px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-response-meta, .ai-turn-note { margin-top: 9px; display: block; color: var(--muted); font-size: 12px; }
.ai-previous-answer { margin-top: 10px; }
.ai-previous-answer > summary { padding: 5px 0; color: var(--ink-soft); font-size: 12px; cursor: pointer; }
.ai-previous-answer .ai-analysis-cards { margin-top: 8px; grid-template-columns: 1fr; }
.ai-chat-status { padding: 13px; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; color: var(--ink-soft); background: var(--surface-soft); border: 1px solid var(--line); border-radius: var(--radius-sm); }
.ai-chat-status > span { min-width: 0; flex: 1 1 160px; }
.ai-chat-status strong, .ai-chat-status small { display: block; }
.ai-chat-status strong { font-size: 14px; font-weight: 600; }
.ai-chat-status small { margin-top: 4px; color: var(--muted); font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.ai-chat-status > .spinner { flex: 0 0 auto; color: var(--accent-ink); }
.ai-chat-status.is-error { color: var(--red); background: var(--red-soft); border-color: #f3d0d0; }
.ai-chat-composer { margin-top: auto; padding: 16px 18px; background: var(--surface); border-top: 1px solid var(--line); }
.ai-chat-composer .textarea { min-height: 100px; max-height: 240px; resize: vertical; font-size: 14px; }
.ai-composer-footer { margin-top: 11px; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
.ai-composer-footer > small { color: var(--muted); font-size: 12px; }
.ai-composer-footer .btn { min-height: 40px; font-size: 14px; }
.ai-composer-footer .btn > span { font-size: 19px; }
.ai-refinement-target { margin-bottom: 9px; padding: 7px 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; color: var(--accent-ink); background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: 7px; font-size: 12px; }
.ai-refinement-target button { width: 30px; height: 30px; flex: 0 0 auto; padding: 0; background: transparent; border: 0; border-radius: 5px; font-size: 20px; }
.ai-chat-preview { background: var(--surface-soft); }
.ai-preview-heading { justify-content: space-between; }
.ai-preview-heading > span { min-width: 0; }
.ai-part-grid { max-height: 300px; padding: 14px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.ai-part-card { min-width: 0; min-height: 86px; padding: 12px; display: grid; align-content: start; gap: 4px; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: left; }
.ai-part-card:hover { border-color: #bcc7d4; }
.ai-part-card.active { background: #fffaf1; border-color: #d9a24a; box-shadow: inset 3px 0 var(--accent); }
.ai-part-card > span { color: var(--accent-ink); font-size: 12px; font-weight: 600; }
.ai-part-card strong { overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.ai-part-card small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.ai-part-detail { min-height: 208px; margin: 0 14px 14px; padding: 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); }
.ai-part-detail h3 { margin: 5px 0 14px; color: var(--ink); font-size: 18px; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; overflow-wrap: anywhere; }
.ai-part-detail p, .ai-part-detail li { color: var(--ink-soft); font-size: 14px; line-height: 1.8; white-space: pre-wrap; overflow-wrap: anywhere; }
.ai-part-detail p { margin: 0 0 18px; }
.ai-part-detail ol { padding-left: 20px; }
.ai-part-detail li + li { margin-top: 10px; }
.ai-preview-placeholder { min-height: 346px; padding: 40px; display: grid; align-content: center; justify-items: center; text-align: center; }
.ai-preview-placeholder > span { width: 52px; height: 52px; margin-bottom: 14px; display: grid; place-items: center; color: var(--accent-ink); background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: 14px; font-size: 26px; }
.ai-preview-placeholder strong { font-size: 15px; font-weight: 600; }
.ai-preview-placeholder p { max-width: 300px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.ai-apply-note { margin: 0; padding: 14px 18px; color: var(--muted); border-top: 1px solid var(--line); font-size: 12px; line-height: 1.6; }
.ai-new-report-chat { margin-top: 20px; }
.ai-new-report-chat .ai-chat-workspace { grid-template-columns: 1fr; }
.ai-new-report-chat .ai-chat-conversation { border-right: 0; }
.ai-new-report-chat .ai-chat-preview { border-top: 1px solid var(--line); }
.ai-new-report-chat .ai-chat-transcript { min-height: 180px; max-height: 330px; }
.ai-new-report-chat .ai-part-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: 240px; }
@media (min-width: 1001px) {
  .ai-analysis-chat-host .ai-chat-workspace { height: clamp(370px, calc(100dvh - 390px), 660px); align-items: stretch; }
  .ai-analysis-chat-host .ai-chat-conversation { min-height: 0; }
  .ai-analysis-chat-host .ai-chat-transcript { min-height: 0; max-height: none; flex: 1 1 auto; }
  .ai-analysis-chat-host .ai-chat-composer, .ai-analysis-chat-host .ai-chat-heading { flex: 0 0 auto; }
  .ai-analysis-chat-host .ai-chat-preview { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; }
}
@media (max-width: 1000px) {
  .ai-chat-workspace { grid-template-columns: 1fr; }
  .ai-chat-conversation { border-right: 0; }
  .ai-chat-preview { border-top: 1px solid var(--line); }
  .ai-chat-transcript { min-height: 220px; max-height: 370px; }
  .ai-part-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); max-height: 240px; }
}
@media (max-width: 700px) {
  .ai-analysis-chat-host { padding: 0 12px; }
  .ai-analysis-context { margin: 14px 12px; }
  .ai-analysis-context > .analysis-controls { grid-template-columns: 1fr; }
  .ai-analysis-context .analysis-controls > * { grid-column: 1 !important; }
  .ai-analysis-form .analysis-history { margin: 14px 12px; }
  .ai-chat-heading, .ai-preview-heading { padding: 15px; }
  .ai-chat-transcript { padding: 15px; }
  .ai-chat-composer { padding: 15px; }
  .ai-chat-composer .textarea { font-size: 16px; }
  .ai-analysis-cards { grid-template-columns: 1fr; }
  .ai-part-grid, .ai-new-report-chat .ai-part-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ai-composer-footer .btn { min-height: 44px; }
  .ai-preview-placeholder { min-height: 260px; padding: 30px 20px; }
}
