@media screen and (max-width:720px){
 .shell:has(.mobile-schedule-focus) .topbar{padding:4px 2px;min-height:24px;margin:0}
 .shell:has(.mobile-schedule-focus) .topbar .shell-heading strong{font-size:13px;max-width:100%}
 .shell:has(.mobile-schedule-focus) .topbar .shell-heading small,.shell:has(.mobile-schedule-focus) .topbar .shell-tools{display:none}
 .shell:has(.mobile-schedule-focus) .main{padding:0 6px calc(72px + env(safe-area-inset-bottom))}
 .mobile-schedule-focus{padding:0!important;border-radius:12px!important;border:1px solid #d7e7f3;position:relative}
 .mobile-schedule-focus .appointment-command-bar{display:block;padding:0!important;min-height:0}
 .mobile-schedule-focus .schedule-mode-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0!important;margin:0!important;border-bottom:1px solid #dae7f1}
 .mobile-schedule-focus .schedule-mode-tabs button{padding:8px 2px!important;min-height:42px!important;font-size:13px;white-space:nowrap}
 .mobile-schedule-focus .appointment-command-bar>.actions{display:contents}
 .mobile-schedule-focus #schedule-followup,.mobile-schedule-focus #ap-sidebar-toggle{display:none!important}
 .mobile-schedule-focus #new-appointment{position:fixed!important;right:14px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:15;padding:10px 16px!important;min-height:46px!important;box-shadow:0 4px 14px #07609b33;border-radius:24px;color:white;background:#008ccd;border:0}
 .mobile-schedule-focus .appointment-board-main{padding:0 6px 6px!important}
 .mobile-schedule-date{display:grid;grid-template-columns:40px minmax(0,1fr) 40px 48px;align-items:center;gap:2px;min-height:44px}
 .mobile-schedule-date #ap-range{margin:0;text-align:center;font-size:13px;line-height:1.4;color:#14567f}
 .mobile-schedule-date button{padding:4px 2px!important;min-height:42px!important;font-size:12px;border:0;background:transparent;color:#0a76b5}
 .mobile-schedule-focus .appointment-controls[hidden]{display:none!important}
 .mobile-schedule-tools{border:0;border-top:1px solid #e6eef6;background:#f3f9ff;margin:0 84px 4px 0;min-width:0;border-radius:8px}
 .mobile-schedule-tools>summary{display:flex;align-items:center;gap:6px;justify-content:space-between;padding:8px;box-sizing:border-box;min-height:42px;color:#0874af;font-size:13px;cursor:pointer;list-style:none}
 .mobile-schedule-tools>summary::after{content:'⌄';flex:none}.mobile-schedule-tools[open]>summary::after{content:'⌃'}
 .mobile-schedule-tools>summary small{font-size:11px;color:#5f7f96;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
 .mobile-schedule-tool-body{padding:4px 8px 8px}
 .mobile-schedule-tool-body .appointment-primary-filters{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0}
 .mobile-schedule-tool-body .appointment-primary-filters>*{flex:1 1 110px;min-width:0!important;min-height:44px!important;font-size:14px}
 .mobile-schedule-tool-body .appointment-filter-toggle{position:static!important;display:block!important;padding:8px!important}
 .mobile-schedule-tool-body .appointment-view-controls{gap:6px;padding:4px 0;flex-wrap:wrap}
 .mobile-schedule-tool-body .appointment-status-strip{margin:6px 0}.mobile-schedule-tool-body .appointment-status-strip button{min-height:42px;font-size:12px;flex-shrink:0}
 .mobile-schedule-tool-body .week-strip button{min-height:54px!important;padding:4px 0!important}
 .mobile-schedule-tool-body #ap-sync{font-size:11px;margin:4px 0}
 .mobile-schedule-enlarge{position:absolute;right:6px;top:88px;min-height:42px!important;padding:6px!important;width:78px;font-size:12px;border:1px solid #c8dff2;color:#0874af;background:#e6f5ff;border-radius:8px}
 .mobile-schedule-focus #ap-results{overflow:visible}
 .mobile-schedule-focus .calendar-empty,.mobile-schedule-focus .calendar-help,.mobile-schedule-focus .calendar-legend{display:none!important}
 .mobile-schedule-focus .calendar-business{margin:0;min-height:32px;padding:0 4px;font-size:11px}
 .mobile-schedule-focus .calendar-business button{min-height:30px!important;padding:3px 6px;font-size:11px}
 .mobile-schedule-focus .schedule-scroll{height:var(--mobile-schedule-room,calc(100dvh - 238px))!important;max-height:none!important;min-height:260px;border-radius:8px;overscroll-behavior:contain}
 .mobile-schedule-focus .schedule-column-title,.mobile-schedule-focus .schedule-corner{min-height:34px!important;height:34px;box-sizing:border-box;padding:4px!important;font-size:12px}
 .mobile-schedule-focus .schedule-column-title small{display:inline;margin-left:5px;font-size:10px}
 #view .mobile-schedule-focus.mobile-schedule-fullscreen{position:fixed;inset:max(0px,env(safe-area-inset-top)) 0 0;z-index:20;background:white;border-radius:0!important;overflow:auto!important;height:auto;min-height:0;max-height:none}
 .mobile-schedule-fullscreen .appointment-command-bar{display:contents}.mobile-schedule-fullscreen .schedule-mode-tabs{display:none}.mobile-schedule-fullscreen .mobile-schedule-enlarge{top:45px}.mobile-schedule-fullscreen #new-appointment{z-index:25;bottom:calc(14px + env(safe-area-inset-bottom))}
 .mobile-schedule-fullscreen .schedule-scroll{height:var(--mobile-schedule-room,calc(100dvh - 136px))!important}
}
@media print{.mobile-schedule-enlarge,.mobile-schedule-tools{display:none!important}}
@media screen and (max-width:720px){
 .shell:has(.mobile-schedule-reference) .topbar,.shell:has(.mobile-schedule-reference) .mobile-bottom{display:none!important}
 .shell:has(.mobile-schedule-reference) .main{padding:0!important;background:white}
 #view .mobile-schedule-reference{border:0!important;border-radius:0!important;min-height:100dvh;background:white;overflow:visible}
 .mobile-schedule-reference .appointment-command-bar{display:none!important}
 .mobile-schedule-ref-header{display:flex;align-items:center;gap:12px;height:48px;border-bottom:1px solid #f0f1f3;padding:0 8px}
 .mobile-schedule-ref-header button{background:white;border:0;color:#222;min-height:44px;min-width:44px;padding:6px;font-size:17px;border-radius:0}
 .mobile-schedule-ref-header>button:first-child{font-size:30px;width:44px}
 .mobile-schedule-ref-header #schedule-board{font-weight:700;border-bottom:3px solid #13bdcb}
 .mobile-schedule-ref-header #schedule-followup:not([hidden]){display:block!important;color:#7b858c}
 .mobile-schedule-ref-header .mobile-schedule-ref-filter{margin-left:auto}
 .mobile-schedule-reference .appointment-board-main{padding:0 6px 6px!important}
 .mobile-schedule-reference #ap-week-strip{position:relative;display:block!important;width:100%;padding:0!important}
 .mobile-schedule-reference .week-strip-heading{position:absolute;left:0;right:0;top:14px;display:flex;justify-content:space-between;height:44px;pointer-events:none}
 .mobile-schedule-reference .week-strip-heading strong{display:none}.mobile-schedule-reference .week-strip-heading button{pointer-events:auto;width:20px;min-width:20px;padding:0;min-height:44px;font-size:20px;color:#84939c;background:white;border:0}
 .mobile-schedule-reference .week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0 20px;padding:3px 0!important;gap:0}
 .mobile-schedule-reference .week-strip button{min-height:70px!important;height:70px!important;padding:3px 0!important;gap:2px;background:white!important;border:0;border-radius:0;color:#535e65;display:flex;flex-direction:column;align-items:center}
 .mobile-schedule-reference .week-strip span{font-size:11px;line-height:14px;color:#8a949b!important}
 .mobile-schedule-reference .week-strip strong{width:32px;height:32px;font-size:17px;line-height:32px;border-radius:50%;color:#273945}
 .mobile-schedule-reference .week-strip small{font-size:9px;color:#a0aab1!important}
 .mobile-schedule-reference .week-strip .selected strong{background:#1ac6cf!important;color:white!important}
 .mobile-schedule-reference .month-picker-toggle{display:block;width:100%;margin:0!important;padding:1px 0!important;min-height:24px!important;height:24px;font-size:11px;color:#8e9ba4;border:0;background:white}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .week-strip-heading{position:static;justify-content:center;pointer-events:auto;height:32px}.mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .week-strip-heading strong{display:block}
 .mobile-schedule-ref-doctor{display:flex;align-items:center;justify-content:center;min-height:34px;border-block:1px solid #f0f1f3;background:#fafafa;gap:5px}
 .mobile-schedule-reference .mobile-schedule-ref-doctor #ap-doctor{display:block;min-height:32px;max-width:70%;width:auto;min-width:140px;border:0;background:transparent;font-size:14px;text-align:center;color:#303d44;padding:3px 8px}
 .mobile-schedule-ref-doctor small{font-size:10px;color:#909da5}
 .mobile-schedule-reference .mobile-schedule-ref-tools{margin:0!important;background:#f6fafb;border-radius:0}
 .mobile-schedule-ref-tools>summary{display:flex;min-height:36px;padding:6px 12px;color:#7b8991;font-size:12px}.mobile-schedule-ref-tools>summary small{display:none}.mobile-schedule-ref-tools .mobile-schedule-tool-body{padding:10px}
 .mobile-schedule-reference .mobile-schedule-ref-tools .appointment-filter-body{display:flex!important;flex-wrap:wrap;gap:8px;padding:8px 0}
 .mobile-schedule-reference .mobile-schedule-ref-tools .appointment-filter-field{flex:1 1 130px;min-width:0}
 .mobile-schedule-reference .mobile-schedule-ref-tools .appointment-filter-field input,.mobile-schedule-reference .mobile-schedule-ref-tools .appointment-filter-field select{width:100%;box-sizing:border-box}
 .mobile-schedule-reference .mobile-schedule-ref-tools #ap-filter-toggle{display:none!important}
 .mobile-schedule-ref-tools .mobile-schedule-enlarge{position:static;width:auto;min-width:90px;margin:8px 4px}
 .mobile-schedule-reference .calendar-business{display:none!important}
 .mobile-schedule-reference .schedule-combined .schedule-column-title,.mobile-schedule-reference .schedule-combined .schedule-corner{display:none!important}
 .mobile-schedule-reference .schedule-times{background:white;width:42px;border:0}
 .mobile-schedule-reference .schedule-grid{grid-template-columns:42px repeat(var(--calendar-columns),minmax(var(--calendar-column-width),1fr))}
 .mobile-schedule-reference .schedule-combined .schedule-grid{grid-template-columns:42px minmax(0,1fr)!important}
 .mobile-schedule-reference .schedule-time{background:white!important;border:0!important;color:#8f969c!important;font-size:11px;font-weight:400;line-height:20px}
 .mobile-schedule-reference .schedule-time:nth-child(even){color:transparent!important}
 .mobile-schedule-reference .schedule-time:nth-child(4n+1){font-size:12px;font-weight:600}
 .mobile-schedule-reference .schedule-slot{background:white;border-color:#edf0f3!important}.mobile-schedule-reference .schedule-slot.outside-business-hours{background:#f6f7f8}
 .mobile-schedule-reference .schedule-event{background:#f4f5f7!important;border:0!important;border-top:3px solid var(--event-color)!important;border-radius:2px!important;padding:3px 5px!important;color:#313a42}
 .mobile-schedule-reference .schedule-event strong{font-size:13px}.mobile-schedule-reference .schedule-event strong small{font-size:10px;font-weight:400;color:#8a969e}
 .mobile-schedule-ref-floating{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:flex;gap:12px;z-index:30}
 .mobile-schedule-reference .mobile-schedule-ref-floating button,.mobile-schedule-reference .mobile-schedule-ref-floating #new-appointment{position:static!important;width:48px;height:48px;min-height:48px!important;padding:0!important;border-radius:50%!important;border:0;background:white!important;color:#25343d!important;box-shadow:0 3px 12px #1b3a4b24;font-size:22px}
 .mobile-schedule-reference .mobile-schedule-ref-floating #new-appointment{font-size:30px}
}
@media screen and (max-width:720px){
 .mobile-schedule-reference .schedule-event>strong{order:0}
 .mobile-schedule-reference .schedule-event .event-purpose{order:1}
 .mobile-schedule-reference .schedule-event .event-time{order:2;font-size:10px;line-height:12px}
}
@media screen and (max-width:720px){
 /* Calendar hit areas must stay aligned with the minute-to-pixel mapping. */
 .mobile-schedule-focus .schedule-slot{min-height:0!important;height:var(--calendar-slot-height,44px)!important;padding:0!important}
}
@media screen and (max-width:720px){
 /* Reuse the schedule filter controls in a drawer with a persistent action row. */
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]){inset:0 0 0 auto;width:88vw!important;max-width:88vw!important;height:100dvh;max-height:100dvh;margin:0;padding:0!important;border:0;border-radius:0;overflow:hidden;box-sizing:border-box;background:#fff}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"])::backdrop{background:#0005}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-content{display:flex;flex-direction:column;height:100%;min-height:0}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-content>h2{display:flex;flex:none;align-items:center;justify-content:space-between;gap:8px;min-height:52px;margin:0;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;border-bottom:1px solid #f0f2f3;font-size:17px;font-weight:500}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #cancel-modal{min-width:44px;min-height:44px;padding:6px;border:0;background:transparent;color:#7c8990;font-size:13px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form{display:flex;flex:1;flex-direction:column;min-height:0;margin:0;overflow:hidden}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.grid{display:block!important;flex:1;min-height:0;padding:12px 14px 4px;overflow-y:auto;overscroll-behavior:contain}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group{margin:0 0 14px;padding:0 0 14px;border:0;border-bottom:1px solid #f0f2f3}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group legend{padding:0 0 8px;font-size:14px;font-weight:500;color:#424e55}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group button{min-width:0;min-height:44px;padding:7px 4px;border:1px solid transparent;border-radius:3px;background:#f5f6f7;color:#626b72;font-size:13px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group button[aria-pressed="true"]{border-color:#18bac6;background:#eefbfc;color:#0da2b0}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.actions{display:flex;flex:none;gap:0;position:static;margin:0;padding:0 0 env(safe-area-inset-bottom);border-top:1px solid #edf0f2;background:#fff}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.actions>button{flex:1;min-width:0!important;min-height:50px;margin:0;padding:10px;border:0;border-radius:0;font-size:15px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #mobile-filter-reset{background:#fff;color:#626b72}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.actions>.primary{background:#10b9c7;color:#fff}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #form-error:empty{display:none}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #form-error:not(:empty){flex:none;padding:8px 14px;font-size:13px}
}
/* Dedicated phone schedule: calendar and time grid fill the screen, while the
   original controls remain available to the existing appointment controller. */
@media screen and (max-width:720px){
 #view .mobile-schedule-reference{display:flex;flex-direction:column;height:100dvh;min-height:0;overflow:hidden!important;padding-top:env(safe-area-inset-top)!important;box-sizing:border-box}
 .mobile-schedule-reference .appointment-layout{display:flex!important;flex:1;min-height:0}
 .mobile-schedule-reference .appointment-board-main{display:flex;flex:1;min-height:0;flex-direction:column;padding:0!important}
 .mobile-schedule-reference .mobile-schedule-ref-tools,.mobile-schedule-reference .mobile-schedule-date,.mobile-schedule-reference .appointment-controls{display:none!important}
 .mobile-schedule-ref-header{flex:none;display:grid;grid-template-columns:40px auto auto 1fr 40px;gap:7px;min-height:48px;height:48px;padding:0 12px;box-sizing:border-box;border:0}
 .mobile-schedule-ref-header #schedule-board,.mobile-schedule-ref-header #schedule-followup{font-size:16px;line-height:44px;min-width:0;padding:0 7px;background:transparent!important;border:0;position:relative;color:#aaa;font-weight:500}
 .mobile-schedule-ref-header #schedule-board{color:#222;font-weight:600}
 .mobile-schedule-ref-header #schedule-board::after{content:'';position:absolute;bottom:0;left:28%;right:28%;height:2px;background:#2dbac9}
 .mobile-schedule-ref-header .mobile-schedule-ref-filter{grid-column:5;width:40px;min-width:40px;justify-self:end;padding:7px}
 .mobile-schedule-ref-header>button:first-child{font-size:29px;font-weight:300;line-height:36px;padding:0;min-width:36px;width:36px;color:#161b1e}
 #view .mobile-schedule-reference #ap-week-strip{flex:none;padding:0 12px!important;box-sizing:border-box;border-bottom:1px solid #e9eaec;box-shadow:0 2px 4px #00000005;z-index:3;background:#fff}
 .mobile-schedule-reference .week-strip{margin:0;padding:8px 0 0!important;border:0;gap:0}
 .mobile-schedule-reference .week-strip-heading{left:1px;right:1px;top:35px;z-index:2;height:32px}
 .mobile-schedule-reference .week-strip-heading button{width:14px;min-width:14px;color:#c2c6c9;font-size:15px;min-height:32px;padding:0}
 .mobile-schedule-reference .week-strip button{height:82px!important;min-height:82px!important;gap:4px;padding:2px 0!important;justify-content:flex-start}
 #view .mobile-schedule-reference .week-strip .calendar-weekday{font-size:11px;font-weight:400;line-height:16px;color:#777!important}
 #view .mobile-schedule-reference .week-strip .calendar-strip-date{position:relative;display:flex;flex-direction:column;justify-content:center;width:39px;height:49px;gap:0;border-radius:50%;padding:0}
 .mobile-schedule-reference .week-strip strong{display:block;min-height:19px;height:19px;width:100%;line-height:19px;font-size:15px;font-weight:500;background:transparent!important;border-radius:0;color:#262a2d}
 #view .mobile-schedule-reference .week-strip .mobile-schedule-lunar{height:11px;line-height:11px;min-height:11px;font-size:9px;color:#93999e!important}
 #view .mobile-schedule-reference .week-strip .calendar-count{min-height:10px;height:10px;line-height:10px;font-size:8px;color:#bcc1c6!important}
 #view .mobile-schedule-reference .week-strip button.selected .calendar-strip-date{background:#2ac5cf;color:#fff}
 #view .mobile-schedule-reference .week-strip button.selected strong,#view .mobile-schedule-reference .week-strip button.selected .mobile-schedule-lunar,#view .mobile-schedule-reference .week-strip button.selected .calendar-count{color:#fff!important}
 #view .mobile-schedule-reference .week-strip button[aria-current=date]:not(.selected) .calendar-strip-date{box-shadow:inset 0 0 0 1px #2ac5cf}
 .mobile-schedule-reference .week-strip .calendar-day-badge{right:-5px;top:3px}
 .mobile-schedule-reference .mobile-month-toggle{display:flex;align-items:center;justify-content:center;min-height:20px!important;height:20px;margin:0;padding:0!important;width:100%;border:0;background:transparent}
 .mobile-calendar-chevron{--nav-mask:url('/static/assets/icons/caret-down.svg');display:block;width:18px;height:14px;background:#c9ced2;mask:var(--nav-mask) center/contain no-repeat;-webkit-mask:var(--nav-mask) center/contain no-repeat}
 .mobile-month-toggle[aria-expanded=true] .mobile-calendar-chevron{transform:rotate(180deg)}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .week-strip{display:none}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .week-strip-heading{display:flex;position:relative;top:auto;left:auto;right:auto;height:28px;justify-content:center;gap:20px}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .week-strip-heading strong{display:block;font-size:12px;font-weight:400;color:#93999e}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid) .mobile-month-toggle{position:absolute;bottom:0;left:0}
 .mobile-schedule-reference #ap-week-strip:has(.month-picker-grid){position:relative;padding-bottom:20px!important;max-height:52dvh;overflow:auto;scrollbar-width:none}
 #view .mobile-schedule-reference .month-picker-grid{padding:0 0 4px;gap:0}
 #view .mobile-schedule-reference .month-picker-grid>button{height:42px;min-height:42px!important;padding:1px 0;border:0;border-radius:50%;background:transparent}
 #view .mobile-schedule-reference .month-picker-grid .calendar-date-top{height:16px;line-height:16px}
 #view .mobile-schedule-reference .month-picker-grid .calendar-day-number{font-size:14px;font-weight:400;line-height:16px}
 #view .mobile-schedule-reference .month-picker-grid .calendar-day-note{font-size:9px;line-height:11px;min-height:11px}
 #view .mobile-schedule-reference .month-picker-grid .calendar-count{font-size:8px;line-height:9px;min-height:9px}
 #view .mobile-schedule-reference .month-picker-grid>button.selected{background:#2ac5cf;color:white}
 .mobile-schedule-reference #ap-week-strip .calendar-day-legend,.mobile-schedule-reference #ap-week-strip .calendar-schedule-unknown{display:none}
 .mobile-schedule-reference .mobile-schedule-ref-doctor{flex:none;min-height:30px;height:30px;border:0;border-bottom:1px solid #eaecef;background:#fff}
 .mobile-schedule-reference .mobile-schedule-ref-doctor small{display:none}
 .mobile-schedule-reference .mobile-schedule-ref-doctor #ap-doctor{max-width:95%;font-size:13px;font-weight:400;text-align-last:center;min-height:28px;height:28px;padding:1px 8px;border:0;background:transparent}
 .mobile-schedule-reference #ap-results{flex:1;min-height:0;display:flex;flex-direction:column;overflow:auto}
 #view .mobile-schedule-reference .schedule-scroll{flex:1;height:var(--mobile-schedule-room)!important;min-height:160px;max-height:none!important;border:0;border-radius:0;scrollbar-width:none;overscroll-behavior:contain}
 .mobile-schedule-reference .schedule-scroll::-webkit-scrollbar{display:none}
 .mobile-schedule-reference .schedule-grid{grid-template-columns:40px repeat(var(--calendar-columns),minmax(var(--calendar-column-width),1fr));background:#fff}
 .mobile-schedule-reference .schedule-combined .schedule-grid{grid-template-columns:40px minmax(0,1fr)!important}
 .mobile-schedule-reference .schedule-times{width:40px;color:#999;background:#fff}
 #view .mobile-schedule-reference .schedule-time{height:var(--calendar-slot-height,22px);min-height:0;line-height:16px;text-align:center;font-size:9px;font-weight:400;color:#a2a5aa!important;transform:translateY(-6px)}
 #view .mobile-schedule-reference .schedule-time:nth-child(even){color:transparent!important}
 #view .mobile-schedule-reference .schedule-time:nth-child(4n+1){font-size:9px;font-weight:400}
 .mobile-schedule-reference .schedule-end-time{font-size:9px;left:5px;color:#a2a5aa;background:white}
 #view .mobile-schedule-reference .schedule-slot{border:0;border-top:1px solid transparent!important;min-height:0!important;height:var(--calendar-slot-height,22px)!important;background:#fff}
 #view .mobile-schedule-reference .schedule-slot:nth-child(odd){border-top-color:#eceef1!important}
 #view .mobile-schedule-reference .schedule-slot.outside-business-hours{background:#fcfcfd}
 #view .mobile-schedule-reference .schedule-event{box-shadow:none;background:#f5f5f7!important;border:0!important;border-top:3px solid var(--event-color)!important;border-radius:1px!important;padding:2px 5px!important;line-height:14px;gap:0}
 .mobile-schedule-reference .schedule-event strong{font-size:12px;line-height:16px;font-weight:600}
 .mobile-schedule-reference .schedule-event strong small{font-size:9px;font-weight:400;color:#8f9299}
 .mobile-schedule-reference .schedule-event .event-purpose,.mobile-schedule-reference .schedule-event .event-doctor{font-size:9px!important;line-height:12px;color:#999}
 .mobile-schedule-reference .schedule-event .event-time{font-size:8px!important;line-height:11px;color:#93999e}
 .mobile-schedule-reference .schedule-now{height:1px;background:#ff555a}
 .mobile-schedule-reference .schedule-now::before{width:6px;height:6px;top:-3px;background:#ff555a}
 .mobile-schedule-reference .schedule-now span{right:auto;left:-39px;top:-8px;line-height:14px;font-size:9px;color:#f34a50;background:#fff;padding:0 1px}
 .mobile-schedule-reference .mobile-schedule-ref-floating{right:15px;bottom:calc(18px + env(safe-area-inset-bottom));gap:8px}
 .mobile-schedule-reference .mobile-schedule-ref-floating button,.mobile-schedule-reference .mobile-schedule-ref-floating #new-appointment{height:43px;width:43px;min-height:43px!important;box-shadow:0 2px 7px #0002;font-size:28px}
 .mobile-schedule-reference .mobile-schedule-ref-floating #ap-today{font-size:14px;width:36px;height:36px;min-height:36px!important;align-self:center}
 .mobile-schedule-reference .mobile-schedule-ref-floating [hidden]{display:none!important}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]){width:70vw!important;max-width:70vw!important;height:100dvh;max-height:100dvh;animation:mobile-schedule-filter-enter .18s ease-out}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-content>h2{min-height:42px;padding:calc(4px + env(safe-area-inset-top)) 12px 4px;font-size:15px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.grid{padding:12px 12px 0}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group{border-bottom:0;margin:0;padding:0 0 15px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group legend{font-size:13px;color:#3c4145;padding-bottom:10px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group>div{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group button{min-height:32px;padding:5px 2px;font-size:12px;line-height:18px;border-radius:2px;background:#f6f6f7;color:#62666c;border:1px solid transparent}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-group button[aria-pressed=true]{background:#fff;border-color:#69c8d3;color:#46b5c3}
 .mobile-filter-views .feature-symbol{display:block;width:28px;height:28px;margin:3px auto;color:#9eabb3}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-views button{min-height:68px;font-size:11px}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-views button[aria-pressed=true] .feature-symbol{color:#26b4c4}
 .mobile-filter-scope-tabs{display:flex;gap:20px;margin:0 -12px 14px;padding:9px 12px 0;border-block:7px solid #f7f7f8;border-bottom:0}
 .mobile-filter-scope-tabs button{position:relative;border:0;background:#fff;color:#92979c;padding:0 0 10px;font-size:14px;min-height:35px}
 .mobile-filter-scope-tabs button[aria-selected=true]{color:#333}
 .mobile-filter-scope-tabs button[aria-selected=true]::after{content:'';position:absolute;height:2px;background:#2bb7c7;left:0;right:0;bottom:0}
 .mobile-filter-scope-panel{min-height:180px}
 .mobile-filter-scope-panel[hidden]{display:none!important}
 .mobile-filter-status{margin:0 -12px!important;padding:14px 12px 10px!important;border-top:7px solid #f7f7f8!important}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) .mobile-filter-status>div{grid-template-columns:repeat(3,minmax(0,1fr))}
 dialog.mobile-filter-drawer:has([data-filter-key="ap-view"]) #modal-form>.actions>button{min-height:46px;font-size:14px}
 @keyframes mobile-schedule-filter-enter{from{transform:translateX(100%)}to{transform:translateX(0)}}
}
@media screen and (max-width:720px) and (prefers-reduced-motion:reduce){dialog.mobile-filter-drawer{animation:none!important}}
@media screen and (max-width:720px){
 #view:has(>.mobile-schedule-reference)>.pagehead{display:none!important}
 #view .mobile-schedule-reference{margin:0!important;box-shadow:none}
}
@media screen and (max-width:720px){
 #view .mobile-schedule-reference.mobile-schedule-fullscreen{display:flex;inset:0;height:100dvh!important;max-height:100dvh;overflow:hidden!important;box-sizing:border-box}
}
