.visit-actions{display:grid;gap:12px;margin:20px 0}.visit-actions button{text-align:left;padding:18px}.visit-filters{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:16px}.visit-filters label{flex:1 1 160px}.visit-table-scroll{overflow:auto}.visit-table{width:100%;border-collapse:collapse;margin:12px 0}.visit-table th,.visit-table td{padding:9px;border-bottom:1px solid #c7cdca;text-align:left;vertical-align:top}.visit-table th{background:#eee}.visit-photo{width:min(100%,320px);max-height:240px;object-fit:contain;margin:8px;border:1px solid #ccc}.visit-item{padding:14px;border:1px solid #c7cdca;border-radius:10px;margin:12px 0}.visit-item label{display:block;margin:8px 0}.visit-video{width:100%;max-height:55vh}.visit-status{white-space:pre-wrap}dialog.visit-dialog{max-width:min(94vw,620px);border-radius:14px;border:1px solid #aaa}dialog.visit-dialog::backdrop{background:#0008}

/* Shared visit/report spacing; controls wrap within their own container. */
.visit-reports,.visit-results{min-width:0}.visit-reports>form{max-width:none;width:100%}.visit-filters label{display:grid;gap:6px;min-width:0}.visit-filters .field-control{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.visit-results>h3{margin:24px 0 12px}.visit-results details{margin:12px 0}.visit-results summary{padding:12px 0;cursor:pointer;line-height:1.5}.visit-results details>a{display:inline-block;margin:12px 0}.visit-reports>a.secondary-button{display:inline-flex;align-items:center;margin:0 0 16px}.visit-photo{box-sizing:border-box;width:min(calc(100% - 16px),320px)}
dialog.visit-dialog{box-sizing:border-box;width:min(620px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:20px}dialog.visit-dialog>h2{margin:0 0 16px;line-height:1.3}dialog.visit-dialog button{margin:8px 8px 0 0;max-width:100%;white-space:normal}dialog.visit-dialog form{width:100%;max-width:none}dialog.visit-dialog label{display:grid;gap:6px}dialog.visit-dialog input,dialog.visit-dialog select{min-width:0;box-sizing:border-box}
.rep-app #draftWorkspace>section[id^="visit-"]{display:grid;gap:16px;min-width:0}.rep-app #draftWorkspace>section[id^="visit-"]>h1,.rep-app #draftWorkspace>section[id^="visit-"]>p{margin:0}.rep-app #draftWorkspace>section[id^="visit-"]>p:empty{display:none}.rep-app .visit-actions{margin:0}.rep-app .dump-matches{display:grid;gap:10px}.rep-app .dump-matches:empty,.rep-app .dump-lines:empty{display:none}.rep-app .dump-matches button{text-align:left;line-height:1.5}.rep-app .dump-total{display:block;padding:8px 0;text-align:right}.rep-app .dump-line{display:grid;grid-template-columns:1fr auto auto;gap:10px;padding:14px 0}.rep-app .dump-line>span{grid-column:1/-1;font-size:.95rem;line-height:1.6}.rep-app .dump-line>button{min-height:44px;padding:8px 14px;margin:0}.rep-app .dump-line>button:first-of-type{grid-column:2}.rep-app .visit-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.rep-app .visit-filters>label:first-child,.rep-app .visit-filters>label:last-child{grid-column:1/-1}.rep-app .visit-reports form>button{width:100%;margin-top:4px}
.mobile-dump-report{border:1px solid var(--line);border-radius:10px;padding:0 12px;background:white}.mobile-dump-report>summary{font-weight:700}.mobile-report-items{padding-bottom:10px}.mobile-report-line{display:grid;grid-template-columns:minmax(0,1fr) 64px;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-size:.9rem;line-height:1.5}.mobile-report-line>:first-child{white-space:nowrap;overflow-x:auto;min-width:0}.mobile-report-line>:last-child{text-align:right;font-variant-numeric:tabular-nums}
@media(max-width:360px){.rep-app .visit-filters{grid-template-columns:minmax(0,1fr)}.rep-app .visit-filters>label{grid-column:1!important}dialog.visit-dialog{padding:16px}}
.mobile-photo-visit{border:1px solid var(--line);border-radius:10px;padding:0 12px;background:white}.mobile-photo-visit>summary{font-weight:700}.visit-photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:12px;padding-bottom:12px}.visit-photo-button{display:inline-block;max-width:100%;padding:4px;border:1px solid var(--line);border-radius:10px;background:white;cursor:pointer;margin:6px}.visit-photo-button .visit-photo{display:block;width:100%;margin:0;border:0}.visit-photo-grid .visit-photo-button{margin:0}.visit-photo-viewer{width:min(1000px,calc(100vw - 24px))!important}.visit-photo-viewer>button{position:sticky;top:0;z-index:1;margin:0 0 16px!important;min-height:44px}.visit-photo-viewer>h2{font-size:1rem}.visit-full-photo{display:block;max-width:100%;max-height:70dvh;object-fit:contain;margin:auto}.visit-photo-viewer>p:empty{display:none}
.visit-photo-button{width:min(320px,calc(100% - 12px));box-sizing:border-box}.visit-photo-grid .visit-photo-button{width:100%}.rep-app .visit-filters>label:has(input[type=date]){grid-column:auto}

/* Keep native iOS date controls inside their grid cells and preserve the gap. */
.rep-app .visit-filters input[type=date]{width:100%;max-width:100%;min-width:0;min-inline-size:0;padding-inline:8px;font-size:16px;box-sizing:border-box}
.rep-app .visit-filters input[type=date]::-webkit-date-and-time-value{min-width:0;text-align:center}

/* Native date controls must not paint into the adjacent field on iOS. */
.rep-app input[type=date]{display:block;appearance:none;-webkit-appearance:none;inline-size:100%;max-inline-size:100%;min-inline-size:0;box-sizing:border-box;font-size:16px;padding-inline:8px}
.rep-app .visit-filters{column-gap:18px;row-gap:16px}
.rep-app .visit-filters>label:has(input[type=date]){max-width:100%;overflow:hidden}
.visit-total{text-align:right}.visit-table .visit-quantity{text-align:center}
.mobile-report-line>:last-child{text-align:center}.mobile-report-line>.mobile-report-item{white-space:normal;overflow:visible}
.mobile-report-item>span{display:block;white-space:nowrap;overflow-x:auto}.mobile-report-reason{display:block;white-space:normal;overflow-wrap:anywhere;color:var(--muted);margin-top:4px;font-size:.85rem}
