#diagnosisFormPanel > :not(#diagnosisV2Form) { display: none !important; }
#diagnosisFormPanel { padding: 20px; border-radius: 8px; }
.dv2-heading { margin-bottom: 12px; }
.dv2-heading > span, .dv2-label { color: #5b4ce5; font-size: 12px; font-weight: 600; }
.dv2-heading h3 { font-size: 22px; margin: 6px 0; line-height: 1.4; }
#diagnosisV2Form fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.dv2-section { padding: 16px 0; border-bottom: 1px solid #e1e5ee; }
.dv2-section h4 { margin: 0 0 12px; font-size: 16px; }
.dv2-section h5 { margin: 12px 0; font-size: 15px; }
.dv2-section p, .dv2-section li, .dv2-section dd { font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.dv2-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px 12px; }
.dv2-wide { grid-column: 1 / -1; }
.dv2-fields label, .dv2-note, .dv2-feedback label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; color: #526077; min-width: 0; }
#diagnosisV2Form input:not([type=radio]):not([type=checkbox]):not([type=file]), .dv2-fields select, .dv2-feedback input, .dv2-feedback select, .dv2-report select, #diagnosisV2Form textarea, .dv2-feedback textarea { width: 100%; min-width: 0; box-sizing: border-box; padding: 11px 10px; border: 1px solid #dce1eb; border-radius: 8px; background: #fff; color: #162133; font: inherit; font-size: 14px; }
.dv2-issues { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.dv2-issues label { display: flex; align-items: center; gap: 7px; padding: 10px; background: #f3f4fa; border-radius: 8px; font-size: 14px; min-height: 44px; box-sizing: border-box; }
.dv2-issues label:has(input:checked) { color: #4b3edf; background: #efedff; outline: 1px solid #b8b1ff; }
#diagnosisV2Form .dv2-issues input, #diagnosisV2Form .dv2-check input { accent-color: #6050ef; flex: 0 0 16px; width: 16px; height: 16px; min-height: 16px; padding: 0; margin: 0; box-shadow: none; appearance: auto; }
.dv2-issues span { min-width: 0; flex: 1; line-height: 1.5; white-space: normal; overflow-wrap: anywhere; }
.dv2-fields .dv2-check, .dv2-check { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 13px; }
.dv2-section summary { font-size: 14px; cursor: pointer; font-weight: 600; padding: 4px 0; }
.dv2-note { margin-top: 14px; }
.dv2-note textarea, .dv2-feedback textarea { min-height: 84px; resize: vertical; }
.dv2-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 14px; }
.dv2-photos > div { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.dv2-photos strong { font-size: 12px; font-weight: 500; }
.dv2-photos img { width: 100%; aspect-ratio: 1; object-fit: contain; background: #edf0f5; border-radius: 6px; }
.dv2-photos img[src=""] { display: none; }
.dv2-upload { text-align: center; cursor: pointer; padding: 8px; border: 1px dashed #c8c3ee; border-radius: 6px; font-size: 12px; }
.dv2-upload input { width: 100%; font-size: 11px; margin-top: 8px; }
.dv2-photos button { padding: 8px 4px; font-size: 12px; white-space: normal; }
.dv2-submit { padding: 16px 0 6px; }
.dv2-submit button, .dv2-feedback button { width: 100%; border: none; background: #5e50e9; color: #fff; border-radius: 8px; padding: 13px; min-height: 44px; font-size: 14px; font-weight: 600; }
.dv2-submit button:disabled { opacity: 0.6; }
.dv2-status, .dv2-feedback-status { color: #67758b; font-size: 12px; line-height: 1.6; }
.dv2-report { display: block; padding: 0 !important; gap: 0 !important; }
.dv2-report .dv2-section { background: transparent; border-radius: 0; box-shadow: none; }
.dv2-conclusion h4 { margin-top: 10px; font-size: 18px; }
.dv2-boundary { color: #778294; }
.dv2-today { border-left: 3px solid #239a7b; padding-left: 14px; }
.dv2-today h4 { margin: 8px 0; }
.dv2-evidence { padding-left: 18px; color: #59667a; margin: 10px 0 0; }
.dv2-action { padding: 18px 0; border-bottom: 1px dashed #dbe0eb; }
.dv2-action:last-child { border-bottom: none; padding-bottom: 0; }
.dv2-action-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dv2-action-head > span { color: #268a72; font-size: 12px; font-weight: 600; }
.dv2-report .dv2-action-head select { width: 100px; padding: 7px 10px; font-size: 13px; }
.dv2-action ol { padding-left: 22px; }
.dv2-action dt { color: #667389; font-size: 12px; margin-top: 10px; }
.dv2-action dd { margin: 4px 0 0; }
.dv2-tools, .dv2-footer { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dv2-tools button, .dv2-footer button { min-height: 42px; padding: 10px 12px; border: 1px solid #dce1eb; border-radius: 8px; font-size: 13px; background: #fff; color: #27384c; }
.dv2-feedback { display: grid; gap: 14px; margin-top: 16px; }
.dv2-analysis { padding: 12px 0; }
.dv2-footer { padding: 4px 0 16px; }
@media (max-width: 360px) { #diagnosisFormPanel { padding: 14px; } .dv2-photos { grid-template-columns: 1fr; } .dv2-photos img { max-height: 160px; } }

html body.subpage-scroll-lock #subpage.diagnosis-mode,
html body.subpage-scroll-lock #subpage.material-detail-mode:has(.dv2-report) {
  top: var(--creation-plan-viewport-top, 0px);
  height: var(--creation-plan-viewport-height, 100dvh);
  bottom: auto;
  padding: 0;
}
#subpage.diagnosis-mode .subpage-body { min-height: 0 !important; padding-bottom: max(18px, env(safe-area-inset-bottom, 0px)); scroll-padding-bottom: 18px; }

.dv2-report { max-width: 780px; margin: 0 auto; color: #162133; }
.dv2-report .dv2-heading h3 { font-size: 20px; overflow-wrap: anywhere; }
.dv2-short-copy, .dv2-proof-line, .dv2-step-list, .dv2-observe, .dv2-validation, .dv2-solution { font-size: 14px; line-height: 1.65; overflow-wrap: anywhere; }
.dv2-report .dv2-boundary { font-size: 12px; line-height: 1.6; margin-top: 8px; }
.dv2-report .dv2-read-more { display: block; margin: 3px 0 0; }
.dv2-report .dv2-read-more summary { font-size: 12px; font-weight: 500; color: #5b4ce5; padding: 3px 0; }
.dv2-read-more p { margin: 6px 0; color: #526077; }
.dv2-flow { margin-top: 14px; }
.dv2-flow ol { display: grid; grid-template-columns: repeat(var(--dv2-flow-count), minmax(0, 1fr)); gap: 6px; list-style: none; padding: 0; margin: 8px 0 0; }
.dv2-flow li { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 4px; border-bottom: 2px solid #dce1eb; padding: 8px 3px; min-width: 0; color: #697587; }
.dv2-flow li > span { font-size: 11px; color: #8b95a5; }
.dv2-flow li strong { font-size: 12px; font-weight: 500; line-height: 1.4; }
.dv2-flow li small { font-size: 10px; }
.dv2-flow li.is-focus { background: #eaf7f2; color: #167557; border-color: #239a7b; }
.dv2-flow li.is-focus > span { color: #167557; }
.dv2-report .dv2-proof { padding: 12px 0; }
.dv2-report .dv2-proof h4 { font-size: 13px; margin: 0 0 6px; }
.dv2-proof-line { color: #526077; font-size: 13px; }
.dv2-proof > details > summary { font-size: 12px; color: #5b4ce5; font-weight: 500; }
.dv2-report .dv2-today { border-left: 0; padding-left: 0; }
.dv2-report .dv2-today > h4 { font-size: 18px; line-height: 1.5; margin: 8px 0 12px; }
.dv2-report .dv2-action-head { margin-top: 8px; }
.dv2-resource-row { display: flex; flex-wrap: wrap; gap: 10px 22px; padding: 10px 0; margin: 6px 0; color: #687589; font-size: 12px; border-bottom: 1px solid #edf0f5; }
.dv2-resource-row b { color: #162133; font-size: 18px; font-weight: 600; }
.dv2-report .dv2-step-list { padding: 0; margin: 14px 0; list-style: none; }
.dv2-step-list > li { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 10px; margin: 12px 0; }
.dv2-step-number { display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: #edf6f2; color: #167557; font-size: 12px; line-height: 1; }
.dv2-step-list small { display: block; font-size: 12px; color: #697587; }
.dv2-observe { border-left: 3px solid #dfb967; padding: 6px 0 6px 12px; color: #526077; }
.dv2-observe > b { display: block; color: #856124; font-size: 12px; margin-bottom: 2px; }
.dv2-report .dv2-action-notes { margin-top: 12px; }
.dv2-report .dv2-action-notes > summary { font-size: 12px; color: #697587; font-weight: 500; }
.dv2-report .dv2-week { list-style: none; padding: 0 0 0 12px; margin: 0; border-left: 2px solid #dce8e2; }
.dv2-week li { position: relative; padding: 4px 0 8px; }
.dv2-week li::before { content: ""; position: absolute; left: -17px; top: 19px; width: 8px; height: 8px; border-radius: 50%; background: #239a7b; }
.dv2-week button { width: 100%; display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 8px; text-align: left; padding: 8px 0; border: 0; border-radius: 0; background: transparent; color: #162133; min-height: 44px; box-shadow: none; white-space: normal; }
.dv2-week button:hover { background: #f4f8f6; }
.dv2-week button > span { color: #167557; font-size: 12px; }
.dv2-week button > strong { font-size: 13px; line-height: 1.5; font-weight: 500; overflow-wrap: anywhere; }
.dv2-report [data-dv2-action], .dv2-report [data-dv2-validation] { scroll-margin-top: 16px; }
.dv2-validation { margin-top: 16px; padding: 12px 0; border-top: 1px solid #edf0f5; color: #526077; }
.dv2-validation > div { margin: 8px 0; }
.dv2-validation div > div { margin-top: 6px; }
.dv2-validation b { color: #167557; font-size: 12px; margin-right: 8px; }
.dv2-validation h5, .dv2-validation h6 { font-size: 14px; margin: 0 0 10px; color: #162133; }
.dv2-solutions > summary { margin-bottom: 12px; }
.dv2-solutions [data-dv2-solution], .dv2-material-button { padding: 10px 12px; min-height: 44px; border-radius: 8px; border: 1px solid #dce1eb; background: #fff; color: #27384c; font-size: 13px; white-space: normal; }
.dv2-solution { padding: 16px 0; border-top: 1px solid #dce1eb; }
.dv2-solution header h5 { margin: 6px 0; font-size: 16px; }
.dv2-solution h6 { font-size: 13px; margin: 14px 0 8px; }
.dv2-preparations ul { padding-left: 18px; margin: 8px 0; }
.dv2-snippet { padding: 10px 0; border-bottom: 1px solid #edf0f5; }
.dv2-snippet-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dv2-snippet-head strong { min-width: 0; font-size: 13px; }
.dv2-snippet button { flex: 0 0 auto; border: 1px solid #dce1eb; background: #fff; color: #5b4ce5; padding: 6px 12px; font-size: 12px; min-height: 40px; border-radius: 6px; }
.dv2-snippet-copy { margin: 6px 0; color: #526077; }
.dv2-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .dv2-report { scroll-behavior: auto; } }
