.visit-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:32px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink);overflow:auto;font:17px/1.55 var(--sans);box-shadow:0 18px 70px #071b3033}
.visit-dialog::backdrop{background:#102d456b}
.visit-dialog h2{font:400 clamp(30px,5vw,42px)/1.15 var(--serif);margin:4px 42px 24px 0}
.visit-close{position:absolute;top:16px;right:16px;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font:28px/1 var(--sans);color:var(--ink);background:var(--paper)}
.visit-summary{padding:20px;border:1px solid var(--sea-line);border-radius:12px;background:var(--sea-soft);margin-bottom:24px}
.visit-category{font:600 12px/1.4 var(--sans);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.visit-summary h3,.saved-visit h4{font:400 28px/1.2 var(--serif);margin:0 0 12px;overflow-wrap:anywhere}
.visit-facts,.visit-address,.visit-assessment,.visit-note{margin:8px 0 0;overflow-wrap:anywhere}
.visit-address,.visit-assessment{font-size:14px;color:var(--muted)}
.visit-picker,.visit-note-editor{display:grid;gap:20px}
.visit-picker label,.visit-note-editor label{display:grid;gap:8px;font:600 14px/1.5 var(--sans);min-width:0}
.visit-picker select,.visit-picker textarea,.visit-note-editor textarea{width:100%;min-width:0;padding:12px;border:1px solid var(--sea-line);border-radius:9px;background:var(--paper);color:var(--ink);font:400 17px/1.5 var(--sans)}
.visit-picker select{min-height:52px}.visit-picker textarea,.visit-note-editor textarea{resize:vertical}
.visit-primary,.visit-secondary{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;border:1px solid var(--sea-line);border-radius:9px;font:600 16px/1.5 var(--sans);text-decoration:none;text-align:center;cursor:pointer;color:var(--sea-ink);background:var(--sea)}
.visit-secondary{background:transparent;color:var(--ink);border-color:var(--line)}
.visit-primary:hover{background:var(--sea-hover)}
:root[data-theme=night] .visit-primary{color:#183347}
.visit-primary:disabled,.visit-secondary:disabled,.visit-close:disabled{opacity:.6;cursor:progress}
.visit-dialog :is(button,a,select,textarea):focus-visible,.trip-service-visits :is(button,textarea):focus-visible{outline:3px solid var(--sea-ink);outline-offset:3px}
.visit-feedback{font:400 15px/1.5 var(--sans);margin:16px 0;overflow-wrap:anywhere}.visit-feedback:empty{display:none}
.visit-receipt a,.visit-dialog>.visit-secondary{width:100%}
.trip-service-visits{margin:28px 0;padding-top:24px;border-top:1px solid var(--line)}
.trip-service-visits>h3{font:400 clamp(30px,3vw,40px)/1.15 var(--serif);margin:0 0 20px}
.visit-day-check{padding:24px;margin:0 0 20px;border:1px solid var(--sea-line);border-left:4px solid var(--sea);border-radius:14px;background:var(--sea-soft);overflow-wrap:anywhere}
.visit-day-check h4{font:400 26px/1.2 var(--serif);margin:0 0 12px}
.visit-day-status{font:600 16px/1.5 var(--sans);margin:0}
.visit-day-times{display:grid;gap:10px;margin:16px 0 0;font:400 15px/1.5 var(--sans)}
.visit-day-times div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px}
.visit-day-times dt{color:var(--muted)}
.visit-day-times dd{margin:0;font-weight:600}
.visit-day-issues{margin:16px 0;padding-left:22px;font:400 16px/1.55 var(--sans)}
.visit-day-issues li+li{margin-top:8px}
.visit-day-budget{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;margin:20px 0 0;padding-top:16px;border-top:1px solid var(--sea-line)}
.visit-day-budget dt{font:400 14px/1.5 var(--sans);color:var(--muted)}
.visit-day-budget dd{font:600 18px/1.45 var(--sans);margin:6px 0 0}
.visit-day-footnote{font:400 14px/1.5 var(--sans);color:var(--muted);margin:16px 0 0}
.visit-day-check .visit-secondary{margin-top:16px}
.visit-day-check[data-service-day-state=conflict]{border-left-color:var(--ink)}
.visit-list{display:grid;gap:16px}
.visit-settings>summary{padding:16px 0;min-height:48px;cursor:pointer;font:600 16px/1.5 var(--sans);color:var(--ink)}
.visit-timeline{list-style:none;margin:24px 0;padding:0 0 0 32px;border-left:1px solid var(--sea-line)}
.visit-timeline-item{position:relative;margin:0 0 22px;min-width:0}
.visit-timeline-card{position:relative;padding:22px;background:var(--paper);border:1px solid var(--sea-line);border-radius:14px}
.visit-timeline-card[data-timeline-number]::before{content:attr(data-timeline-number);position:absolute;left:-50px;top:22px;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--sea-line);border-radius:50%;background:var(--paper);color:var(--ink);font:600 13px/1 var(--sans)}
.visit-timeline-header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;justify-content:space-between;margin-bottom:10px}
.visit-timeline-time{margin:0;font:600 16px/1.5 var(--sans);color:var(--ink)}
.visit-timeline-badge{padding:4px 9px;border-radius:6px;background:var(--sea-soft);font:600 12px/1.5 var(--sans);color:var(--ink)}
.visit-timeline h5{font:400 clamp(26px,3vw,34px)/1.18 var(--serif);margin:0 0 12px;overflow-wrap:anywhere}
.visit-timeline-detail,.visit-timeline-note,.visit-timeline-warning{font:400 16px/1.5 var(--sans);margin:8px 0;overflow-wrap:anywhere}
.visit-timeline-detail{color:var(--muted)}.visit-timeline-note{white-space:pre-wrap}.visit-timeline-warning{font-weight:600}
.visit-timeline-road{margin:0 0 12px;font:400 14px/1.5 var(--sans);color:var(--muted)}
.visit-timeline-road p{margin:0}.visit-timeline-road details{margin-top:6px;overflow-wrap:anywhere}
.visit-timeline-road summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:4px}
.visit-timeline-road details p{font-size:12px;margin:6px 0}
.visit-timeline-controls,.visit-timeline-arrows{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.visit-timeline-controls{margin-top:18px}.visit-timeline-arrows{flex-wrap:nowrap}
.visit-timeline-controls .visit-secondary{margin:0;min-height:48px}.visit-timeline-arrows button{width:48px;padding:8px;font-size:22px}
.visit-timeline-link{display:flex;align-items:center;min-height:48px;color:var(--ink);font:600 15px/1.5 var(--sans);text-underline-offset:4px}
.trip-service-visits :is(summary,a,h5):focus-visible{outline:3px solid var(--sea-ink);outline-offset:3px}
@media(max-width:480px){.visit-timeline{padding-left:20px}.visit-timeline-card{padding:18px 14px}.visit-timeline-card[data-timeline-number]::before{left:-35px;top:20px;width:28px;height:28px;font-size:11px}.visit-timeline-controls>.visit-secondary{flex:1 1 120px}.visit-timeline h5{font-size:27px}}
.saved-visit{padding:24px;border:1px solid var(--sea-line);border-radius:14px;background:var(--paper);min-width:0}
.saved-visit .visit-facts{font-size:16px;color:var(--muted)}
.visit-note{white-space:pre-wrap;padding-top:12px;font-size:16px}
.visit-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.visit-expense-action{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.visit-expense-action .visit-feedback:empty{display:none}
.visit-expense-action .visit-feedback{flex-basis:100%;margin:0}
.visit-note-editor{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
.visit-dialog [hidden],.trip-service-visits [hidden]{display:none!important}
.visit-move-review{min-width:0;overflow-wrap:anywhere}.visit-move-review .visit-summary{margin:0 0 16px}.visit-move-outcome{font-weight:600;margin:0}.visit-move-review .visit-day-footnote{margin:12px 0 0}
.visit-add-review{min-width:0;border-block:1px solid var(--sea-line);padding:20px 0;overflow-wrap:anywhere}.visit-add-review:empty{display:none}.visit-add-review h3{font:400 27px/1.2 var(--serif);margin:0 0 12px}.visit-add-outcome{font-weight:600;margin:0}
@media(max-width:480px){.visit-dialog{padding:24px 20px}.visit-summary{padding:16px}.saved-visit,.visit-day-check{padding:20px}.visit-day-budget{grid-template-columns:minmax(0,1fr);gap:16px}.visit-picker,.visit-note-editor{gap:16px}.visit-actions{gap:8px}.visit-actions button{flex:1 1 auto}}
.visit-timeline-item[data-day-selected=true] .visit-timeline-card{border-color:var(--sea-muted);box-shadow:0 0 0 2px var(--sea-line)}

.visit-rental-facts,.visit-rental-extra{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5rem 1rem;margin:1rem 0;font-size:.95rem;line-height:1.5}
:is(.visit-rental-facts,.visit-rental-extra) dt{color:var(--muted)}
:is(.visit-rental-facts,.visit-rental-extra) dd{margin:0;overflow-wrap:anywhere}
.visit-rental-more summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--ink);text-decoration:underline;text-underline-offset:4px}
@media(max-width:480px){.visit-rental-facts,.visit-rental-extra{grid-template-columns:1fr;gap:.2rem}:is(.visit-rental-facts,.visit-rental-extra) dd{margin-bottom:.6rem}}
