.calendar-week-nav{display:flex;align-items:center;gap:7px;margin-left:auto}.calendar-week-nav button{border:1px solid var(--line);background:#0b182a;color:var(--text);border-radius:7px;padding:8px 10px;cursor:pointer}.calendar-week-nav button:hover,.calendar-week-nav button.active{border-color:#4f74ff;background:#102542}.calendar-week-nav strong{min-width:150px;text-align:center;font-size:11px;color:#9eb6d4}.calendar-view-toggle{display:flex;gap:4px;padding:3px;border:1px solid var(--line);border-radius:9px}.calendar-day-grid{grid-template-columns:72px minmax(280px,1fr)!important}.calendar-day-grid .day-cell{min-width:280px}.dashboard-calendar-add{width:100%;margin-top:10px;justify-content:center}.calendar-fixed-modal{z-index:120;pointer-events:auto}.calendar-fixed-modal .appointment-modal{pointer-events:auto}.calendar-fixed-error{padding:10px 12px;border:1px solid #71343a;background:#321922;border-radius:8px;color:#ff9ba4;font-size:11px}.appointment-availability-message{display:block;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:#091523;color:#9eb6d4}.appointment-availability-message.success{border-color:#285d49;color:#78e2ac;background:#0d2b25}.appointment-availability-message.error{border-color:#71343a;color:#ff9ba4;background:#321922}.appointment-modal select[name="time"]:disabled{opacity:.65}.calendar-mobile-date-banner,.calendar-mobile-mode-title{display:none}.appointment-just-created{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #4f74ff!important}.mobile-section-back{display:none}
@media(max-width:1024px){.calendar-toolbar{flex-wrap:wrap;gap:8px}.calendar-week-nav{order:3;width:100%;display:flex;flex-wrap:wrap;gap:7px;margin-left:0}.calendar-week-nav strong{order:1;flex:0 0 100%;width:100%;min-width:0;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:#0b182a;font-size:15px;line-height:1.25;color:var(--text);text-transform:capitalize}.calendar-view-toggle{order:2;flex:0 0 100%;width:100%}.calendar-view-toggle button{flex:1;min-height:46px;font-size:14px;font-weight:800}.calendar-week-nav>[data-week-prev],.calendar-week-nav>[data-week-today],.calendar-week-nav>[data-week-next]{order:3;flex:1 1 0;min-width:0;min-height:44px;padding:7px 5px;font-size:11px;font-weight:800;white-space:normal}.dashboard-calendar-add{min-height:52px;font-size:14px}.calendar-mobile-date-banner,.calendar-mobile-mode-title{display:flex;flex-direction:column;gap:5px;margin:0 0 12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#0b182a}.calendar-mobile-date-banner small,.calendar-mobile-mode-title small{font-size:10px;letter-spacing:.1em;color:#7f9aba}.calendar-mobile-date-banner strong,.calendar-mobile-mode-title strong{font-size:18px;line-height:1.25;text-transform:capitalize}.calendar-mobile-date-banner span{font-size:12px;color:#9eb6d4}.week-scroll{overflow-x:hidden!important;width:100%}.calendar-day-grid{width:100%!important;min-width:0!important;grid-template-columns:52px minmax(0,1fr)!important}.calendar-day-grid .week-head,.calendar-day-grid .week-corner{display:none}.calendar-day-grid .week-time{display:flex!important;align-items:flex-start;justify-content:flex-end;min-height:64px;padding:8px 7px 0 0;font-size:12px;color:#9eb6d4;visibility:visible!important;opacity:1!important}.calendar-day-grid .week-cell,.calendar-day-grid .day-cell{display:block!important;min-width:0!important;width:100%!important;min-height:64px!important;border-bottom:1px solid var(--line);overflow:visible!important}.calendar-day-grid .appointment{position:absolute!important;width:auto!important;min-height:0;margin:0;padding:6px 8px;text-align:left;touch-action:none!important;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-week-agenda{display:flex;flex-direction:column;gap:12px;padding-bottom:24px}.mobile-week-day{border:1px solid var(--line);border-radius:12px;background:#091523;padding:12px}.mobile-week-day>header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-bottom:10px}.mobile-week-day>header b{font-size:15px;text-transform:capitalize}.mobile-week-day>header span,.mobile-week-day>p{font-size:11px;color:#9eb6d4}.mobile-week-day .appointment{position:relative!important;inset:auto!important;width:100%!important;min-height:62px;margin:7px 0;padding:10px 12px;text-align:left;touch-action:none!important;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.mobile-section-back{display:none!important}.page-head{flex-wrap:wrap}.appointment-just-created{scroll-margin-top:140px}.week-module .calendar-summary,.week-module .calendar-kpis,.week-module [class*="calendar-summary"],.week-module [class*="calendar-kpi"]{display:none!important}.mobile-floating-back{position:fixed!important;right:max(16px,env(safe-area-inset-right))!important;bottom:max(18px,env(safe-area-inset-bottom))!important;z-index:9999!important;display:flex!important;visibility:visible!important;opacity:1!important;align-items:center;justify-content:center;gap:7px;min-width:88px;height:54px;padding:0 15px;border:2px solid #9fb0ff;border-radius:29px;background:#3156df;color:#fff;box-shadow:0 10px 32px #000d;font-size:24px;font-weight:900;pointer-events:auto!important}.mobile-floating-back span{font-size:12px}.mobile-dashboard-hidden{display:none!important}.service-cards:has(.mobile-dashboard-communication){display:block!important}.service-cards .mobile-dashboard-communication{display:flex!important;width:100%!important}.mobile-dashboard-calendar-row{cursor:pointer;border-radius:8px}.mobile-dashboard-calendar-row:active{background:#102542}.mobile-appointment-details-backdrop{position:fixed;inset:0;z-index:10000;background:#0009;display:flex;align-items:flex-end}.mobile-appointment-details{width:100%;max-height:92vh;overflow:auto;border:1px solid var(--line);border-radius:20px 20px 0 0;background:#091523;padding:18px}.mobile-appointment-details.loading{min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.mobile-appointment-details>header{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid var(--line);padding-bottom:14px}.mobile-appointment-details>header>div{flex:1}.mobile-appointment-details header small{color:#7f9aba}.mobile-appointment-details h2{margin:4px 0;font-size:23px}.mobile-appointment-details header p{margin:0;color:#9eb6d4}.mobile-appointment-details [data-mobile-details-close]{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#0d1d32;font-size:24px}.mobile-appointment-status{display:inline-block;margin:14px 0 4px;padding:7px 10px;border-radius:20px;background:#18345c;font-size:12px}.mobile-appointment-details dl{margin:8px 0 14px}.mobile-appointment-details dl>div{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.mobile-appointment-details dt{color:#8194af;font-size:11px}.mobile-appointment-details dd{margin:0;font-size:13px}.mobile-loyalty-tile{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;border:1px solid #56398a;border-radius:12px;background:#281c45;padding:15px;color:#fff}.mobile-loyalty-tile span{display:flex;flex-direction:column;gap:4px}.mobile-loyalty-tile small{color:#b8a9d7}.mobile-loyalty-tile strong{font-size:28px}.mobile-appointment-details footer{padding:13px 2px 0;color:#8194af}.mobile-touch-dragging{opacity:.72;transform:scale(1.02);box-shadow:0 0 0 3px #6d8cff!important;touch-action:none!important}.mobile-drop-target{background:#17386a!important;box-shadow:inset 0 0 0 2px #6d8cff!important}.mobile-calendar-toast{position:fixed;z-index:10001;left:50%;bottom:88px;transform:translateX(-50%);max-width:calc(100vw - 36px);padding:11px 15px;border-radius:24px;background:#173a2e;color:#c8ffe8;box-shadow:0 8px 28px #000b;font-size:12px;font-weight:700;text-align:center}.mobile-calendar-toast.error{background:#4a2027;color:#ffd0d5}}

/* Visits span quarter cells: cells must not cover the continued card. */
.week-grid>.week-cell{z-index:auto}
.week-grid .appointment{cursor:pointer;padding:6px 8px;pointer-events:auto;min-height:0;line-height:1.3}
.week-grid .appointment b{font-size:12px}
.week-grid .appointment span,.week-grid .appointment small{font-size:11px}
.week-grid .appointment:focus-visible{outline:3px solid #9fb0ff;outline-offset:1px}
.week-grid .appointment-short span,.week-grid .appointment-short small{display:none}
@media(max-width:1024px){
 .calendar-day-grid .week-time,.calendar-day-grid .week-cell{height:34px!important;min-height:34px!important}
}

.mobile-week-day .appointment b{font-size:12px}
.mobile-week-day .appointment span,.mobile-week-day .appointment small{font-size:11px}
