/* Visit plan management only. Brand-family tokens preserve both app themes. */
.vp-row-actions{display:flex;flex-direction:column;gap:8px}
.vp-progress-actions{display:flex;justify-content:flex-end;padding:8px 0 16px}
.vp-progress-actions .vp-button{min-height:44px;padding:10px 16px;border:1px solid var(--family-action,var(--brand));border-radius:8px;background:var(--family-surface,var(--surface));color:var(--family-action,var(--brand));font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.vp-progress-actions .vp-button:focus-visible{outline:2px solid var(--family-action,var(--brand));outline-offset:3px}
@media(max-width:900px){.vp-row-actions{grid-column:2/-1;flex-direction:row;flex-wrap:wrap}}
@media(max-width:540px){.vp-row-actions{grid-column:2}.vp-row-actions .vp-button{flex:1}.vp-progress-actions .vp-button{width:100%}}
#visitPlannerSection{scroll-margin-top:150px}
#visitPlannerSection>header.vp-host-heading{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:16px;align-items:center}
#visitPlannerSection>header.vp-host-heading .customer-intake-icon{width:44px;height:44px}
.vp-workspace [hidden]{display:none!important}
.vp-workspace,.vp-sheet,.vp-view-switch{color:var(--family-ink,var(--ink));font:inherit;line-height:1.5}
.vp-workspace *,.vp-sheet *{box-sizing:border-box;min-width:0}
.vp-view-switch{display:flex;gap:8px;margin:16px 0;flex-wrap:wrap}
.vp-workspace .vp-button,.vp-sheet .vp-button,.vp-view-switch .vp-button{min-height:44px;padding:10px 16px;border:1px solid var(--family-line,var(--border));border-radius:8px;background:var(--family-surface,var(--surface));color:var(--family-ink,var(--ink));font:inherit;font-size:14px;font-weight:600;line-height:1.4;cursor:pointer;touch-action:manipulation;box-shadow:none;white-space:normal;transition:background .15s}
.vp-button:hover:not(:disabled){background:var(--family-action-soft,var(--brand-soft))}
.vp-button:active:not(:disabled){filter:brightness(.94)}
.vp-button:disabled{opacity:.5;cursor:not-allowed}
.vp-workspace .vp-primary,.vp-sheet .vp-primary{background:var(--family-action,var(--brand));border-color:var(--family-action,var(--brand));color:var(--family-on-action,#fff)}
.vp-workspace .vp-primary:hover:not(:disabled),.vp-sheet .vp-primary:hover:not(:disabled){background:var(--family-action-hover,var(--brand-strong))}
.vp-button[aria-pressed="true"]{background:var(--family-action-soft,var(--brand-soft));border-color:var(--family-action,var(--brand));color:var(--family-action,var(--brand))}
.vp-workspace :is(input,select,textarea),.vp-sheet :is(input,select,textarea){display:block;width:100%;min-height:44px;border:1px solid var(--family-line,var(--border));border-radius:8px;background:var(--family-surface,var(--surface));color:var(--family-ink,var(--ink));padding:10px 12px;font:inherit;font-size:16px;line-height:1.5}
.vp-workspace :is(button,input,select,textarea):focus-visible,.vp-sheet :is(button,input,select,textarea,summary):focus-visible{outline:2px solid var(--family-action,var(--brand));outline-offset:3px}
.vp-intro{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}
.vp-intro h3{margin:0;font-size:20px}.vp-intro p{margin:4px 0 0;font-size:14px;color:var(--family-muted,var(--muted))}
.vp-intro>.vp-button{flex-shrink:0}
.vp-period{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.vp-filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr));gap:12px;margin-bottom:16px}
.vp-workspace label,.vp-sheet label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--family-ink,var(--ink))}
.vp-custom,.vp-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}
.vp-custom{max-width:500px}
.vp-summary{display:flex;gap:12px 20px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--family-line,var(--border));padding:16px 0;font-size:14px}
.vp-summary span{color:var(--family-muted,var(--muted))}
.vp-selection{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px;background:var(--family-bg,var(--canvas));border-radius:10px;margin-bottom:12px;font-size:14px}
.vp-selection>span{margin-right:auto;font-weight:600}
.vp-list{border:1px solid var(--family-line,var(--border));border-radius:12px;overflow:hidden}
.vp-row{display:grid;grid-template-columns:44px minmax(180px,2fr) minmax(130px,1fr) 132px auto;gap:16px;padding:18px 16px;align-items:center;background:var(--family-surface,var(--surface));border-bottom:1px solid var(--family-line,var(--border))}
.vp-row:last-child{border-bottom:0}
.vp-row .vp-check{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;cursor:pointer}
.vp-check input[type=checkbox]{width:20px;height:20px;min-height:20px;margin:0;accent-color:var(--family-action,var(--brand))}
.vp-shop strong,.vp-person strong{display:block;font-size:15px;font-weight:600;line-height:1.5;overflow-wrap:anywhere}
.vp-shop small,.vp-person small,.vp-selected-shops small{display:block;font-size:13px;color:var(--family-muted,var(--muted));margin-top:3px;overflow-wrap:anywhere}
.vp-shop p{font-size:13px;margin:6px 0 0;color:var(--family-muted,var(--muted))}
.vp-app-label{font-size:12px;letter-spacing:.03em;font-weight:600;color:var(--family-muted,var(--muted));display:block;margin-bottom:4px}
.vp-date strong{display:block;font-size:14px;font-variant-numeric:tabular-nums;margin-bottom:6px}
.vp-status{display:inline-block;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:600;background:var(--family-bg,var(--canvas));color:var(--family-muted,var(--muted))}
.vp-status[data-status=SCHEDULED],.vp-status[data-status=RESCHEDULED]{background:var(--family-warning-soft);color:var(--family-warning)}
.vp-status[data-status=COMPLETED]{background:var(--family-good-soft);color:var(--family-good)}
.vp-status[data-status=IN_PROGRESS]{background:var(--family-action-soft);color:var(--family-action)}
.vp-empty{padding:40px 24px;text-align:center;font-size:15px;color:var(--family-muted,var(--muted))}
.vp-pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:20px;font-size:14px}
.vp-warning{background:var(--family-warning-soft);color:var(--family-warning);padding:12px 16px;border-radius:8px;line-height:1.6;font-size:14px}
.vp-overlay.modal-overlay{position:fixed;inset:0;z-index:1500;background:#0009;display:flex;align-items:center;justify-content:center;padding:24px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));backdrop-filter:none}
.vp-sheet{width:min(760px,100%);max-height:100%;max-height:calc(100dvh - 48px);overflow-y:auto;overscroll-behavior:contain;background:var(--family-surface,var(--surface));border:1px solid var(--family-line,var(--border));border-radius:16px}
.vp-sheet>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--family-line,var(--border))}
.vp-sheet h2{font-size:22px;line-height:1.4;margin:0}.vp-sheet h3{font-size:18px;line-height:1.5;margin:0;overflow-wrap:anywhere}
.vp-dialog-body{padding:24px}.vp-dialog-body p{font-size:15px;line-height:1.6}
.vp-detail-identity{padding-bottom:16px}.vp-detail-identity p{margin:6px 0;color:var(--family-muted)}
.vp-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0}
.vp-facts div{border-bottom:1px solid var(--family-line);padding-bottom:12px}
.vp-facts dt{font-size:13px;color:var(--family-muted)}.vp-facts dd{margin:4px 0 0;font-size:15px;font-weight:600;overflow-wrap:anywhere}
.vp-notes{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:var(--family-bg);border-radius:8px}
.vp-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 0}
.vp-history{margin-top:24px;border-top:1px solid var(--family-line);padding-top:12px}
.vp-history summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:600;font-size:15px}
.vp-history article,.vp-review article{border:1px solid var(--family-line);border-radius:10px;padding:16px;margin:12px 0;overflow-wrap:anywhere}
.vp-history small{display:block;font-size:13px;color:var(--family-muted)}
.vp-history p,.vp-review p{margin:6px 0}
.vp-selected-shops{max-height:220px;overflow-y:auto;background:var(--family-bg);border-radius:10px;padding:12px 16px;margin-bottom:20px}
.vp-selected-shops p{margin:0;padding:8px 0;font-size:14px;overflow-wrap:anywhere}
#vp-edit-form>label{margin:16px 0}#vp-form-error,#vp-save-error{color:var(--family-action);white-space:pre-wrap}
#vp-shop-results .vp-button{display:block;width:100%;text-align:left;margin-top:12px}
#vp-shop-results small{display:block}
@media(max-width:900px){.vp-filters{grid-template-columns:1fr 1fr}.vp-row{grid-template-columns:44px minmax(0,1fr) 130px;gap:12px}.vp-shop{grid-column:2/-1}.vp-check{grid-row:1/3}.vp-person{grid-column:2}.vp-date{grid-column:3}.vp-row>.vp-button{grid-column:2/-1;justify-self:start}}
@media(max-width:540px){.vp-intro{align-items:flex-start;flex-direction:column}.vp-filters{grid-template-columns:1fr 1fr}.vp-search{grid-column:1/-1}.vp-row{padding:16px 12px;grid-template-columns:32px minmax(0,1fr);gap:10px}.vp-shop{grid-column:2}.vp-person,.vp-date{grid-column:2}.vp-row .vp-check{min-width:32px;margin-left:-6px;width:44px;align-self:start}.vp-date{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.vp-date strong{margin:0}.vp-row>.vp-button{width:100%;grid-column:2}.vp-selection>.vp-button{flex-grow:1}.vp-selection>span{width:100%}.vp-overlay.modal-overlay{padding:12px;padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}.vp-sheet{max-height:calc(100dvh - 24px);border-radius:12px}.vp-sheet>header,.vp-dialog-body{padding:16px}.vp-sheet h2{font-size:20px}.vp-edit-grid,.vp-facts{grid-template-columns:1fr}.vp-actions .vp-button{flex:1}.vp-pagination{gap:8px}.vp-period .vp-button{flex-grow:1}}
@media(prefers-reduced-motion:reduce){.vp-button{transition:none}}

.vp-more-fields{margin:16px 0;border:1px solid var(--family-line);border-radius:10px;padding:0 12px}.vp-more-fields summary{min-height:44px;display:flex;align-items:center;font-size:14px;font-weight:600;cursor:pointer}.vp-more-fields[open]{padding-bottom:16px}.vp-more-fields>label{margin-top:16px}

/* Calm, mobile-first plan workspace. Advanced workflows remain available. */
.vp-workspace [hidden],#vp-view-switch[hidden]{display:none!important}
.vp-workspace .vp-intro{align-items:center;margin-bottom:16px}
.vp-workspace .vp-intro p{font-size:15px;line-height:1.5}
.vp-workspace .vp-period{display:flex;gap:8px;margin-bottom:16px}
.vp-workspace .vp-period .vp-button{flex:1;min-height:44px}
.vp-advanced{border:1px solid var(--vp-border,#dce2e8);border-radius:12px;padding:12px 16px;margin:12px 0}
.vp-advanced summary{cursor:pointer;font-size:14px;font-weight:600;min-height:24px}
.vp-advanced .vp-actions{margin:16px 0}
.vp-workspace .vp-row{padding:18px;gap:12px;border-radius:14px;margin-bottom:10px;grid-template-columns:minmax(0,1fr) auto}
.vp-workspace .vp-shop{grid-column:1 / -1}
.vp-workspace .vp-shop strong{font-size:16px;line-height:1.45;white-space:normal;overflow-wrap:anywhere}
.vp-workspace .vp-shop p{margin:5px 0;font-size:13px}
.vp-workspace .vp-person strong,.vp-workspace .vp-date strong{font-size:14px;line-height:1.5}
.vp-workspace .vp-row-actions{grid-column:1 / -1;display:flex;gap:8px;border-top:1px solid var(--vp-border,#dce2e8);padding-top:12px}
.vp-workspace .vp-row-actions .vp-button{min-height:44px;flex:1}
.vp-workspace .vp-check:not([hidden]){grid-column:1 / -1}
.vp-sheet .vp-selected-shops strong{font-size:16px;line-height:1.5}
.vp-sheet .vp-actions .vp-button{min-height:48px}
@media(min-width:900px){.vp-workspace .vp-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.vp-workspace .vp-row{margin:0}.vp-workspace .vp-period{max-width:520px}}

.vp-quick-dates{display:flex;gap:8px;margin-bottom:14px}.vp-quick-dates .vp-button{min-height:44px}.vp-workspace .vp-row-actions{flex-direction:row;flex-wrap:wrap}

#visitPlannerSection>header.vp-host-heading{grid-template-columns:44px minmax(0,1fr) auto!important;gap:12px!important}
#visitPlannerSection>header.vp-host-heading>.visit-planner-actions{grid-column:auto!important;grid-row:auto!important;width:auto!important}
#visitPlannerSection>header.vp-host-heading p{font-size:13px;line-height:1.5}
#visitPlannerSection .vp-workspace .vp-intro{flex-direction:row;align-items:center;text-align:left;gap:12px}
#visitPlannerSection .vp-workspace .vp-intro p{font-size:14px}
.vp-workspace .vp-list{border:0;overflow:visible}
.vp-workspace .vp-row{border:1px solid var(--family-line,var(--border))}
.vp-workspace .vp-row:last-child{border-bottom:1px solid var(--family-line,var(--border))}
.vp-workspace .vp-person{grid-column:1;grid-row:auto;text-align:left}
.vp-workspace .vp-date{grid-column:2;grid-row:auto;text-align:right;display:block}
.vp-workspace .vp-row-actions{grid-column:1 / -1}
@media(max-width:540px){.vp-workspace .vp-row{grid-template-columns:minmax(0,1fr) minmax(112px,auto);padding:16px;gap:12px}.vp-workspace .vp-row-actions .vp-button{padding:10px 8px}.vp-workspace .vp-date strong{font-size:13px}}

/* Customer selection: initial results, live search and readable mobile rows. */
#vp-shop-search{display:grid;gap:12px}#vp-shop-search input{font-size:16px;min-height:48px}
#vp-shop-results{display:grid;gap:8px;margin-top:16px;min-width:0}
#vp-shop-results [data-shop]{display:grid;gap:4px;width:100%;min-height:60px;text-align:left;white-space:normal;overflow-wrap:anywhere}
#vp-shop-results [data-shop] strong{font-size:15px;line-height:1.4}#vp-shop-results [data-shop] small,#vp-shop-results p{font-size:14px;line-height:1.5}

/* Visit Plans only: supervisor > employee > complete, untruncated shop list. */
.vp-workspace .vph-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:12px 0}
.vp-workspace .vph-toolbar label{flex:1;min-width:190px;display:grid;gap:6px;font-size:13px}
.vp-workspace .vph-toolbar input{width:100%;min-height:44px;border:1px solid var(--family-line,var(--border));background:var(--family-surface,var(--surface));color:var(--family-ink,var(--ink));border-radius:8px;padding:10px 12px;font:inherit;font-size:16px}
.vp-workspace .vph-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.vp-workspace .vp-list.vph-list{display:block}
.vph-list .vph-supervisor{border:1px solid var(--family-line,var(--border));border-radius:10px;background:var(--family-surface,var(--surface));margin-bottom:12px;overflow:hidden}
.vph-list summary{list-style:none;display:flex;align-items:center;gap:12px;min-height:64px;cursor:pointer;touch-action:manipulation;padding:16px}
.vph-list summary::-webkit-details-marker{display:none}
.vph-list summary:focus-visible{outline:2px solid var(--family-action,var(--brand));outline-offset:-3px}
.vph-list .vph-supervisor>summary{border-left:3px solid var(--family-action,var(--brand));background:var(--family-bg,var(--canvas))}
.vph-list .vph-plus{display:grid;place-items:center;width:32px;height:32px;flex:0 0 32px;border:1px solid var(--family-line,var(--border));border-radius:7px;color:var(--family-ink,var(--ink));background:var(--family-surface,var(--surface));font-size:22px}
.vph-list .vph-plus:before{content:'+'}
.vph-list details[open]>summary .vph-plus:before{content:'−'}
.vph-list .vph-identity{display:grid;gap:4px;flex:1;min-width:0}
.vph-list .vph-identity>small{font-size:12px;color:var(--family-muted,var(--muted));line-height:1.5}
.vph-list .vph-identity>strong{font-size:16px;line-height:1.5;overflow-wrap:anywhere;color:var(--family-ink,var(--ink))}
.vph-list .vph-counts{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;line-height:1.5;color:var(--family-muted,var(--muted))}
.vph-list .vph-team{margin:4px 16px 12px 26px}
.vph-list .vph-member{border-left:2px solid var(--family-line,var(--border))}
.vph-list .vph-member+.vph-member{border-top:1px solid var(--family-line,var(--border))}
.vph-list .vph-member>summary{padding:14px 12px}
.vph-list .vph-shops{padding:0 14px 8px 18px}
.vp-workspace .vph-list .vp-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;border:0;border-top:1px solid var(--family-line,var(--border));border-radius:0;box-shadow:none;background:transparent;padding:14px 0;margin:0}
.vp-workspace .vph-list .vp-row .vp-person,.vp-workspace .vph-list .vp-row .vp-app-label{display:none}
.vp-workspace .vph-list .vp-row .vp-shop{grid-column:1;grid-row:1}
.vp-workspace .vph-list .vp-row .vp-shop strong{font-size:14px;line-height:1.5;white-space:normal;overflow:visible;display:block;overflow-wrap:anywhere}
.vp-workspace .vph-list .vp-row .vp-shop small,.vp-workspace .vph-list .vp-row .vp-shop p{font-size:12px;line-height:1.5;white-space:normal}
.vp-workspace .vph-list .vp-date{grid-column:2;grid-row:1;align-self:start;font-size:12px}
.vp-workspace .vph-list .vp-row-actions{grid-column:1/-1;display:flex;flex-direction:row;justify-content:flex-end;border:0;padding:0;gap:8px;flex-wrap:wrap}
.vp-workspace .vph-list .vp-row-actions .vp-button{flex:0 1 auto;font-size:13px;min-height:44px;padding:8px 14px}
.vp-workspace .vph-list .vp-check:not([hidden]){grid-column:1/-1;grid-row:1}
.vp-workspace .vph-list .vp-row:has(.vp-check:not([hidden])) .vp-shop,.vp-workspace .vph-list .vp-row:has(.vp-check:not([hidden])) .vp-date{grid-row:2}
.vp-workspace .vp-status[data-status="Overdue"],.vp-workspace .vp-status[data-status="MISSED"]{background:var(--danger-soft,#fff0f1);color:var(--danger,#b42336)}
[data-theme="dark"] .vp-workspace .vp-status[data-status="Overdue"],[data-theme="dark"] .vp-workspace .vp-status[data-status="MISSED"]{background:#47262d;color:#ffb3c0}
@media(max-width:540px){.vp-workspace .vph-toolbar-actions{width:100%}.vp-workspace .vph-toolbar-actions .vp-button{flex:1}.vph-list .vph-team{margin-left:10px;margin-right:6px}.vph-list .vph-shops{padding-left:10px;padding-right:8px}.vph-list summary{padding:14px 10px;gap:8px}.vp-workspace .vph-list .vp-row{grid-template-columns:minmax(0,1fr)}.vp-workspace .vph-list .vp-date{grid-column:1;grid-row:2;display:flex;gap:12px;align-items:center;justify-content:space-between}.vp-workspace .vph-list .vp-row:has(.vp-check:not([hidden])) .vp-date{grid-row:3}.vp-workspace .vph-list .vp-row-actions{justify-content:start}.vp-workspace .vph-list .vp-row-actions .vp-button{flex:1}}

.vp-workspace .vph-list .vp-status[data-status="SCHEDULED"],.vp-workspace .vph-list .vp-status[data-status="RESCHEDULED"]{background:var(--family-bg);color:var(--family-muted)}
.vp-workspace .vph-list .vp-status[data-status="IN_PROGRESS"]{background:#e9f1fc;color:#245a92}
[data-theme="dark"] .vp-workspace .vph-list .vp-status[data-status="IN_PROGRESS"]{background:#233d58;color:#afd1ff}

#vp-shop-results [data-shop][aria-pressed="true"]{border:2px solid var(--accent,#00858a);background:var(--surface-alt,#edf7f7)}#vp-shop-results [data-shop][aria-pressed="true"]::before{content:"✓ Selected";font-weight:700}#vp-picked{margin-top:16px}#vp-picked .vp-button{margin:4px;white-space:normal;text-align:left}
