wa-details.optional-details { display: block; margin: 1rem 0; }
wa-details::part(header) { font-weight: 600; padding: 1rem; }
.photo-controls, .photo-actions { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; margin: .75rem 0; }
.photo-thumbnails, .photo-results { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 1rem; }
.photo-thumb, .photo-result { padding: .85rem; border: 1px solid #cbd5e1; border-radius: .75rem; background: #fff; min-width: 0; }
.photo-thumb img, .photo-result img { width: 100%; height: 160px; object-fit: contain; background: #e2e8f0; border-radius: .4rem; }
.photo-thumb label { display: grid; gap: .35rem; margin-top: .75rem; font-size: .9rem; }
.photo-thumb input, .photo-thumb select { width: 100%; min-height: 44px; box-sizing: border-box; }
.camera-dialog { width: min(650px, calc(100vw - 2rem)); max-height: 90dvh; overflow: auto; border: 0; border-radius: 1rem; padding: 1.25rem; box-sizing: border-box; }
.camera-dialog::backdrop { background: #0f172acc; }
.camera-dialog video { width: 100%; max-height: 50dvh; background: #0f172a; border-radius: .5rem; }
.camera-dialog .dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.upload-row { display: flex; align-items: center; gap: .75rem; flex-wrap: wrap; padding: .75rem; border-bottom: 1px solid #cbd5e1; }
.upload-row img { width: 72px; height: 72px; object-fit: contain; }
.upload-row p { flex: 1; min-width: 160px; overflow-wrap: anywhere; }
.photo-result h3, .photo-result p { overflow-wrap: anywhere; }
.photo-checklist { margin-top: 1rem; border: 1px solid #b8d9cb; border-radius: .75rem; padding: 1rem; background: #f3faf7; }
.photo-progress { font-weight: 600; margin-top: 0; }
.photo-checklist ol { padding-left: 1.3rem; margin-bottom: 0; }
.photo-checklist li { padding: .65rem 0; border-top: 1px solid #d2e5dc; }
.photo-checklist li .hint { margin: .4rem 0; }
.photo-checklist li[data-complete=true] strong { color: #166534; }
.photo-checklist li button { min-height: 44px; }
.vvtt-reminder { margin: 1rem 0; border: 1px solid #cbd5e1; border-radius: .75rem; padding: 1rem; }
.vvtt-reminder legend { font-weight: 700; }
.vvtt-reminder .choice { display: flex; align-items: center; gap: .75rem; margin: .7rem 0; min-height: 44px; }
.vvtt-reminder input { width: 20px; height: 20px; }
