/* Week navigation and accessible appointment selection */
.schedule-hours{padding:12px 18px;background:#edf4e8;color:#214a2b;font-size:15px}.schedule-toolbar{justify-content:flex-start}.calendar{min-width:900px}.slot{min-height:42px;height:42px}.time-label{min-height:42px;height:42px;padding:6px;font-size:12px}
.week-navigation{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:15px 18px;background:#f7f8f2;border-bottom:1px solid #d8e5d4}.week-navigation strong{color:#1f5135;font-size:1rem}.week-navigation .button{min-height:40px;padding:8px 12px;font-size:14px;width:auto}.slot:disabled{cursor:not-allowed}.slot.busy::before{content:none!important}.slot:focus-visible,.week-navigation button:focus-visible{outline:3px solid #155f8c;outline-offset:2px}.modal-card{max-height:calc(100dvh - 32px);overflow-y:auto}.modal-card #reqStartDisplay{background:#f2f5ef}@media(max-width:600px){.week-navigation{justify-content:center}.week-navigation strong{width:100%;text-align:center;order:-1}}

/* Customer-friendly single-day calendar */
.schedule-shell{overflow:hidden}.day-picker{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:9px;padding:22px 22px 12px;background:#fffdf8}.day-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #d5e2d2;border-radius:15px;background:#f5f7f1;color:#294c34;padding:12px 3px;cursor:pointer;font:inherit;min-height:78px}.day-tab span{font-size:13px;font-weight:700}.day-tab strong{font-size:23px}.day-tab.active{background:#285639;color:#fff;border-color:#285639;box-shadow:0 5px 14px rgba(28,70,40,.15)}.day-tab:hover:not(.active){background:#e7f0e2}.day-tab:focus-visible,.day-slot:focus-visible{outline:3px solid #e8792c;outline-offset:3px}.day-calendar-heading{padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e0e8db}.day-calendar-heading h3{margin:0;font-size:clamp(19px,2.5vw,26px);color:#21472e}.day-calendar-heading span{font-weight:700;color:#516e5b;white-space:nowrap}.day-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:4px 24px 28px}.day-slot{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:15px 18px;border:1px solid #d5e3d0;border-radius:13px;background:#f5fbf3;color:#244b30;font:inherit;text-align:left;cursor:pointer}.day-slot-time{font-weight:800;font-size:16px}.day-slot-status{font-size:13px;font-weight:750}.day-slot.available:hover{border-color:#6f9f73;background:#e8f6e5}.day-slot.booked{background:#e8edf0;color:#566873;border-color:#e0e6e9;cursor:not-allowed}.day-slot.past{background:#f5f5f2;color:#797f7c;border-color:#ebede8;cursor:not-allowed}.day-slot-grid:not(:has(.day-slot)){display:block;color:#425d4a}.week-navigation{padding:20px 18px}.week-navigation-actions .button{min-width:145px}@media(max-width:650px){.day-picker{gap:4px;padding:14px 8px}.day-tab{border-radius:10px;min-height:64px;padding:7px 1px}.day-tab span{font-size:11px}.day-tab strong{font-size:18px}.day-calendar-heading{padding:14px;align-items:flex-start;flex-direction:column}.day-slot-grid{grid-template-columns:1fr;padding:4px 12px 18px;gap:8px}.day-slot{min-height:56px;padding:12px 14px}.week-navigation-actions .button{min-width:0}}
/* Scheduling page refinement */
#scheduleApp{background:#fffdf9;border:1px solid #e1e9dc;border-radius:24px;box-shadow:0 18px 45px rgba(28,57,37,.08);overflow:hidden}
#scheduleApp .schedule-toolbar{padding:25px 28px;background:#f4f5eb;display:flex;align-items:center}
#scheduleApp .schedule-toolbar b{font-size:22px;color:#234a31;letter-spacing:-.025em}
#scheduleApp .privacy-note{margin-top:6px;color:#5a6e63;font-size:14px;line-height:1.5}
#scheduleApp .week-navigation{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;background:#fffdf9;padding:22px 18px 14px;border-bottom:0}
#scheduleApp .week-navigation>strong{font-size:21px;color:#254b33;letter-spacing:-.02em;text-align:center}
#scheduleApp .week-navigation-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;width:100%}
#scheduleApp .week-navigation-actions .button{display:inline-flex;align-items:center;justify-content:center;min-width:152px;min-height:45px;padding:10px 17px;border-radius:12px;font-size:14px;font-weight:750;line-height:1.25;text-align:center;letter-spacing:0;white-space:nowrap;background:#f5f7f1;color:#244d35;border:1px solid #d4e2d0;box-shadow:none}
#scheduleApp .week-navigation-actions .button:hover{background:#e6efe3}
#scheduleApp .schedule-hours{text-align:center;background:#fffdf9;color:#486250;padding:6px 14px 20px;font-size:14px}
#scheduleApp .day-picker{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;padding:16px 26px 22px;background:#fffdf9}
#scheduleApp .day-tab{appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:83px;border:1px solid #d7e4d4;border-radius:16px;background:#f3f7f0;color:#284b33;font-family:inherit;cursor:pointer;box-shadow:none;transition:background .15s,border-color .15s,transform .15s}
#scheduleApp .day-tab:hover{transform:translateY(-2px)}
#scheduleApp .day-tab.active{background:#285b3a;color:#fff;border-color:#285b3a;box-shadow:0 8px 18px rgba(29,79,43,.18)}
#scheduleApp .day-tab span{font-size:13px;font-weight:700;letter-spacing:.02em}
#scheduleApp .day-tab strong{font-size:25px;font-weight:800;line-height:1}
#scheduleApp .day-calendar-heading{padding:20px 28px;background:#f5f7f1;border-top:1px solid #e3e9df;display:flex;align-items:center;justify-content:space-between;gap:12px}
#scheduleApp .day-calendar-heading h3{margin:0;font-size:23px;color:#254d33;line-height:1.3}
#scheduleApp .day-calendar-heading span{font-size:14px;color:#5b7060;font-weight:700}
#scheduleApp .day-slot-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:24px 28px 30px;background:#fffdf9}
#scheduleApp .day-slot{appearance:none;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:70px;width:100%;padding:16px 20px;border:1px solid #d7e5d4;border-radius:15px;background:#f1faf0;color:#285039;text-align:left;font-family:inherit;cursor:pointer;box-shadow:0 2px 4px rgba(32,57,38,.025)}
#scheduleApp .day-slot-time{font-size:17px;font-weight:800;line-height:1.3}
#scheduleApp .day-slot-status{font-size:13px;font-weight:800;letter-spacing:.01em}
#scheduleApp .day-slot.available:hover{background:#e2f3df;border-color:#80aa7c;transform:translateY(-1px)}
#scheduleApp .day-slot.booked{background:#e8edef;color:#52636d;border-color:#e0e6e9;cursor:not-allowed}
#scheduleApp .day-slot.past{background:#f5f5f1;color:#7a827b;border-color:#ebede8;cursor:not-allowed}
#scheduleApp .day-tab:focus-visible,#scheduleApp .day-slot:focus-visible,#scheduleApp .week-navigation-actions .button:focus-visible{outline:3px solid #d76b24;outline-offset:3px}
@media(max-width:720px){#scheduleApp .day-picker{gap:5px;padding:12px 9px 17px}#scheduleApp .day-tab{min-height:66px;border-radius:10px;padding:7px 1px}#scheduleApp .day-tab span{font-size:11px}#scheduleApp .day-tab strong{font-size:18px}#scheduleApp .day-slot-grid{grid-template-columns:1fr;gap:9px;padding:15px}#scheduleApp .day-slot{min-height:62px;padding:13px 15px}#scheduleApp .day-calendar-heading{padding:17px;flex-direction:column;align-items:flex-start}#scheduleApp .week-navigation-actions .button{min-width:0;flex:1 1 125px}#scheduleApp .schedule-toolbar{padding:20px}}
@media(prefers-reduced-motion:reduce){#scheduleApp .day-tab,#scheduleApp .day-slot{transition:none!important;transform:none!important}}
/* Oct 12: ensure schedule layout remains readable even when global button styles vary */
#scheduleApp #dayPicker button.day-tab{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;min-width:0!important;white-space:normal!important}
#scheduleApp #calendar button.day-slot{display:flex!important;align-items:center!important;justify-content:space-between!important;white-space:normal!important;line-height:1.4!important}
#scheduleApp #calendar button.day-slot span{display:block!important}
@media(max-width:520px){#scheduleApp #dayPicker{grid-template-columns:repeat(7,minmax(0,1fr))!important}#scheduleApp #dayPicker button.day-tab{font-size:11px!important}}
