.visit-flow .guide-stepper { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; margin-bottom: 20px; }
.visit-flow .guide-step-button { min-width: 0; padding: 10px 8px; }
.visit-flow .guide-step-button strong { display: block; white-space: normal; overflow-wrap: normal; }
.visit-flow .guided-phase-head { padding: 0; background: none; border: 0; align-items: baseline; }
.visit-flow .guided-phase-head h3 { font-size: 22px; color: var(--navy, #173b5a); text-transform: none; }
.visit-flow .guided-phase-head strong { font-size: 12px; color: var(--muted, #64736c); }
.visit-phase-help { color: var(--muted, #64736c); margin: 6px 0 18px; line-height: 1.5; }
.visit-closeout { display: grid; gap: 10px; }
.visit-closeout-group { border: 1px solid var(--line, #dbe3df); border-radius: 12px; background: var(--surface, #fff); overflow: hidden; }
.visit-closeout-group > summary { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 72px; padding: 14px; cursor: pointer; list-style: none; }
.visit-closeout-group > summary::-webkit-details-marker { display: none; }
.visit-closeout-group > summary:focus-visible { outline: 3px solid var(--teal, #14715b); outline-offset: -3px; }
.visit-closeout-group > summary strong, .visit-closeout-group > summary small { display: block; }
.visit-closeout-group > summary strong { font-size: 16px; color: var(--ink, #16251f); }
.visit-closeout-group > summary small { margin-top: 3px; font-size: 12px; color: var(--muted, #64736c); }
.visit-closeout-group > summary em { font-style: normal; font-size: 12px; color: var(--muted, #64736c); }
.visit-closeout-number { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid var(--line, #dbe3df); border-radius: 50%; font-weight: 700; }
.visit-closeout-group[open] { border-color: var(--teal, #14715b); }
.visit-closeout-group.is-complete .visit-closeout-number { background: var(--teal, #14715b); color: #fff; border-color: transparent; }
.visit-closeout-group .task-list { margin: 0; padding: 0 6px 6px; }
.visit-closeout-group > .button { margin: 0 14px 14px; min-height: 44px; }
.visit-flow .task-row { grid-template-columns: 24px minmax(0, 1fr); padding: 16px 10px; gap: 12px; border-color: #e6ece8; border-radius: 8px; }
.visit-flow .task-row > div { min-width: 0; flex: 1; }
.visit-flow .task-row .check { width: 24px; height: 24px; min-width: 24px; min-height: 24px; padding: 0; margin: 2px 0 0; display: grid; place-items: center; border: 2px solid #899d93; border-radius: 6px; background: #fff; }
.visit-flow .task-row .check:checked { background: #14715b; border-color: #14715b; }
.visit-flow .task-row .check:checked::after { content: ""; display: block; width: 6px; height: 11px; margin: -2px 0 0; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.visit-flow .task-row .check:focus-visible { outline: 3px solid #93cbb9; outline-offset: 3px; }
.visit-flow .task-row:has(> .check:checked) { background: #f3f8f5; }
.visit-flow .guide-step-button.is-active { background: #eff7f3; border-color: #14715b; box-shadow: none; }
.visit-flow .task-row:has(> .check:checked) > div > strong { color: #347260; }
.visit-flow .task-row small { line-height: 1.5; margin-top: 5px; }
.visit-flow .task-row > div > .button { margin-top: 12px; }
.visit-flow .guided-support { margin: 20px 0 0; border-color: #e0e9e3; border-radius: 12px; overflow: hidden; }
.visit-flow .guided-support-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.visit-flow .guided-support-heading h3 { font-size: 16px; text-transform: none; }
.visit-flow .guided-support-body { padding: 6px; gap: 0; }
.visit-work-tip, .visit-optional-media { margin-top: 10px; font-size: 13px; color: var(--muted, #64736c); }
.visit-work-tip summary, .visit-optional-media summary { cursor: pointer; min-height: 32px; padding-top: 5px; }
.visit-work-tip p { margin: 5px 0; }
.visit-flow .inline-media-prompt { margin-top: 12px; padding: 12px; }
.visit-flow .inline-media-head > strong { display: none; }
.visit-flow .inline-media-head > span { font-size: 12px; }
.visit-flow .media-actions { flex-wrap: wrap; gap: 8px; }
.visit-flow .media-actions .button { min-height: 42px; font-size: 13px; }
.visit-save-status, .visit-photo-status { font-size: 13px; line-height: 1.5; margin: 8px 0 0; overflow-wrap: anywhere; }
.visit-save-status:empty, .visit-photo-status:empty { display: none; }
.visit-save-status button { margin: 8px 8px 0 0; }
.visit-quick-dialog { position: fixed; inset: 0; z-index: 12000; background: #102b2466; display: grid; place-items: center; padding: 18px; }
.visit-quick-card { width: min(100%, 430px); max-height: calc(100dvh - 36px); overflow: auto; padding: 24px; border-radius: 20px; background: #fff; color: #15352a; box-shadow: 0 20px 80px #102b2433; }
.visit-quick-card header { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.visit-quick-card h2 { font-size: 22px; margin: 0; }
.visit-quick-card p { line-height: 1.5; color: #52695f; }
.visit-quick-card > .button { width: 100%; margin: 6px 0; min-height: 48px; }
.visit-quick-card details { margin-top: 18px; font-size: 14px; }
.visit-quick-card summary { cursor: pointer; padding: 8px 0; }
.visit-later { display: block; margin: 16px auto 0; padding: 10px; border: 0; background: none; color: #52695f; cursor: pointer; }
.visit-review-qr { display: block; width: min(100%, 280px); height: auto; margin: 20px auto 0; }
.visit-share-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-height: 42vh; overflow: auto; margin: 16px 0; }
.visit-share-photo { position: relative; padding: 7px; border: 1px solid #dce7e1; border-radius: 12px; min-width: 0; }
.visit-share-photo:has(input:checked) { border-color: #14715b; background: #eff8f2; }
.visit-share-photo img { width: 100%; height: 140px; object-fit: contain; border-radius: 7px; display: block; margin-bottom: 6px; }
.visit-share-photo span { font-size: 12px; margin-left: 6px; }
.field-home-visit-actions { flex-wrap: wrap; }
@media (max-width: 680px) {
  .visit-flow .section-body { padding: 14px; }
  .visit-flow .guide-stepper { gap: 4px; }
  .visit-flow .guide-step-button { padding: 9px 3px; grid-template-columns: 1fr; justify-items: center; text-align: center; gap: 5px; }
  .visit-flow .guide-step-button strong { font-size: 11px; line-height: 1.25; }
  .visit-flow .guide-step-button em { display: none; }
  .visit-flow .guided-phase-body { padding: 0; }
  .visit-flow .task-row strong { font-size: 15px; }
  .visit-flow .task-row small { font-size: 12px; }
  .visit-flow .inline-media-prompt { padding: 10px; }
  .visit-flow .inline-media-head { display: none; }
  .visit-quick-dialog { padding: 12px; align-items: center; }
  .visit-quick-card { padding: 20px; }
}

.visit-conflict-details { margin-top: 10px; padding: 10px; border: 1px solid #ddc38d; border-radius: 10px; background: #fffaf0; }
.visit-conflict-details summary { cursor: pointer; font-weight: 700; }
.visit-conflict-details ul { padding-left: 18px; }
.visit-conflict-details li { margin-top: 8px; }
.visit-conflict-details span { display: block; overflow-wrap: anywhere; }

/* Active visits stay easy to find; helpers contribute without lead closeout controls. */
.todo-current-checklists { padding: 20px; border: 1px solid var(--line, #dbe3df); border-radius: 16px; background: var(--surface, #fff); }
.visit-resume-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--line, #dbe3df); }
.visit-resume-row > div { min-width: 0; }
.visit-resume-row strong, .visit-resume-row span { display: block; overflow-wrap: anywhere; }
.visit-resume-row span { margin-top: 4px; color: var(--muted, #52605c); font-size: .9rem; }
.visit-resume-row .button { flex-shrink: 0; }
.field-home-visit-card.is-in-progress { border-color: #4b8970; }
.field-home-visit-card.is-in-progress .field-home-visit-status strong { color: #246447; }
.is-helper [data-jobsite-final-submit], .is-helper .jobsite-mobile-submit-bar, .is-helper .sop-progress-card, .is-helper [data-action="clear-draft"] { display: none; }
.visit-helper .section-body { display: grid; gap: 14px; }
.visit-helper p { margin: 0; }
@media (max-width: 600px) { .visit-resume-row { align-items: stretch; flex-direction: column; gap: 10px; } }

.visit-collage-share { display: grid; gap: 10px; padding: 16px; border: 1px solid #b9d3c5; border-radius: 12px; background: #eff8f2; }
.visit-collage-share p { margin: 0; font-size: 13px; }
.visit-collage-share .button { white-space: normal; }
