/* Schedule density follows the device, while every edit keeps its real resource. */
.booking-cabinet .ab-shift-range { display:flex; justify-content:center; white-space:nowrap; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-dialog-inner { padding:20px 16px 16px; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-compact { min-height:0; max-height:calc(90dvh - 36px); overflow:auto; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-compact-form { min-width:0; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-two { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.booking-cabinet .ab-schedule-dialog input:is([type=time],[type=date]) { box-sizing:border-box; width:100%; min-width:0; max-width:100%; min-height:44px; padding:8px; font-size:16px; }
.booking-cabinet .ab-schedule-dialog input::-webkit-date-and-time-value { min-width:0; text-align:center; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields > div { grid-template-columns:46px minmax(0,1fr) minmax(0,1fr); gap:10px; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields > div > label { gap:5px; font-size:12px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact-foot { display:flex; justify-content:flex-end; flex-wrap:nowrap; gap:10px; margin-top:16px; padding:0; border:0; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact-foot > .ab-action { flex:0 1 auto; min-height:44px; font-size:14px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-publish-note { border:0; padding:0; margin:12px 0 0; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-more { border:0; margin-top:8px; }
.booking-cabinet .ab-schedule-secondary { display:flex; flex-wrap:wrap; gap:4px 16px; margin:8px 0; }
.booking-cabinet .ab-schedule-secondary > button { min-height:36px; padding:4px 0; border:0; background:transparent; box-shadow:none; font-size:12px; color:var(--text-secondary); }
.booking-cabinet .ab-schedule-toolbar:has(.ab-section-tools:empty) .ab-section-tools { display:none; }
@media(max-width:768px) {
 .booking-cabinet .ab-shift-scroll { container-type:inline-size; border-radius:8px; }
 .booking-cabinet .ab-shift-table { --ab-mobile-day:calc((100vw - 106px)/7); }
 .booking-cabinet .ab-shift-table :is(th,td):first-child { box-sizing:border-box; width:72px; min-width:72px; max-width:72px; padding:4px; }
 .booking-cabinet .ab-shift-table .ab-resource-avatar { display:none; }
 .booking-cabinet .ab-shift-table .ab-resource-name { display:block; width:100%; max-width:8ch; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-size:10px; line-height:1.2; }
 .booking-cabinet .ab-shift-table--month :is(th,td):not(:first-child) { box-sizing:border-box; width:var(--ab-mobile-day); min-width:var(--ab-mobile-day); max-width:var(--ab-mobile-day); padding:0; }
 .booking-cabinet .ab-shift-table--month :is(th,td),.booking-cabinet .ab-shift-cell { height:44px; min-height:44px; }
 .booking-cabinet .ab-shift-date { gap:2px; }
 .booking-cabinet .ab-shift-date small { font-size:9px; }
 .booking-cabinet .ab-shift-date b { font-size:11px; }
 .booking-cabinet .ab-shift-cell { gap:2px; font-size:10px; line-height:12px; padding:2px 0; }
 .booking-cabinet .ab-shift-range { flex-direction:column; line-height:12px; }
 .booking-cabinet .ab-shift-dash { display:none; }
 .booking-cabinet .ab-schedule-toolbar { display:flex; flex-wrap:nowrap; }
 .booking-cabinet .ab-schedule-toolbar .ab-schedule-period { flex:1; justify-content:flex-start; }
 .booking-cabinet .ab-schedule-toolbar .ab-section-actions { position:static; display:flex; width:auto; }
 .booking-cabinet .ab-schedule-toolbar .ab-calendar-create { position:static; }
 .booking-cabinet #ab-dialog.ab-schedule-dialog .ab-dialog-inner { padding-bottom:calc(16px + env(safe-area-inset-bottom,0px)); }
}
@supports(width:1cqw) { @media(max-width:768px) { .booking-cabinet .ab-shift-table { --ab-mobile-day:calc((100cqw - 72px)/7); } } }

.booking-cabinet .ab-schedule-weekly-fields { gap:6px; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields > div > label { padding:6px 0; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields input[type=time] { min-height:44px; padding:6px; font-size:16px; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields + .ab-muted { display:none; }
.booking-cabinet .ab-schedule-dialog .ab-schedule-effective { margin:8px 0 0; font-size:12px; }
@media(max-width:768px) {
 .booking-cabinet .ab-schedule-publication-row { flex-direction:row; align-items:center; gap:8px; font-size:11px; }
 .booking-cabinet .ab-schedule-publication-row > .ab-action { font-size:11px; min-height:36px; }
 .booking-cabinet .ab-shift-legend { font-size:11px; gap:10px; }
}

.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-field { min-width:0; max-width:100%; }
.booking-cabinet #ab-dialog.ab-schedule-dialog :is(input,select,.ab-v16-select,.ab-v16-select-button) { min-width:0; max-width:100%; box-sizing:border-box; font-size:16px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog input[type=time] { display:block; width:100%; height:44px; margin:0; line-height:normal; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact { overflow-x:clip; overscroll-behavior-x:none; }
.booking-cabinet #ab-dialog.ab-schedule-dialog :is(.ab-day-hours,.ab-day-vacation)[hidden] { display:none; }
.booking-cabinet .ab-day-break > summary { min-height:40px; padding:10px 0; cursor:pointer; font-size:14px; }
.booking-cabinet .ab-shift-vacation { color:#86649b; }
@media(max-width:768px){ .booking-cabinet .ab-shift-table .ab-resource-name { max-width:100%; } }

.booking-cabinet .ab-name-button { width:100%; min-width:0; min-height:36px; display:block; padding:0; border:0; background:none; box-shadow:none; text-align:left; font:inherit; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.booking-cabinet .ab-schedule-publication { display:flex; justify-content:flex-end; margin:8px 0; }

.booking-cabinet .ab-schedule-dialog :is(.ab-schedule-more,.ab-day-break) > summary { list-style:none; }
.booking-cabinet .ab-schedule-dialog :is(.ab-schedule-more,.ab-day-break) > summary::-webkit-details-marker { display:none; }
.booking-cabinet .ab-schedule-dialog :is(.ab-schedule-more,.ab-day-break) > summary::before { content:''; display:inline-block; width:6px; height:6px; margin-right:10px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(-45deg); vertical-align:2px; }
.booking-cabinet .ab-schedule-dialog :is(.ab-schedule-more,.ab-day-break)[open] > summary::before { transform:rotate(45deg); }

/* The wrapper owns the size; WebKit's native time/date segments cannot expand it. */
.booking-cabinet .ab-schedule-control { position:relative; display:block; width:100%; min-width:0; height:44px; overflow:hidden; border-radius:12px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-control > input { position:absolute; inset:0; width:100%; height:44px; min-height:44px; margin:0; box-sizing:border-box; }
.booking-cabinet .ab-schedule-value { display:none; }
.booking-cabinet .ab-break-label { display:block; font-size:13px; color:var(--text-secondary); margin-top:8px; }
.booking-cabinet .ab-break-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 32px; gap:8px; align-items:end; }
.booking-cabinet #ab-dialog .ab-break-fields .ab-field { margin:6px 0; }
.booking-cabinet #ab-dialog .ab-break-fields > button { width:32px; min-width:32px; padding:4px; margin:0 0 6px; }
.booking-cabinet .ab-schedule-day-tools { display:flex; justify-content:space-between; flex-wrap:nowrap; gap:12px; }
.booking-cabinet .ab-schedule-day-tools > button { min-width:0; text-align:left; }
.booking-cabinet .ab-shift-range { font-variant-numeric:tabular-nums; }
@media(max-width:768px) {
 .booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-control > input { opacity:0; z-index:1; font-size:16px; padding:0; }
 .booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-value { display:flex; align-items:center; justify-content:center; width:100%; height:44px; box-sizing:border-box; padding:8px; border:1px solid #e5e7eb; border-radius:12px; background:#fff; color:var(--text-primary); font-size:16px; line-height:1.25; font-variant-numeric:tabular-nums; white-space:nowrap; }
 .booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-control:focus-within .ab-schedule-value { border-color:#656b73; }
 .booking-cabinet .ab-schedule-dialog .ab-schedule-two { gap:10px; }
 .booking-cabinet .ab-schedule-dialog .ab-schedule-weekly-fields > div { grid-template-columns:38px minmax(0,1fr) minmax(0,1fr); gap:8px; }
 .booking-cabinet .ab-shift-cell { font-size:9px; letter-spacing:-.15px; }
}

.booking-cabinet .ab-schedule-day-tools > button[hidden] { display:none; }

.booking-cabinet .ab-shift-table td span.ab-shift-range { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; line-height:1.2; }
.booking-cabinet .ab-shift-table .ab-shift-dash { display:none; }

.booking-cabinet #ab-dialog .ab-break-fields > button,
.booking-cabinet #ab-dialog .ab-break-fields > button:is(:hover,:active,:focus) { border:0; background:transparent; box-shadow:none; }
.booking-cabinet .ab-schedule-preview-breaks { display:flex; flex-direction:column; gap:4px; margin-top:8px; }
.booking-cabinet .ab-schedule-preview-breaks > span { font-variant-numeric:tabular-nums; }
.booking-time-trigger { display:none; }
@media(min-width:769px) and (hover:hover) and (pointer:fine) {
 .booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-control:has(.booking-time-trigger) > input { opacity:0; pointer-events:none; }
 .booking-cabinet #ab-dialog.ab-schedule-dialog .booking-time-trigger { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; width:100%; height:44px; padding:8px 12px; border:1px solid #e1e4e8; border-radius:12px; background:#fff; color:#3b414a; font:inherit; font-size:15px; font-variant-numeric:tabular-nums; box-shadow:none; }
 .booking-cabinet #ab-dialog.ab-schedule-dialog .booking-time-trigger:hover { background:#f5f6f8; border-color:#ccd1d8; }
 .booking-cabinet .booking-time-trigger svg { width:17px; height:17px; color:#7b838e; }
 .booking-cabinet .booking-time-trigger:focus-visible { outline:2px solid #7e8795; outline-offset:2px; }
}
.booking-cabinet #ab-dialog .booking-time-popover { position:fixed; z-index:10; display:grid; grid-template-columns:1fr 1fr; gap:12px; width:200px; box-sizing:border-box; padding:12px; border:1px solid #e1e4e8; border-radius:16px; background:#fff; box-shadow:0 6px 24px #18243316; }
.booking-time-column { min-width:0; }
.booking-time-column > span { display:block; margin-bottom:8px; text-align:center; font-size:12px; color:#7a817b; }
.booking-time-column > [role=listbox] { position:relative; max-height:180px; overflow:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.booking-cabinet #ab-dialog .booking-time-column button { display:block; width:100%; min-height:36px; padding:6px; border:0; border-radius:9px; background:transparent; color:#3b414a; box-shadow:none; font-size:14px; font-variant-numeric:tabular-nums; }
.booking-cabinet #ab-dialog .booking-time-column button:is(:hover,[aria-selected=true]) { background:#eef0f3; color:#343b45; }
.booking-cabinet #ab-dialog .booking-time-column button:focus-visible { outline:2px solid #7e8795; outline-offset:-2px; }

/* Long break lists scroll inside the form; the save action stays visible. */
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact { display:flex; flex-direction:column; overflow:hidden; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact > .ab-dialog-heading { flex:none; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact-form { display:flex; flex-direction:column; flex:0 1 auto; min-height:0; margin:0; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-fields { flex:0 1 auto; min-height:0; overflow:auto; overflow-x:clip; padding:0 2px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact-foot,
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact-form > .ab-notice { flex:none; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-fields > .ab-field { margin:10px 0; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .booking-time-trigger:focus-visible { outline-offset:-2px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog { padding:0; }

.booking-cabinet .ab-schedule-table-foot .ab-shift-legend { gap:8px; margin:10px 0; }
.booking-cabinet .ab-shift-key { display:inline-flex; align-items:center; gap:7px; padding:5px 8px; border-radius:8px; background:#f3f5f2; color:#616c64; font-size:11px; line-height:18px; }
.booking-cabinet .ab-shift-key > span { display:grid; place-items:center; width:15px; height:15px; font-size:15px; color:#4e6b58; }
.booking-cabinet .ab-shift-key--vacation { background:#f5f1f7; }
.booking-cabinet .ab-shift-key--vacation > span { color:#8c7197; }
.booking-cabinet .ab-shift-key--closed > span { color:#9ba19c; }
.booking-cabinet #ab-dialog [role=alert] { color:#a03c35; line-height:1.45; }
.booking-cabinet #ab-dialog .ab-notice[role=alert] { border:0; background:transparent; padding:0; }
.booking-cabinet #ab-toast { position:fixed; z-index:1700; left:50%; bottom:28px; transform:translateX(-50%); box-sizing:border-box; width:max-content; max-width:min(360px,calc(100vw - 32px)); margin:0; padding:10px 14px; border:0; border-radius:12px; background:#f0f4ef; color:#36533e; box-shadow:0 4px 20px #23362a12; font-size:13px; }
.booking-cabinet #ab-toast[role=alert],.booking-cabinet #ab-toast.ab-toast--error { color:#a03c35; background:#faf0ed; }
@media(max-width:768px){.booking-cabinet #ab-toast { bottom:calc(88px + env(safe-area-inset-bottom,0px)); }.booking-cabinet #ab-schedule-preview { width:min(290px,calc(100vw - 24px)); }}

.booking-cabinet .ab-schedule-control:has(.ab-schedule-date-anchor) { overflow:visible; }
.booking-cabinet #ab-dialog .ab-schedule-control:has(.ab-schedule-date-anchor) > input { opacity:0; pointer-events:none; }
.booking-cabinet .ab-schedule-date-anchor { position:absolute; inset:0; display:block; }
.booking-cabinet .ab-schedule-date-anchor > .ab-date-picker { display:block; width:100%; height:44px; margin:0; }
.booking-cabinet #ab-dialog .ab-schedule-date-trigger { position:static; display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; height:44px; min-height:44px; padding:8px 12px; border:1px solid #e1e4e8; border-radius:12px; background:#fff; color:#354039; font-size:16px; }
.booking-cabinet .ab-schedule-date-trigger svg { width:17px; height:17px; flex:none; }
.booking-cabinet .ab-schedule-date-trigger .ab-schedule-date-value { flex:1; text-align:left; font-variant-numeric:tabular-nums; }
.booking-cabinet .ab-schedule-date-anchor .ab-date-native { position:absolute; opacity:0; pointer-events:none; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-popover { position:fixed; z-index:120; box-sizing:border-box; width:min(304px,calc(100vw - 32px)); transform:none; margin:0; padding:12px; border:1px solid #e2e7e1; border-radius:16px; background:#fff; box-shadow:0 8px 28px #23362a18; overflow:auto; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-popover .ab-date-year input { height:38px; min-height:38px; border-color:#dfe5df; border-radius:10px; font-size:16px; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-days .is-selected { background:#354b3c; color:#fff; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-days .is-today:not(.is-selected) { color:#476850; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-days > button:disabled { opacity:.35; cursor:default; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor :focus-visible { outline:2px solid #718575; outline-offset:-2px; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-month-head { margin:8px 0; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor .ab-date-popover .ab-icon { width:36px; height:36px; min-height:36px; min-width:36px; flex-basis:36px; }
.booking-cabinet .ab-shift-cell { -webkit-touch-callout:none; }

.booking-cabinet #ab-dialog .ab-schedule-history-link { margin-right:auto; padding:6px 0; color:#777e88; font-size:12px; border:0; background:transparent; box-shadow:none; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact--history { height:100%; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-compact--history > .ab-schedule-fields { flex:1; }
.booking-cabinet #ab-dialog .ab-schedule-history { display:flex; flex-direction:column; gap:12px; margin:12px 0; padding:0; list-style:none; }
.booking-cabinet #ab-dialog .ab-schedule-history > li { padding:12px; border-radius:12px; background:#f5f6f7; }
.booking-cabinet #ab-dialog .ab-schedule-history > li > div { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 12px; font-size:12px; }
.booking-cabinet #ab-dialog .ab-schedule-history time { color:#7a808a; font-size:11px; }
.booking-cabinet #ab-dialog .ab-schedule-history ul { display:flex; flex-direction:column; gap:5px; margin:8px 0 0; padding:0; list-style:none; font-size:12px; line-height:1.45; color:#616974; overflow-wrap:anywhere; }
.booking-cabinet .ab-shift-cell { user-select:none; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-dialog-heading h2 { flex:1; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-dialog-heading .ab-schedule-history-link { flex:none; min-width:32px; min-height:32px; margin:0; padding:4px; border:0; gap:4px; }
.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-history-link svg { width:16px; height:16px; }
@media(max-width:768px){.booking-cabinet #ab-dialog.ab-schedule-dialog .ab-schedule-history-link > span { display:none; }}
body.booking-cabinet #ab-dialog.ab-schedule-dialog[data-schedule-frame] .ab-dialog-inner { height:100%; }
.booking-cabinet #ab-dialog.ab-schedule-dialog[data-schedule-frame] .ab-schedule-compact { height:100%; }
.booking-cabinet #ab-dialog.ab-schedule-dialog[data-schedule-frame] .ab-schedule-compact-form { flex:1; }
.booking-cabinet #ab-dialog.ab-schedule-dialog[data-schedule-frame] .ab-schedule-fields { flex:1; }
.booking-cabinet #ab-dialog .ab-schedule-history [data-ab-action],.booking-cabinet #ab-dialog [data-ab-action=schedule-history-more] { border:0; border-radius:10px; background:#f1f2f4; box-shadow:0 2px 7px #20263012; color:#5f6671; }
.booking-cabinet #ab-dialog .ab-schedule-control:has(.ab-schedule-date-anchor) > .ab-schedule-value { display:none; }
.booking-cabinet #ab-dialog .ab-schedule-date-anchor,.booking-cabinet #ab-dialog .ab-schedule-date-anchor > .ab-date-picker { box-sizing:border-box; width:100%; min-width:0; max-width:100%; }
body.booking-cabinet #ab-dialog .ab-schedule-date-trigger { inset:0; width:100%; min-width:0; max-width:100%; margin:0; flex-basis:auto; transform:none; line-height:24px; }
.booking-cabinet #ab-dialog .ab-schedule-date-trigger .ab-schedule-date-value { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.booking-cabinet #ab-dialog .ab-schedule-secondary { border:0; }
.booking-cabinet #ab-dialog .ab-dialog-heading h2 { flex:1; }
.booking-cabinet #ab-dialog .ab-dialog-heading > .ab-back-action { flex:none; min-width:32px; width:32px; min-height:32px; padding:4px; margin:0; }
.booking-cabinet #ab-dialog .ab-actions:empty { display:none; }
.booking-cabinet #ab-dialog .ab-schedule-compact :is(.ab-schedule-secondary,.ab-schedule-weekly-fields > div,.ab-schedule-day-caption) { border-top:0; border-bottom:0; }

.booking-cabinet [data-schedule-preview],.booking-cabinet [data-schedule-preview] * { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }
.booking-cabinet #ab-dialog .ab-schedule-history-more { display:flex; justify-content:center; margin:12px 0 4px; }
.booking-cabinet #ab-dialog .ab-schedule-history-more button { width:auto; min-height:34px; padding:7px 12px; border:0; border-radius:10px; background:#f1f2f4; color:#626973; box-shadow:0 2px 7px #2026300c; font-size:12px; line-height:1.4; }
.booking-cabinet #ab-dialog .ab-schedule-history-more button[hidden] { display:none; }

/* The hour and minute wheels share one continuous selection band. */
.booking-cabinet #ab-dialog .booking-time-popover::before { content:''; position:absolute; z-index:0; left:8px; right:8px; top:var(--booking-time-selection-top,112px); height:36px; border-radius:10px; background:#eef0f3; box-shadow:inset 0 1px 3px #2026300a; pointer-events:none; }
.booking-cabinet #ab-dialog .booking-time-popover::after { content:':'; position:absolute; z-index:1; left:50%; top:var(--booking-time-selection-top,112px); transform:translateX(-50%); display:grid; place-items:center; height:36px; color:#343b45; font-size:16px; font-weight:500; pointer-events:none; }
.booking-cabinet .booking-time-column { position:relative; z-index:1; }
.booking-cabinet #ab-dialog .booking-time-column button[aria-selected=true] { background:transparent; color:#252b34; font-weight:600; }

/* The selection band is the only highlight inside the time wheels. */
.booking-cabinet #ab-dialog .booking-time-column button:is(:hover,:active,:focus,:focus-visible) { background:transparent; box-shadow:none; filter:none; outline:none; }
