/* Continuous-stay calendar. Half-day columns are visual boundaries, not clock times. */
/* Maximize inside the browser window; booking/date dialogs keep their own layer. */
body:has(.calendar-workspace.is-fullscreen){overflow:hidden}
body:has(.calendar-workspace.is-fullscreen) :is(.sidebar,.desktop-topbar,.mobile-topbar,.mobile-nav){visibility:hidden}
.calendar-workspace.is-fullscreen{position:fixed;inset:0;z-index:60;box-sizing:border-box;width:100%;height:100dvh;display:flex;flex-direction:column;gap:12px;padding:16px;background:#f4f6f9;overflow:auto}
.calendar-workspace.is-fullscreen>.page-header{flex:none;margin:0;align-items:center;gap:12px}
.calendar-workspace.is-fullscreen>.page-header :is(.eyebrow,.lede){display:none}
.calendar-workspace.is-fullscreen>.page-header h1{font-size:24px;margin:0}
.calendar-workspace.is-fullscreen>.stay-card{display:flex;flex-direction:column;flex:1;min-height:250px}
.calendar-workspace.is-fullscreen .stay-scroll{flex:1;min-height:100px;max-height:none}
.calendar-workspace.is-fullscreen :is(.stay-toolbar,.stay-period,.stay-legend,.stay-help,.stay-footnote,.stay-filter-note,.stay-warning){flex-shrink:0}
.calendar-workspace.is-fullscreen .stay-toolbar{padding:12px 16px}
.calendar-workspace.is-fullscreen .stay-period{padding:0 16px 8px}
.calendar-workspace.is-fullscreen .stay-legend{padding:10px 16px 0}
.calendar-workspace.is-fullscreen :is(.stay-help,.stay-footnote){margin:8px 16px;font-size:12px}
.calendar-workspace.is-fullscreen :is(.calendar-today-summary,.stay-help){display:none}
.calendar-workspace.is-fullscreen .stay-resource{padding-block:8px}
.calendar-workspace.is-fullscreen .stay-day{padding-block:8px}
@media(max-width:640px){.calendar-workspace.is-fullscreen{padding:8px;gap:8px}.calendar-workspace.is-fullscreen>.page-header{align-items:flex-start;flex-wrap:wrap}.calendar-workspace.is-fullscreen .calendar-view-actions{gap:6px}.calendar-workspace.is-fullscreen .stay-toolbar{gap:8px}.calendar-workspace.is-fullscreen .stay-toolbar .field{min-width:120px}.calendar-workspace.is-fullscreen .stay-toolbar .stay-search{min-width:100%}.calendar-workspace.is-fullscreen>.stay-card{flex:none;height:max(460px,calc(100dvh - 112px))}}
.shell > div, .main { min-width:0; }
.main h1, .main h2, .calendar-workspace h1 { font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; letter-spacing:-.035em; }
.main h1 { font-size:clamp(28px,3vw,38px); font-weight:750; }
.main h2 { font-size:24px; }
body { background:#f4f6f9; }
.card { background:#fff; box-shadow:0 3px 16px #182a4110; border-color:#e0e6ed; border-radius:16px; }
.stay-card { background:#fff; border:1px solid #dce4ed; border-radius:18px; box-shadow:0 4px 24px #1d355710; overflow:hidden; }
.stay-toolbar { padding:22px 24px 18px; display:flex; align-items:end; flex-wrap:wrap; gap:12px; }
.stay-toolbar .field { min-width:132px; flex:1; }
.stay-toolbar .stay-search { flex:2; min-width:220px; }
.stay-toolbar .field span { color:#546479; font-size:12px; }
.stay-toolbar input, .stay-toolbar select { background:#f9fafc; border-color:#dce3ec; border-radius:9px; }
.stay-period { padding:0 24px 18px; display:flex; justify-content:space-between; align-items:center; gap:12px; }
.stay-period .button { min-height:38px; padding:7px 13px; border-color:#d9e1e8; border-radius:9px; }
.stay-updated { color:#63748a; font-size:12px; }
.stay-updated button { border:0; background:transparent; color:#17695e; cursor:pointer; font-weight:650; padding:10px; }
.stay-legend { display:flex; flex-wrap:wrap; align-items:center; gap:16px; padding:17px 24px 4px; border-top:1px solid #edf0f4; font-size:12px; color:#4e6078; }
.stay-legend > span { display:inline-flex; align-items:center; gap:7px; }
.stay-key { width:11px; height:11px; border-radius:4px; display:inline-block; }
.stay-key.confirmed { background:#3e72bd; }
.stay-key.option { background:#fff2d7; border:1px dashed #a76900; }
.stay-key.in-house { background:#16805c; }
.stay-turnover-key i { width:19px; height:21px; background:#e3effc; color:#275c9b; border-radius:3px; text-align:center; font-style:normal; }
.stay-turnover-key i+i { margin-left:-5px; background:#e3f2eb; color:#1f725a; }
.stay-help { padding:9px 24px 16px; margin:0; color:#67788c; font-size:12px; line-height:1.6; }
.stay-filter-note { background:#fff6e5; color:#78570d; padding:12px 24px; margin:0; font-size:13px; }
.stay-scroll { overflow:auto; max-height:65vh; scrollbar-color:#b8c6d6 #f1f4f8; scrollbar-width:thin; overscroll-behavior-x:contain; }
.stay-scroll:focus-visible { outline:3px solid #008672; outline-offset:-3px; }
.stay-board { --stay-label:184px; --stay-day:72px; --stay-days:14; --stay-halves:28; width:max(100%,calc(var(--stay-label) + var(--stay-days)*var(--stay-day))); color:#23364d; }
.stay-days-7 { --stay-days:7; --stay-halves:14; }
.stay-days-14 { --stay-days:14; --stay-halves:28; }
.stay-days-28 { --stay-days:28; --stay-halves:56; }
.stay-days-29 { --stay-days:29; --stay-halves:58; }
.stay-days-30 { --stay-days:30; --stay-halves:60; }
.stay-days-31 { --stay-days:31; --stay-halves:62; }
.calendar-today-summary { margin-top:18px; }
.calendar-today-bookings { display:grid; gap:8px; padding:0 16px 16px; }
.stay-header, .stay-resource-row { display:grid; grid-template-columns:var(--stay-label) minmax(0,1fr); }
.stay-header { position:sticky; top:0; z-index:5; background:#f9fbfd; border-block:1px solid #dfe6ee; }
.stay-corner { position:sticky; left:0; z-index:6; background:#f7f9fc; display:flex; align-items:center; padding:18px; font-size:12px; font-weight:750; border-right:1px solid #dce4ed; }
.stay-dates, .stay-background { display:grid; grid-template-columns:repeat(var(--stay-days),minmax(0,1fr)); }
.stay-day { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:98px; gap:2px; border-right:1px solid #e8edf3; }
.stay-day small { font-size:10px; text-transform:uppercase; letter-spacing:.08em; color:#6b7b90; }
.stay-day strong { font-size:20px; font-weight:650; }
.stay-day > span { font-size:10px; color:#6b7b90; }
.stay-day > .stay-week-number,.stay-day > .stay-week-spacer { min-height:18px; line-height:18px; margin-bottom:3px; }
.stay-day > .stay-week-number { padding:0 7px; border-radius:5px; color:#315d7b; background:#e3edf5; font-size:10px; font-weight:750; letter-spacing:.02em; }
.stay-day.is-today { color:#146856; box-shadow:inset 0 -3px #198976; }
.stay-day.is-today strong { color:white; background:#177665; border-radius:7px; padding:1px 6px; }
.stay-property { min-height:38px; padding:10px 18px; background:#eef2f7; color:#54667d; border-block:1px solid #dfe6ed; display:flex; align-items:center; gap:15px; font-size:11px; }
.stay-property strong { letter-spacing:.04em; }
.stay-property > span { color:#7a899c; }
.stay-unit-group { border-bottom:1px solid #dfe6ed; }
.stay-unit { min-height:36px; padding:8px 18px 8px 28px; background:#f7f9fc; color:#344a63; border-top:1px solid #e5ebf2; display:flex; align-items:center; gap:12px; }
.stay-unit strong { font-size:12px; font-weight:750; }
.stay-unit span { color:#718096; font-size:11px; }
.stay-resource-row { border-bottom:1px solid #e6ecf2; }
.stay-resource { position:sticky; left:0; z-index:3; background:#fff; border-right:1px solid #dce4ed; padding:14px 18px; display:flex; flex-direction:column; justify-content:center; gap:4px; }
.stay-resource-row.depth-1 .stay-resource { padding-left:32px; }
.stay-resource-row.depth-2 .stay-resource { padding-left:46px; }
.stay-resource-row.depth-3 .stay-resource { padding-left:60px; }
.stay-resource-row.is-unit-resource .stay-resource { background:#f9fbfd; }
.stay-resource strong { font-size:13px; overflow-wrap:anywhere; }
.stay-resource small { font-size:11px; color:#7a899a; }
.stay-warning { font-size:11px; color:#9b530e; }
.stay-track { position:relative; padding:6px 0; min-height:68px; }
.stay-background { position:absolute; inset:0; }
.stay-day-bg { border:0; border-right:1px solid #e6ecf2; border-radius:0; padding:0; min-width:0; background:#fff; }
button.stay-day-bg { cursor:crosshair; }
button.stay-day-bg:hover { background:#e7f2ee; }
.is-weekend { background-color:#f7f9fc; }
.stay-day.is-weekend { background:#e8edf7; }
.stay-day-bg.is-weekend { background:#f0f3fa; }
.stay-day.is-weekend small { color:#566b8b; font-weight:700; }
.stay-day-bg.is-today { background:#eff8f5; }
.stay-lane { display:grid; grid-template-columns:repeat(var(--stay-halves),minmax(0,1fr)); min-height:54px; position:relative; pointer-events:none; }
.stay-bar { min-width:0; min-height:46px; margin:3px 2px; padding:5px 12px; border:1px solid #94b3df; border-radius:8px; display:flex; align-items:center; justify-content:space-between; gap:4px; position:relative; pointer-events:auto; cursor:pointer; text-align:left; background:#e7effc; color:#214b80; box-shadow:0 2px 3px #294e7b0c; transition:filter .12s,box-shadow .12s; }
.stay-bar:hover { filter:brightness(.96); box-shadow:0 3px 8px #294e7b20; z-index:2; }
.stay-bar:focus-visible { outline:3px solid #123b65; outline-offset:1px; z-index:4; }
.stay-bar.is-confirmed { background:#e7effc; border-color:#94b3df; color:#214b80; }
.stay-bar-label { display:block; min-width:0; max-width:100%; }
.stay-bar strong, .stay-bar small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stay-bar strong { font-size:12px; font-weight:720; }
.stay-bar small { font-size:10px; margin-top:3px; opacity:.8; }
.stay-end { font-size:12px; flex-shrink:0; opacity:.65; }
.stay-color-1 { background:#e1f3ec; color:#1c6653; border-color:#93c7b4; }
.stay-color-2 { background:#eee8fb; color:#64458e; border-color:#bdabe0; }
.stay-color-3 { background:#e3f2f7; color:#235f78; border-color:#9bc8d9; }
.stay-bar.is-option { background:#fff2d9; border:1px dashed #b17c20; color:#79520d; }
.stay-bar.is-in-house { background:#16805c; border-color:#116b4c; color:white; }
.stay-bar.continues-before { border-left:3px dotted currentColor; border-top-left-radius:0; border-bottom-left-radius:0; }
.stay-bar.continues-after { border-right:3px dotted currentColor; border-top-right-radius:0; border-bottom-right-radius:0; }
.stay-footnote { font-size:11px; line-height:1.7; color:#718096; margin:0; padding:14px 24px; border-top:1px solid #e3e9f0; }
.stay-empty { padding:50px 24px; text-align:center; color:#66768b; }
.stay-empty h2 { color:#293c54; }
.stay-resource-year-link { border:0; padding:4px 0; background:transparent; color:#17695e; font:600 11px/1.4 system-ui,sans-serif; text-align:left; cursor:pointer; }
.stay-resource-year-link:hover { text-decoration:underline; }
.resource-year-toolbar { display:flex; align-items:center; justify-content:center; gap:20px; padding:20px; border-bottom:1px solid #e5ebf1; }
.resource-year-toolbar h2 { min-width:90px; margin:0; text-align:center; }
.resource-year-months { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; padding:22px; }
.resource-year-month { min-width:0; border:1px solid #e5ebf1; border-radius:12px; padding:12px; }
.resource-year-month h3 { margin:0 0 10px; text-align:center; font-size:14px; }
.resource-year-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:3px; }
.resource-year-weekdays { margin-bottom:5px; color:#748297; font-size:10px; text-align:center; }
.resource-year-day,.resource-year-empty { min-width:0; min-height:32px; border-radius:6px; }
.resource-year-day { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; background:#f7f9fb; color:#34465e; font-size:11px; }
.resource-year-day.is-today { box-shadow:inset 0 0 0 2px #168673; }
.resource-year-day.is-occupied { background:#e2edf9; color:#214b80; }
.resource-year-day.is-range-selected { background:#d5f2e9; color:#075c4e; box-shadow:inset 0 0 0 1px #138774; }
.resource-year-day.is-range-selected.is-range-edge { background:#147d70; color:#fff; }
.resource-year-date { min-width:22px; min-height:19px; padding:0 3px; border:0; border-radius:4px; background:transparent; color:inherit; font:inherit; cursor:crosshair; touch-action:none; user-select:none; }
.resource-year-date:focus-visible { outline:2px solid #137c70; outline-offset:1px; }
.resource-year-selection-status { min-height:1.4em; margin:0 22px 0; color:#53667c; font-size:12px; }
.resource-year-events { display:flex; align-items:center; justify-content:center; min-height:12px; gap:1px; }
.resource-year-event { width:12px; height:12px; padding:0; border:0; border-radius:3px; background:transparent; color:#375b84; font:700 9px/12px system-ui,sans-serif; cursor:pointer; }
.resource-year-event:hover,.resource-year-event:focus-visible { outline:2px solid #137c70; outline-offset:1px; }
.resource-year-event.departure { color:#9a5520; }
.resource-year-event.arrival { color:#17695e; }
.resource-year-event.arrival.is-occupied { color:#275d99; }
.resource-year-event.is-option { color:#91620b; }
.resource-year-event.is-in-house { color:#16805c; }
.resource-year-event.occupied { color:#275d99; }
.resource-year-event.occupied.is-option { color:#91620b; }
.resource-year .page-header { align-items:center; margin-bottom:18px; }
@media(max-width:1000px) { .resource-year-months { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:700px) { .resource-year-months { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; padding:12px; } .resource-year-month { padding:8px; } .resource-year-day,.resource-year-empty { min-height:28px; } .resource-year-toolbar { gap:8px; padding:14px 8px; } .resource-year-toolbar .button { padding:8px; font-size:11px; } .resource-year .page-header { align-items:flex-start; flex-direction:column; } }
@media(max-width:700px) {
 .stay-toolbar { padding:16px; gap:10px; } .stay-toolbar .field { min-width:calc(50% - 10px); }
 .stay-toolbar .stay-search { min-width:100%; } .stay-toolbar > .button { width:100%; }
 .stay-period { padding:0 16px 16px; flex-wrap:wrap; } .stay-legend { padding-inline:16px; gap:12px; }
 .stay-help, .stay-footnote { padding-inline:16px; } .stay-board { --stay-label:126px; --stay-day:68px; }
 .stay-resource, .stay-corner { padding-inline:10px; } .stay-resource strong { font-size:12px; }
 .stay-scroll { max-height:66vh; } .stay-bar { min-height:46px; padding-inline:8px; } .stay-end { display:none; }
 .calendar-workspace .page-header { align-items:flex-start; flex-direction:column; }
}
@media(prefers-reduced-motion:reduce) { .stay-bar { transition:none; } }

.stay-start-0 { grid-column-start:1; }
.stay-start-1 { grid-column-start:2; }
.stay-start-2 { grid-column-start:3; }
.stay-start-3 { grid-column-start:4; }
.stay-start-4 { grid-column-start:5; }
.stay-start-5 { grid-column-start:6; }
.stay-start-6 { grid-column-start:7; }
.stay-start-7 { grid-column-start:8; }
.stay-start-8 { grid-column-start:9; }
.stay-start-9 { grid-column-start:10; }
.stay-start-10 { grid-column-start:11; }
.stay-start-11 { grid-column-start:12; }
.stay-start-12 { grid-column-start:13; }
.stay-start-13 { grid-column-start:14; }
.stay-start-14 { grid-column-start:15; }
.stay-start-15 { grid-column-start:16; }
.stay-start-16 { grid-column-start:17; }
.stay-start-17 { grid-column-start:18; }
.stay-start-18 { grid-column-start:19; }
.stay-start-19 { grid-column-start:20; }
.stay-start-20 { grid-column-start:21; }
.stay-start-21 { grid-column-start:22; }
.stay-start-22 { grid-column-start:23; }
.stay-start-23 { grid-column-start:24; }
.stay-start-24 { grid-column-start:25; }
.stay-start-25 { grid-column-start:26; }
.stay-start-26 { grid-column-start:27; }
.stay-start-27 { grid-column-start:28; }
.stay-start-28 { grid-column-start:29; }
.stay-start-29 { grid-column-start:30; }
.stay-start-30 { grid-column-start:31; }
.stay-start-31 { grid-column-start:32; }
.stay-start-32 { grid-column-start:33; }
.stay-start-33 { grid-column-start:34; }
.stay-start-34 { grid-column-start:35; }
.stay-start-35 { grid-column-start:36; }
.stay-start-36 { grid-column-start:37; }
.stay-start-37 { grid-column-start:38; }
.stay-start-38 { grid-column-start:39; }
.stay-start-39 { grid-column-start:40; }
.stay-start-40 { grid-column-start:41; }
.stay-start-41 { grid-column-start:42; }
.stay-start-42 { grid-column-start:43; }
.stay-start-43 { grid-column-start:44; }
.stay-start-44 { grid-column-start:45; }
.stay-start-45 { grid-column-start:46; }
.stay-start-46 { grid-column-start:47; }
.stay-start-47 { grid-column-start:48; }
.stay-start-48 { grid-column-start:49; }
.stay-start-49 { grid-column-start:50; }
.stay-start-50 { grid-column-start:51; }
.stay-start-51 { grid-column-start:52; }
.stay-start-52 { grid-column-start:53; }
.stay-start-53 { grid-column-start:54; }
.stay-start-54 { grid-column-start:55; }
.stay-start-55 { grid-column-start:56; }
.stay-span-1 { grid-column-end:span 1; }
.stay-span-2 { grid-column-end:span 2; }
.stay-span-3 { grid-column-end:span 3; }
.stay-span-4 { grid-column-end:span 4; }
.stay-span-5 { grid-column-end:span 5; }
.stay-span-6 { grid-column-end:span 6; }
.stay-span-7 { grid-column-end:span 7; }
.stay-span-8 { grid-column-end:span 8; }
.stay-span-9 { grid-column-end:span 9; }
.stay-span-10 { grid-column-end:span 10; }
.stay-span-11 { grid-column-end:span 11; }
.stay-span-12 { grid-column-end:span 12; }
.stay-span-13 { grid-column-end:span 13; }
.stay-span-14 { grid-column-end:span 14; }
.stay-span-15 { grid-column-end:span 15; }
.stay-span-16 { grid-column-end:span 16; }
.stay-span-17 { grid-column-end:span 17; }
.stay-span-18 { grid-column-end:span 18; }
.stay-span-19 { grid-column-end:span 19; }
.stay-span-20 { grid-column-end:span 20; }
.stay-span-21 { grid-column-end:span 21; }
.stay-span-22 { grid-column-end:span 22; }
.stay-span-23 { grid-column-end:span 23; }
.stay-span-24 { grid-column-end:span 24; }
.stay-span-25 { grid-column-end:span 25; }
.stay-span-26 { grid-column-end:span 26; }
.stay-span-27 { grid-column-end:span 27; }
.stay-span-28 { grid-column-end:span 28; }
.stay-span-29 { grid-column-end:span 29; }
.stay-span-30 { grid-column-end:span 30; }
.stay-span-31 { grid-column-end:span 31; }
.stay-span-32 { grid-column-end:span 32; }
.stay-span-33 { grid-column-end:span 33; }
.stay-span-34 { grid-column-end:span 34; }
.stay-span-35 { grid-column-end:span 35; }
.stay-span-36 { grid-column-end:span 36; }
.stay-span-37 { grid-column-end:span 37; }
.stay-span-38 { grid-column-end:span 38; }
.stay-span-39 { grid-column-end:span 39; }
.stay-span-40 { grid-column-end:span 40; }
.stay-span-41 { grid-column-end:span 41; }
.stay-span-42 { grid-column-end:span 42; }
.stay-span-43 { grid-column-end:span 43; }
.stay-span-44 { grid-column-end:span 44; }
.stay-span-45 { grid-column-end:span 45; }
.stay-span-46 { grid-column-end:span 46; }
.stay-span-47 { grid-column-end:span 47; }
.stay-span-48 { grid-column-end:span 48; }
.stay-span-49 { grid-column-end:span 49; }
.stay-span-50 { grid-column-end:span 50; }
.stay-span-51 { grid-column-end:span 51; }
.stay-span-52 { grid-column-end:span 52; }
.stay-span-53 { grid-column-end:span 53; }
.stay-span-54 { grid-column-end:span 54; }
.stay-span-55 { grid-column-end:span 55; }
.stay-span-56 { grid-column-end:span 56; }

@media(min-width:981px) { .mobile-nav { display:none; } }

/* Shared range picker and drag preview; no inline styles (strict CSP). */
.date-range-field{grid-column:1/-1;display:grid;gap:7px;min-width:0}.date-range-field>small{color:#65748a;font-size:12px}.date-range-trigger{display:flex;align-items:center;gap:22px;width:100%;padding:14px 18px;background:#f8fafc;border:1px solid #cbd5e1;border-radius:12px;text-align:left;color:#17324d;cursor:pointer}.date-range-trigger span:first-child,.date-range-trigger span:nth-child(3){display:grid;gap:4px;flex:1}.date-range-trigger small{font-size:12px;color:#61738a}.date-range-trigger strong{font-size:17px}.date-range-trigger:hover{border-color:#16756c;background:#f0fdfa}.date-range-trigger:focus-visible,.range-dialog button:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}
.range-dialog{width:min(720px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #dbe5ec;border-radius:20px;padding:24px;color:#19314b;background:#fff;box-shadow:0 24px 100px #0f294c40;font-family:system-ui,sans-serif;box-sizing:border-box}.range-dialog::backdrop{background:#11253d80;backdrop-filter:blur(3px)}.range-title{display:flex;align-items:center;justify-content:space-between;gap:16px}.range-title p{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:#5b718a;margin:0 0 4px}.range-title h2{font-family:inherit;font-size:23px;margin:0}.range-title>button,.range-nav button{background:#f1f5f9;border:0;border-radius:9px;min-width:38px;min-height:38px;cursor:pointer;font-size:20px;color:inherit}.range-summary{display:flex;align-items:center;gap:16px;background:#f4f7fa;border-radius:12px;padding:14px;margin-top:20px}.range-summary>span:not(:nth-child(2)){display:grid;gap:5px;flex:1;border-bottom:2px solid transparent;padding-bottom:6px}.range-summary .is-active{border-color:#137c70!important}.range-summary small{font-size:12px;color:#64748b}.range-summary strong{font-size:18px}.range-instruction{font-size:13px;color:#526881;min-height:18px}.range-nav{display:flex;align-items:center;justify-content:space-between;margin:12px 0}.range-nav span{font-size:12px;color:#61738a}.range-months{display:grid;grid-template-columns:1fr 1fr;gap:24px}.range-month h3{text-align:center;font-size:15px;margin:8px 0 16px}.range-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px 0}.range-weekday{text-align:center;font-size:11px;color:#75859a;padding:6px 0}.range-day{border:0;min-height:38px;padding:0;background:transparent;color:#19314b;border-radius:7px;font:inherit;font-size:13px;cursor:pointer}.range-day:hover{box-shadow:inset 0 0 0 2px #13a090}.range-day.is-between{background:#e0f4ee;border-radius:0;color:#146555}.range-day.is-edge{background:#147d70;color:white;font-weight:700}.range-day:disabled{opacity:.3;cursor:not-allowed}.range-footer{display:flex;align-items:center;gap:12px;border-top:1px solid #e4ebf1;margin-top:22px;padding-top:18px}.range-footer>span{flex:1;font-size:13px;font-weight:600}.range-footer .button{padding:10px 15px}.stay-track.is-selecting{user-select:none}.stay-selection{position:absolute;inset-block:9px;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;z-index:3;pointer-events:none;background:#d6f5ebe8;box-shadow:inset 0 0 0 2px #138774;border-radius:8px;font-size:12px;font-weight:600;color:#075c4e;grid-row:1}.stay-track{display:grid;grid-template-columns:repeat(var(--stay-halves),minmax(0,1fr))}.stay-track>.stay-lane{grid-column:1/-1}.stay-selection{position:relative;inset-block:auto;grid-row:1;margin:3px 2px;min-height:46px}.stay-background + .stay-lane{grid-row:1}
@media(max-width:600px){.range-dialog{padding:16px}.range-months{grid-template-columns:1fr;gap:16px}.range-footer{position:sticky;bottom:-16px;background:white;padding:14px 0;gap:8px}.range-footer .button{font-size:12px;padding:10px}.range-summary{gap:12px}.date-range-trigger{gap:12px}.range-months .range-day{min-height:38px}}

.stay-bar.is-source-moving{opacity:.36}.stay-board.is-moving-booking{cursor:grabbing}.stay-track.is-drop-target{background:#e3f5ec;box-shadow:inset 0 0 0 2px #168673}.stay-move-preview{z-index:5;grid-row:1;align-self:center;min-height:46px;margin:3px 2px;display:flex;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;padding:5px 10px;background:#d8f4e9;border:2px dashed #138774;border-radius:8px;color:#075c4e;font-size:12px;font-weight:650;pointer-events:none}

/* Month view has 62 half-day columns; keep late-month arrivals and long stays in their real slots. */
.stay-start-56 { grid-column-start:57; }
.stay-start-57 { grid-column-start:58; }
.stay-start-58 { grid-column-start:59; }
.stay-start-59 { grid-column-start:60; }
.stay-start-60 { grid-column-start:61; }
.stay-start-61 { grid-column-start:62; }
.stay-span-57 { grid-column-end:span 57; }
.stay-span-58 { grid-column-end:span 58; }
.stay-span-59 { grid-column-end:span 59; }
.stay-span-60 { grid-column-end:span 60; }
.stay-span-61 { grid-column-end:span 61; }
.stay-span-62 { grid-column-end:span 62; }

.date-range-manual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.date-range-manual label{display:grid;gap:5px;color:#61738a;font-size:12px}.date-range-manual input{width:100%;min-width:0;padding:9px 10px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;color:#17324d;font:inherit;font-size:14px}.date-range-manual input:focus-visible{outline:3px solid #38bdf8;outline-offset:2px}@media(max-width:600px){.date-range-manual{gap:8px}.date-range-manual input{font-size:13px;padding:8px 6px}}

/* Dates are entered in the same popup header as the calendar selection. */
.range-summary>label{display:grid;gap:6px;flex:1;min-width:0;border-bottom:2px solid transparent;padding-bottom:6px}.range-summary label>span{font-size:12px;color:#64748b}.range-summary input{box-sizing:border-box;width:100%;min-width:0;padding:10px 8px;border:1px solid #cbd5e1;border-radius:8px;background:white;color:#19314b;font:inherit;font-size:17px;font-weight:600}.range-summary input:focus{outline:2px solid #137c70;outline-offset:1px}.range-summary input[readonly]{background:#edf1f4}.range-summary input[aria-invalid=true]{border-color:#b42318}.range-error{color:#b42318;font-size:13px}.range-error[hidden]{display:none}

/* Related inventory is blocked, but its projection is not a separate movable stay. */
.stay-bar.is-occupancy-projection { border-style: dashed; background-image: repeating-linear-gradient(135deg, transparent, transparent 8px, rgba(255,255,255,.32) 8px, rgba(255,255,255,.32) 16px); cursor:pointer; }

.stay-key.inherited { border:1px dashed #6a8da5; background:repeating-linear-gradient(135deg,#e3f2f7,#e3f2f7 3px,#fff 3px,#fff 6px); }
