.scheduler{--schedule-teal:#167c82;--schedule-soft:#eaf4f4}.scheduler .scheduler-toolbar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:1rem;margin:0 0 1.2rem}.scheduler-toolbar .field{margin:0;min-width:160px}.scheduler .scheduler-tabs{display:flex;gap:.4rem;margin-bottom:1.3rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}.scheduler-tabs button{background:transparent;color:var(--muted);min-height:43px}.scheduler-tabs button[aria-selected=true]{background:var(--schedule-soft);color:#145c65;font-weight:650}.scheduler-tabs button:hover{background:#eff4f7}.scheduler .scheduler-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;margin-bottom:1.3rem}.scheduler-metric{padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:10px;background:white}.scheduler-metric strong{display:block;font-size:1.5rem;line-height:1.3}.scheduler-metric span{font-size:.8rem;color:var(--muted)}.scheduler .scheduler-layout{display:grid;grid-template-columns:minmax(280px,.82fr) minmax(0,1.6fr);gap:1.2rem;align-items:start}.scheduler .scheduler-backlog,.scheduler .scheduler-board{min-width:0}.scheduler .scheduler-section-head{display:flex;gap:1rem;align-items:center;justify-content:space-between;margin-bottom:1rem}.scheduler-section-head h2,.scheduler-section-head p{margin:0}.scheduler-section-head p{margin-top:.3rem}.scheduler-request,.scheduler-booking,.scheduler-profile,.scheduler-travel-row,.scheduler-existing{border:1px solid var(--line);border-radius:9px;padding:.9rem 1rem;margin-bottom:.7rem;background:#fff}.scheduler-request h3,.scheduler-booking h3,.scheduler-profile h3,.scheduler-existing h3{font-size:.95rem;margin:0 0 .3rem;overflow-wrap:anywhere}.scheduler-request p,.scheduler-booking p,.scheduler-profile p,.scheduler-existing p,.scheduler-travel-row p{margin:.25rem 0;font-size:.82rem}.scheduler-request .toolbar,.scheduler-booking .toolbar,.scheduler-profile .toolbar,.scheduler-existing .toolbar{margin-top:.75rem}.scheduler .scheduler-due{color:#875518}.scheduler .scheduler-urgent{border-left:4px solid #d77554}.scheduler .scheduler-warning{padding:.65rem .8rem;background:#fff7e7;color:#76541b;border:1px solid #ebd8ac;border-radius:7px;font-size:.8rem;margin:.6rem 0}.scheduler .scheduler-day{margin:0 0 1.4rem}.scheduler-day>h3{font-size:.91rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}.scheduler-day .scheduler-engineer-label{font-size:.77rem;font-weight:650;color:#326d79;margin:.7rem 0 .4rem}.scheduler .scheduler-booking{border-left:4px solid var(--schedule-teal);background:#fbfefe}.scheduler .scheduler-time{font-weight:650;color:#185a66}.scheduler .scheduler-empty{border:1px dashed #b9cbd3;border-radius:9px;padding:1.3rem;color:var(--muted);font-size:.85rem}.scheduler .scheduler-empty h3{font-size:.95rem;color:var(--ink);margin:0 0 .35rem}.scheduler .scheduler-filter{display:flex;align-items:flex-end;flex-wrap:wrap;gap:.7rem;margin-bottom:1rem}.scheduler-filter .field{min-width:135px;flex:1;margin-bottom:0}.scheduler .scheduler-status{font-size:.85rem;color:#8a3543;min-height:1.4rem;margin:.7rem 0;overflow-wrap:anywhere}.scheduler .scheduler-overlay{position:fixed;inset:0;z-index:50;background:#102c4166;display:flex;justify-content:flex-end}.scheduler .scheduler-drawer{background:#fff;width:min(680px,100%);padding:1.6rem 1.8rem;height:100%;overflow:auto;box-shadow:-8px 0 30px #18354826}.scheduler-drawer h2{font-size:1.4rem;margin:0}.scheduler-drawer .scheduler-drawer-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.scheduler-drawer>p{font-size:.86rem;color:var(--muted)}.scheduler-drawer form{margin-top:1.2rem}.scheduler .scheduler-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.1rem 1rem}.scheduler .scheduler-form-grid>.scheduler-full{grid-column:1/-1}.scheduler .scheduler-checkboxes{display:flex;gap:.5rem 1.2rem;flex-wrap:wrap;margin:.6rem 0 1.2rem}.scheduler-checkboxes label{font-size:.86rem;display:flex;gap:.45rem;align-items:center;min-height:35px}.scheduler .scheduler-checkboxes input{width:auto}.scheduler .scheduler-proposal{border-color:#92b7bd}.scheduler-proposal .scheduler-proposal-title{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap}.scheduler-proposal .scheduler-assignment{padding:.8rem 0;border-bottom:1px solid var(--line)}.scheduler-assignment:last-child{border-bottom:0}.scheduler-assignment h3{font-size:.92rem;margin:0 0 .3rem}.scheduler-assignment p{margin:.2rem 0;font-size:.83rem}.scheduler-proposal .scheduler-blockers{padding:.8rem 1rem;background:#fff7e7;border-radius:8px;margin:1rem 0}.scheduler-blockers li{margin:.3rem 0;font-size:.83rem}.scheduler .scheduler-profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.scheduler .scheduler-hash{font-size:.72rem;word-break:break-all;color:var(--muted)}.scheduler .scheduler-explanation{font-size:.8rem;color:var(--muted)}.scheduler .scheduler-history{margin-top:1.2rem}.scheduler-history summary{font-weight:650}.scheduler-history button{margin:.4rem .4rem .4rem 0}.scheduler .scheduler-planning-summary{font-size:.82rem}.scheduler-overlay .scheduler-drawer:focus{outline:none}.scheduler .scheduler-drawer-actions{position:sticky;bottom:-1.6rem;background:#fff;padding:1rem 0;margin-top:1rem;border-top:1px solid var(--line)}.scheduler .scheduler-approval{padding-top:1rem;margin-top:1rem;border-top:1px solid var(--line)}.scheduler-approval .field{margin-bottom:.7rem}.scheduler .scheduler-check{display:flex;gap:.7rem;align-items:flex-start;font-size:.85rem;margin-bottom:1rem}.scheduler-check input{width:auto;margin-top:.3rem}.scheduler .scheduler-metadata{display:flex;gap:.4rem .8rem;flex-wrap:wrap;color:var(--muted);font-size:.77rem}.scheduler .scheduler-profile-empty{color:#875518}.scheduler .scheduler-travel-table{width:100%;border-collapse:collapse;font-size:.84rem}.scheduler-travel-table th,.scheduler-travel-table td{text-align:left;border-bottom:1px solid var(--line);padding:.75rem .65rem;overflow-wrap:anywhere}.scheduler-travel-table th{font-weight:650;color:var(--muted)}.scheduler .scheduler-scroll-table{overflow-x:auto}.scheduler .scheduler-secondary-links{display:flex;gap:1.2rem;flex-wrap:wrap;font-size:.83rem;margin-bottom:1.2rem}.scheduler .scheduler-month-name{font-size:.82rem;color:var(--muted)}.planned-visit-summary{padding:1rem 1.2rem}.planned-visit-summary h2{margin-top:0}.planned-visit-summary p{margin:.35rem 0;font-size:.85rem}.planned-visit-inline{font-size:.79rem!important;color:#276673;margin-top:.3rem!important}
@media(max-width:1100px){.scheduler .scheduler-layout{grid-template-columns:1fr}.scheduler .scheduler-backlog{order:2}.scheduler .scheduler-board{order:1}.scheduler .scheduler-profile-grid{grid-template-columns:1fr}}@media(max-width:600px){.scheduler .scheduler-toolbar{gap:.7rem}.scheduler-toolbar .field{min-width:0;flex:1}.scheduler-toolbar>button{width:100%}.scheduler .scheduler-metrics{gap:.5rem}.scheduler-metric{padding:.7rem}.scheduler-metric strong{font-size:1.2rem}.scheduler-metric span{font-size:.69rem}.scheduler .scheduler-form-grid{grid-template-columns:1fr}.scheduler .scheduler-form-grid>.scheduler-full{grid-column:auto}.scheduler .scheduler-drawer{padding:1.1rem}.scheduler .scheduler-section-head{align-items:flex-start}.scheduler .scheduler-drawer-actions{bottom:-1.1rem}.scheduler .scheduler-tabs{gap:0}.scheduler-tabs button{flex:1;padding:.7rem .35rem;font-size:.78rem}.scheduler .scheduler-overlay{align-items:stretch}.scheduler .scheduler-booking,.scheduler .scheduler-request{padding:.8rem}.scheduler .scheduler-filter .field{min-width:120px}.scheduler .scheduler-travel-table{min-width:540px}}

.scheduler .scheduler-route{border:1px solid #c6dade;border-radius:8px;background:#edf5f6;padding:.75rem .9rem;margin:.6rem 0 .9rem;font-size:.8rem;overflow-wrap:anywhere}.scheduler-route p{margin:.25rem 0}.scheduler-route b{color:#235c68}

/* The real-site source plan stays separate from the existing practice planner. */
.scheduler .scheduler-source-heading{margin-bottom:1rem;overflow-wrap:anywhere}
.scheduler-source-heading h2{margin:0 0 .3rem;font-size:1.12rem}
.scheduler-source-heading p{margin:.3rem 0;font-size:.85rem;color:var(--muted)}
.scheduler .scheduler-source-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:1.2rem;align-items:start}
.scheduler .scheduler-source-calendar,.scheduler .scheduler-source-day{min-width:0;padding:1.1rem}
.scheduler .scheduler-calendar-heading{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.7rem}
.scheduler-calendar-heading h2{margin:0;font-size:1.1rem}
.scheduler-calendar-heading .toolbar{flex-wrap:nowrap;gap:.3rem;margin:0}
.scheduler-calendar-heading button{min-height:44px;min-width:44px;padding:.4rem;font-size:1.3rem}
.scheduler .scheduler-weekdays,.scheduler .scheduler-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.scheduler-weekdays span{text-align:center;padding:.4rem 0;font-size:.72rem;color:var(--muted)}
.scheduler .scheduler-calendar-day{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:3px;min-width:0;min-height:92px;padding:.45rem .1rem;background:#f7fafb;color:var(--ink);border:1px solid #dce7eb;border-radius:7px;font-weight:400}
.scheduler-calendar-day b{font-size:.9rem}
.scheduler .scheduler-calendar-day.has-visits{background:#eff7f7;border-color:#b5d3d6}
.scheduler .scheduler-calendar-day.is-selected{background:#dff0f0;border:2px solid #167c82;padding:calc(.45rem - 1px) 0}
.scheduler .scheduler-calendar-day:focus-visible{outline:3px solid #d97b22;outline-offset:1px}
.scheduler .scheduler-calendar-count{font-size:.72rem;font-weight:650;line-height:1.4}
.scheduler .scheduler-calendar-status{font-size:.58rem;line-height:1.5;color:#725614;max-width:100%;overflow-wrap:anywhere}
.scheduler .scheduler-calendar-status.is-approved{color:#175f4a}
.scheduler .scheduler-calendar-empty{color:#a5b6bf;font-size:.7rem}
.scheduler .scheduler-calendar-legend{display:flex;gap:.35rem 1rem;flex-wrap:wrap;margin:.8rem 0 0;font-size:.7rem}
.scheduler .scheduler-source-day .scheduler-section-head{align-items:flex-start;gap:.5rem}
.scheduler-source-day .badge{font-size:.65rem;white-space:normal;text-align:center}
.scheduler .scheduler-group-actions{gap:.5rem;margin:.7rem 0}
.scheduler-group-actions button{flex:1;min-height:44px}
.scheduler .scheduler-source-engineer{margin:1rem 0}
.scheduler-source-engineer>h3{font-size:.83rem;background:#eff4f6;border-radius:6px;padding:.55rem .7rem;overflow-wrap:anywhere}
.scheduler .scheduler-source-visit{border:1px solid var(--line);border-left:3px solid #167c82;border-radius:8px;padding:.8rem;margin:.6rem 0;background:white;overflow-wrap:anywhere}
.scheduler-source-visit.is-excluded{border-left-color:#a9b4bc;background:#f7f8f9}
.scheduler .scheduler-source-visit-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}
.scheduler-source-visit h4{margin:0;font-size:.9rem;min-width:0}
.scheduler-source-visit-head .badge{font-size:.57rem;flex-shrink:0;max-width:115px}
.scheduler-source-visit p{margin:.4rem 0;font-size:.81rem}
.scheduler-source-visit .small{font-size:.73rem}
.scheduler .scheduler-source-original{margin:.5rem 0 0;font-size:.74rem}
.scheduler-source-original summary{font-size:.72rem;padding:.3rem 0}
.scheduler-source-original dl{margin:.5rem 0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:.3rem .7rem;font-size:.72rem}
.scheduler-source-original dt{color:var(--muted)}
.scheduler-source-original dd{margin:0;overflow-wrap:anywhere}
.scheduler .scheduler-source-filter{background:#f2f7f8;padding:.7rem;border-radius:8px;margin-bottom:.7rem}
.scheduler-source-filter p{margin:0 0 .5rem;overflow-wrap:anywhere}
.scheduler .scheduler-source-map-panel{margin-top:1.2rem;min-width:0}
.scheduler .scheduler-source-site-fallback{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}
.scheduler-source-site-fallback li{min-width:0;overflow-wrap:anywhere}
.scheduler .scheduler-practice{margin-top:1.4rem}
.scheduler-practice>summary{font-size:.91rem;min-height:44px;overflow-wrap:anywhere}
.scheduler .scheduler-source-edit-row{border:1px solid var(--line);border-radius:8px;padding:.9rem;margin:.8rem 0;overflow-wrap:anywhere}
.scheduler-source-edit-row h3{font-size:.94rem;margin:0 0 .4rem}
.scheduler-source-edit-row .checkbox{font-size:.84rem;min-height:44px}
.scheduler-source-edit-row input[disabled],.scheduler-source-edit-row textarea[disabled]{background:#f0f3f5;color:#526574}
.scheduler .scheduler-source-decision{border-left:3px solid #248168;padding-left:.6rem;overflow-wrap:anywhere}
@media(max-width:1100px){.scheduler .scheduler-source-layout{grid-template-columns:1fr}.scheduler .scheduler-calendar-day{min-height:85px}}
@media(max-width:600px){.scheduler .scheduler-source-calendar{padding:.7rem}.scheduler .scheduler-source-day{padding:1rem}.scheduler .scheduler-calendar-grid,.scheduler .scheduler-weekdays{gap:1px}.scheduler .scheduler-calendar-day{min-height:78px;border-radius:5px}.scheduler-calendar-day b{font-size:.82rem}.scheduler .scheduler-calendar-count{font-size:.72rem}.scheduler .scheduler-day-count-word{display:none}.scheduler .scheduler-calendar-status{font-size:.6rem}.scheduler .scheduler-weekdays span{font-size:.62rem}.scheduler .scheduler-calendar-heading h2{font-size:1rem}.scheduler-source-visit-head{flex-direction:column}.scheduler .scheduler-source-site-fallback{grid-template-columns:1fr}.scheduler .scheduler-source-edit-row{padding:.75rem}.scheduler .scheduler-source-map-panel{padding:.8rem}.scheduler .scheduler-source-original dl{grid-template-columns:1fr}.scheduler-source-original dt{font-weight:650}.scheduler-source-original dd{margin-bottom:.35rem}}
.scheduler .scheduler-source-filters{margin:1rem 0;min-width:0}
.scheduler-source-filters .scheduler-filter .field{min-width:0;flex:1 1 220px}
.scheduler .scheduler-source-category-counts{display:flex;flex-wrap:wrap;gap:.45rem;margin:.5rem 0 1rem}
.scheduler-source-category-counts button{font-size:.76rem;padding:.55rem .65rem;min-height:44px;gap:.55rem}
.scheduler-source-category-counts button[aria-pressed=true]{background:#dff0f0;box-shadow:inset 0 0 0 2px #167c82}
.scheduler .scheduler-calendar-work-counts{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;max-width:100%}
.scheduler .scheduler-work-count{display:inline-flex;align-items:center;border-radius:4px;padding:.2rem .4rem;font-size:.72rem;line-height:1.35}
.scheduler-calendar-work-counts .scheduler-work-count{padding:1px 2px;font-size:.62rem;white-space:nowrap}
.scheduler .scheduler-day-work-counts{display:flex;flex-wrap:wrap;gap:.35rem;margin:.6rem 0}
.scheduler .scheduler-month-work-counts{display:flex;flex-wrap:wrap;gap:.45rem;margin:.8rem 0 1rem}
.scheduler-month-work-counts .scheduler-work-count{padding:.5rem .65rem;font-size:.8rem;gap:.4rem}
.scheduler .scheduler-work-legend{display:flex;flex-wrap:wrap;gap:.35rem .8rem;margin:.8rem 0 .3rem;font-size:.69rem}
.scheduler-work-legend span{border-radius:4px;padding:.15rem .35rem}
.scheduler .scheduler-work-count-note{font-size:.66rem;color:var(--muted);margin:.25rem 0}
.scheduler .work-completed{color:#195d38;background:#e9f6ee}
.scheduler .work-scheduled{color:#1b4c8a;background:#eaf2ff}
.scheduler .work-unscheduled{color:#76520d;background:#fff4d8}
.scheduler .work-overdue{color:#a02c3e;background:#ffedf0}
.scheduler .work-needs_review,.scheduler .work-excluded,.scheduler .work-not_required{color:#52616c;background:#eef1f3}
.scheduler .scheduler-source-visit.work-completed{border-left-color:#27894f;background:#f5fbf7;color:var(--ink)}
.scheduler .scheduler-source-visit.work-scheduled{border-left-color:#3779c5;background:#f5f9ff;color:var(--ink)}
.scheduler .scheduler-source-visit.work-unscheduled{border-left-color:#c79125;background:#fffdf6;color:var(--ink)}
.scheduler .scheduler-source-visit.work-overdue{border-left-color:#c34255;background:#fff6f7;color:var(--ink)}
.scheduler .scheduler-source-visit.work-needs_review,.scheduler .scheduler-source-visit.work-excluded,.scheduler .scheduler-source-visit.work-not_required{border-left-color:#8394a0;background:#f7f8f9;color:var(--ink)}
.scheduler .scheduler-calendar-day.has-overdue{border-top:3px solid #c34255}
.scheduler .scheduler-calendar-day.all-done{border-top:3px solid #27894f}
@media(max-width:600px){.scheduler .scheduler-source-category-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.scheduler-source-category-counts button{min-width:0;justify-content:space-between;font-size:.72rem;text-align:left}.scheduler .scheduler-calendar-day{min-height:104px}.scheduler .scheduler-calendar-status{font-size:.55rem;white-space:nowrap;overflow-wrap:normal;word-break:normal}.scheduler-calendar-work-counts .scheduler-work-count{font-size:.59rem}.scheduler .scheduler-work-legend{font-size:.66rem}}
