:root {
  color-scheme: light;
  --surface: #ffffff;
  --label-width: 174px;
  --day-width: 56px;
  --row-height: 53px;
  --day-font: 16px;
  --weekday-font: 10px;
  --today-size: 28px;
  --board-name-size: 10px;
  --room-name-font: 12.5px;
  --room-detail-font: 10px;
  --head-height: 62px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

body {
  --ink: var(--theme-ink);
  --ink-strong: var(--theme-ink);
  --muted: var(--theme-muted);
  --line: var(--theme-line);
  --line-strong: var(--theme-edge);
  --background: var(--theme-page);
  --accent: var(--theme-accent);
  --accent-dark: var(--theme-dark);
  --accent-soft: var(--theme-soft);
}

* { box-sizing: border-box; }
html, body { height: 100%; width: 100%; margin: 0; overflow: hidden; }
body { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; background: var(--background); color: var(--ink); -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button { border: 0; background: none; color: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid var(--theme-accent); outline-offset: 2px; }
button:disabled { opacity: .3; cursor: not-allowed; }
svg { width: 19px; height: 19px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round; flex: none; }
[hidden] { display: none !important; }

.app { display: flex; flex-direction: column; width: 100%; height: 100vh; height: 100dvh; overflow: hidden; padding-top: var(--safe-top); background: var(--background); }
.topbar { flex: 0 0 65px; height: 65px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 0 22px; background: #fff; border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: 10px; flex: 1 1 300px; min-width: 0; white-space: nowrap; }
.brand-mark { background: var(--accent); color: #fff; width: 34px; height: 34px; border-radius: 11px; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.brand-mark svg { width: 24px; height: 24px; stroke-width: 1.9; }
.brand-name { font-size: 16px; font-family: Manrope, Inter, sans-serif; font-weight: 800; letter-spacing: -.045em; overflow: hidden; text-overflow: ellipsis; }
.brand-sub { color: #83938a; font-size: 13px; font-weight: 600; letter-spacing: -.02em; }
.concept-tag { align-self: center; display: inline-flex; color: #80928a; font-size: 9px; font-weight: 800; letter-spacing: .11em; background: #f1f5f1; border: 1px solid #e4ebe5; border-radius: 5px; padding: 4px 6px; }
.date-navigation { display: flex; align-items: center; justify-content: center; gap: 4px; flex: 0 1 auto; min-width: 0; }
.date-arrow { color: var(--ink); }
.icon-button { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 36px; width: 36px; height: 36px; border-radius: 10px; transition: background .16s; }
.icon-button:hover, .period-button:hover, .today-button:hover { background: var(--theme-soft); }
.period-button { font-family: Manrope, sans-serif; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 7px 10px; min-width: 160px; font-size: 15px; font-weight: 800; border-radius: 9px; white-space: nowrap; }
.period-button svg { width:14px; color:var(--theme-muted); }
#app .period-button { color:var(--theme-dark); background:var(--theme-subtle); }
.booking-dialog:has(.board-month-picker) { width:min(345px,calc(100vw - 24px)); }
.board-month-year { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.board-month-year button { min-width:36px; }
.board-month-picker { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.board-month-picker button { min-width:0; padding-inline:4px; text-transform:capitalize; white-space:nowrap; }
.board-month-picker [aria-pressed="true"] { background:var(--theme-soft); color:var(--theme-dark); border-color:var(--theme-accent); }
.board-exact-date { margin-top:9px; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; flex: 1 1 300px; gap: 5px; }
.today-button { height: 35px; font-size: 12px; color: var(--accent-dark); background: var(--accent-soft); border-radius: 9px; padding: 0 14px; font-weight: 750; }
.today-button svg { display: none; }
.header-actions .icon-button { color: var(--theme-muted); }

.toolbar { flex: 0 0 55px; display: flex; align-items: center; gap: 16px; padding: 0 22px; border-bottom: 1px solid var(--line); background: #fff; min-height: 0; }
.mode-switch { display: inline-flex; padding: 4px; border-radius: 11px; background: var(--theme-subtle); gap: 2px; flex-shrink: 0; }
.mode-button { display: flex; align-items: center; justify-content: center; height: 32px; gap: 8px; padding: 0 13px; color: var(--theme-muted); border-radius: 8px; font-size: 12px; font-weight: 700; white-space: nowrap; }
.mode-button svg { width: 16px; height: 16px; }
.mode-button.is-active { background: #fff; color: var(--accent-dark); box-shadow: 0 1px 5px #213f3019; }
.toolbar-separator { display: none; }
.mobile-status { display: none; }
.toolbar-right { display: flex; margin-left: auto; align-items: center; gap: 10px; flex-shrink: 0; }
.zoom-label { color: var(--muted); font-size: 12px; font-weight: 600; }
.zoom-control { display: flex; align-items: center; height: 33px; border: 1px solid var(--line); border-radius: 9px; background: #fff; overflow: hidden; }
.zoom-control button { height: 31px; min-width: 32px; font-size: 18px; color: var(--theme-muted); }
.zoom-control button:hover { background: var(--theme-subtle); }
.zoom-control #zoomLevel { font-size: 12px; font-weight: 700; min-width: 50px; color: var(--theme-ink); border-left: 1px solid var(--line); border-right: 1px solid var(--line); }
.primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 17px; height: 34px; border-radius: 9px; background: var(--accent); color: white; font-size: 12px; font-weight: 750; white-space: nowrap; }
.primary-button:hover { background: var(--accent-dark); }
.primary-button svg { width: 16px; height: 16px; stroke-width: 2.4; }

.board-messages { display: flex; align-items: center; flex-wrap: wrap; gap: 3px 8px; padding: 2px 10px; font-size: 12px; background: #f5f8f5; color: #3d5947; border-bottom: 1px solid var(--line); }
.board-messages button { color: #235b3b; font-weight: 750; min-height: 34px; padding: 3px 7px; background: #eaf3ea; border-radius: 7px; }
.board-messages .board-sync-button { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; min-height: 32px; }
.board-sync-button svg { width: 15px; height: 15px; flex: none; stroke: currentColor; stroke-width: 2; fill: none; }
.board-messages .board-sync-button[data-sync="retry"] { background: #f8eadf; color: #813b29; }
.board-sync-button[data-sync="busy"] svg { animation: board-sync-spin .9s linear infinite; }
.board-messages #boardSync { flex: 1 1 165px; min-width: 0; overflow-wrap: anywhere; }
@keyframes board-sync-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .board-sync-button[data-sync="busy"] svg { animation: none; } }
.booking-draft-notice { margin: 8px 0 14px; padding: 9px 11px; background: #f7f0dc; color: #594c2e; border-radius: 9px; font-size: 13px; }
.board { display: grid; grid-template-columns: min(calc(var(--label-width) * var(--label-scale,1)),var(--scaled-label-width,174px)) minmax(0,1fr); grid-template-rows: min(var(--head-height),var(--scaled-head-height,60px)) minmax(0,1fr); min-height: 0; width: 100%; flex: 1 1 auto; background: #fff; overflow: hidden; position: relative; }
.corner { z-index: 2; display: grid; grid-template-columns: minmax(0,1fr) var(--capacity-width,32px); align-items: center; gap: 4px; padding: 0 4px 0 8px; background: #f7faf7; border-right: 1px solid var(--line-strong); border-bottom: 1px solid var(--line-strong); min-width: 0; }
.corner span { font-size: 11px; font-weight: 800; letter-spacing: .01em; color: var(--theme-muted); line-height: 1.2; }
.corner button { min-width: 0; min-height: 30px; border-radius: 6px; color: var(--accent); display: flex; align-items: center; justify-content: flex-start; gap: 2px; }
.corner button:hover { background: var(--accent-soft); }
.corner button svg { flex: 0 0 14px; height: 14px; }
.corner .capacity-heading { text-align: center; align-self: center; }
.date-viewport { overflow: hidden; position: relative; background: #f9fbf9; border-bottom: 1px solid var(--line-strong); }
.date-strip { position: relative; display: flex; width: max-content; height: 100%; will-change: transform; }
.day-head { position: relative; width: var(--day-width); flex: 0 0 var(--day-width); height: 100%; border-right: 1px solid #e5ebe7; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 8px; gap: 3px; color: #718177; text-align: center; font-variant-numeric: tabular-nums; }
.day-head.is-weekend { background: #f4f6f4; }
.day-head.is-today { background: #e9f3eb; }
.day-head .month-head { position: absolute; top: 7px; font-size: 9px; font-weight: 800; text-transform: uppercase; letter-spacing: .09em; color: #8a9b8f; }
.day-head .weekday { font-size: var(--weekday-font); font-weight: 700; text-transform: uppercase; letter-spacing: 0; }
.day-head .day-num { font-size: var(--day-font); font-weight: 700; line-height: 1; color: #52645a; letter-spacing: -.03em; }
.day-head.is-today .day-num { background: var(--accent); color: #fff; width: var(--today-size); height: var(--today-size); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin: 0; font-size: var(--day-font); }
.day-head.is-today .weekday { color: var(--accent-dark); }
.zoom-tiny .day-head.is-month-start { box-shadow: inset 2px 0 #75a98a; }
.zoom-tiny .day-head .month-head { z-index: 2; top: 6px; left: 2px; width: max-content; background: #e7f0e8; border: 1px solid #d5e5d7; border-radius: 3px; font-size: 8px; padding: 2px 3px; letter-spacing: 0; }
.zoom-ultra .day-head .weekday { display: none; }
.zoom-ultra .day-head { padding-bottom: 12px; }
.zoom-ultra .day-head .day-num { font-weight: 700; letter-spacing: -.06em; }
.room-viewport { overflow: hidden; border-right: 1px solid var(--line-strong); background: #fff; }
.room-strip { width: 100%; will-change: transform; }
.room-label { display: grid; grid-template-columns: minmax(0,1fr) var(--capacity-width,32px); align-items: stretch; gap: 4px; width: 100%; height: var(--row-height); border-bottom: 1px solid var(--theme-line); padding: 0 4px 0 0; text-align: start; background: #fff; overflow: hidden; }
.room-label:nth-child(even) { background: #fcfdfc; }
.room-label[style*="--unit-color"] { background: color-mix(in srgb,var(--unit-color) 9%,white); }
.room-label:focus-visible { outline-offset: -3px; }
.room-identity { min-width: 0; min-height: 0; display: flex; flex-direction: column; justify-content: center; gap: 1px; border-inline-start: 4px solid var(--unit-color,transparent); padding-left: 5px; }
.room-label :is(.room-name,.room-sub) { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-height: 1.04; overflow: hidden; overflow-wrap: anywhere; }
.room-label .room-name { font-size: var(--room-name-font); font-weight: 750; letter-spacing: -.016em; color: #2f4337; }
.room-label .room-sub { font-size: var(--room-detail-font); color: var(--theme-muted); font-weight: 600; }
.room-label.has-long-name .room-name { -webkit-line-clamp: 3; }
.room-label.has-long-name .room-sub { -webkit-line-clamp: 1; }
.room-label .room-capacity { border-inline-start: 1px solid var(--theme-line); color: var(--theme-muted); display: flex; justify-content: center; align-items: center; font-size: 11px; font-weight: 800; }
.grid-viewport { overflow: auto; overscroll-behavior: contain; overflow-anchor: none; scrollbar-width: thin; scrollbar-color: #bacfc0 transparent; touch-action: none; -webkit-touch-callout: none; -webkit-overflow-scrolling: touch; cursor: grab; min-width: 0; min-height: 0; background: #fff; outline: none; }
.grid-viewport.selecting { cursor: crosshair; }
.grid-viewport.is-panning { cursor: grabbing; user-select: none; }
.grid-world { width: 6500px; height: 1200px; position: relative; overflow-anchor: none; -webkit-user-select: none; user-select: none; background-image: linear-gradient(to right, #e7ece8 1px, transparent 1px), linear-gradient(to bottom, #e5ebe6 1px, transparent 1px); background-size: var(--day-width) 100%, 100% var(--row-height); background-position: 0 0; }
.day-shades { pointer-events: none; position: absolute; inset: 0; }
.day-midline { position:absolute; top:0; bottom:0; border-inline-start:1px dashed #85998b40; }
.day-shade { position: absolute; top: 0; height: 100%; pointer-events: none; background: #263e2d06; }
.day-shade.is-today { background: #7db69315; box-shadow: inset 1px 0 #93bfa347, inset -1px 0 #93bfa347; }
.booking-layer { position: absolute; inset: 0; }
.booking-bar { position: absolute; display: grid; grid-template-columns: minmax(0,1fr); align-content: center; gap: 1px; padding: 0 2px; height: calc(var(--row-height) - 6px); border: 1px solid var(--book-border); border-radius: 6px; color: var(--book-text); background: var(--book-bg); font-size: 9px; line-height: 10px; font-variant-numeric: tabular-nums; box-shadow: 0 1px 0 #fff6, 0 1px 3px #1c3a2512; white-space: nowrap; overflow: hidden; cursor: pointer; -webkit-text-size-adjust:100%; text-size-adjust:100%; touch-action: none; user-select: none; -webkit-user-select: none; transition: filter .13s, box-shadow .13s; }
.booking-bar:hover { filter: saturate(1.07); box-shadow: 0 2px 7px #1c3a2527; z-index: 5; }
.booking-bar:focus-visible { outline: 3px solid #84ad89; z-index: 6; }
:is(.booking-bar,.registry-row).status-occupied { --book-bg: var(--occupied-bg); --book-border: var(--occupied-br); --book-text: var(--occupied-fg); }
:is(.booking-bar,.registry-row).status-confirmed { --book-bg: var(--confirmed-bg); --book-border: var(--confirmed-br); --book-text: var(--confirmed-fg); }
:is(.booking-bar,.registry-row).status-pending, :is(.booking-bar,.registry-row).status-pending_payment { --book-bg: var(--pending-bg); --book-border: var(--pending-br); --book-text: var(--pending-fg); }
:is(.booking-bar,.registry-row).status-hold { --book-bg: var(--hold-bg); --book-border: var(--hold-br); --book-text: var(--hold-fg); }
:is(.booking-bar,.registry-row).status-checked_out { --book-bg: var(--checked-out-bg,#edf0ed); --book-border: var(--checked-out-br,#bcc9bf); --book-text: var(--checked-out-fg,#435c48); }
.booking-bar > span { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.booking-bar .booking-name { grid-column:1/-1; font-size:var(--board-name-size); font-weight:700; line-height:11px; white-space:pre; }
.booking-bar.is-details { grid-template-columns:minmax(0,1fr) auto; column-gap:4px; }
.booking-bar.is-details .booking-total { grid-column:1; grid-row:2; font-weight:650; }
.booking-bar.is-details .booking-guests { grid-column:2; grid-row:2; justify-self:end; }
.booking-bar.is-details .booking-phone { grid-column:1/-1; }
.booking-bar.is-moving { opacity: .45; }
.booking-bar.is-released { height:12px; margin-top:calc(var(--row-height) - 15px); z-index:2;
  border-color:#b6bdc6; background:#f4f5f7; color:#424d5d; box-shadow:none; }
.booking-bar.is-released > :not(.booking-name) { display:none; }
.booking-bar.is-released .booking-name { display:block; line-height:1; white-space:nowrap; }
.booking-bar.is-selected { outline: 2px solid var(--accent); outline-offset: 2px; z-index: 7; }
.selection-rect { position:absolute; inset:0; pointer-events:none; z-index:8; }
.selection-fill { position:absolute; border:2px solid var(--theme-accent); border-radius:4px; background:color-mix(in srgb, var(--theme-accent) 22%, transparent); }
.saved-selections { position: absolute; inset: 0; pointer-events: none; z-index: 7; }
.saved-selection { position: absolute; border: 2px solid var(--theme-accent); border-radius: 4px; background: color-mix(in srgb, var(--theme-accent) 22%, transparent); box-shadow: inset 0 0 0 1px #fff9; }
.saved-selection > span { position: absolute; top: -11px; left: -5px; border-radius: 8px; height: 18px; min-width: 18px; padding: 0 4px; background: var(--accent); color: #fff; font-size: 10px; font-weight: 850; display: flex; justify-content: center; align-items: center; }
.drag-ghost { position: absolute; pointer-events: none; border: 2px dashed #2b8b60; background: #d0e9d69c; border-radius: 7px; z-index: 9; }


dialog.board-action-menu {
  position:fixed; inset:auto; margin:0; padding:4px; z-index:20;
  width:min(226px,calc(100vw - 16px)); max-height:calc(100dvh - 16px); overflow:auto;
  border:1px solid var(--theme-edge); border-radius:12px; background:var(--theme-page); color:var(--theme-ink);
  box-shadow:0 5px 20px #1c32412b;
}
.board-action-menu::backdrop { background:transparent; }
.board-action-items { display:grid; gap:2px; }
.board-action-caption {
  display:flex; gap:5px; align-items:center; justify-content:space-between; padding:0 3px 3px 7px;
  border-bottom:1px solid var(--theme-line); font-size:11px; font-weight:650;
}
.board-action-caption > span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.board-action-items { grid-template-columns:minmax(0,1fr); }
.board-action-items button > span { min-width:0; overflow-wrap:break-word; }
.saved-selection .range-edge { position:absolute; pointer-events:auto; top:20%; bottom:20%; width:12px; padding:0;
  border:0; background:transparent; cursor:ew-resize; touch-action:none; }
.range-edge-start { left:0; }
.range-edge-end { right:0; }
.range-edge::after { content:""; position:absolute; inset:20% 3px; border-radius:4px; background:var(--theme-accent); }
.board-action-items button {
  display:flex; align-items:center; gap:7px; padding:5px 7px; min-height:34px; text-align:start;
  border:0; border-radius:7px; background:transparent; color:var(--theme-dark);
  font-size:12px; font-weight:650; line-height:1.15;
}
.board-action-items .board-action-close { flex:none; display:grid; place-items:center; width:29px; min-height:29px; padding:0; }
.board-action-items button small { display:block; margin-top:2px; color:var(--theme-muted); font-size:10px; }
.board-action-items button[data-board-action="cancel-unpaid"] { color:#9a302e; }
.board-action-items button:disabled { color:var(--theme-muted); cursor:default; }
.board-action-items button:enabled:hover { background:var(--theme-soft); }
.board-action-items button:focus-visible { outline:2px solid var(--theme-accent); outline-offset:1px; }
.board-action-menu .booking-icon { flex:none; width:16px; height:16px; }
@media (pointer:coarse) { .board-action-items button[data-board-action] { min-height:42px; } }
.booking-action-reference { display:grid; gap:2px; margin:0 0 6px; color:var(--theme-ink); font-size:13px; overflow-wrap:anywhere; }
.booking-action-reference small { color:var(--theme-muted); font-size:11px; }
@media (prefers-reduced-motion:no-preference) {
  .board-action-menu[open] { animation:board-menu-enter 110ms ease-out both; }
  @keyframes board-menu-enter { from { opacity:0; } to { opacity:1; } }
}
.statusline { display: none; }
.statusline-right { display: inline-flex; align-items: center; gap: 8px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.status-dot { width: 5px; height: 5px; border-radius: 50%; background: #6fbd8b; }
.app.focus .topbar, .app.focus .statusline { display: none; }
.app.focus .toolbar { flex: 0 0 47px; }
.focus-sidebar-toggle { display: none; }
.app.focus .focus-sidebar-toggle { display: inline-flex; flex: 0 0 32px; width: 32px; height: 32px; background: #eef5ef; color: var(--accent-dark); }
#exitFocus { display: none; }
.app.focus #exitFocus { display: inline-flex; }
.offscreen-date { position: fixed; left: -300px; top: 0; opacity: 0; }

.menu-backdrop { position: fixed; inset: 0; z-index: 20; }
.more-menu { position: fixed; z-index: 21; top: calc(var(--safe-top) + 59px); right: 21px; width: 255px; border-radius: 15px; border: 1px solid var(--line); padding: 7px; background: #fff; box-shadow: 0 18px 60px #18382427; }
.more-menu button { display: flex; align-items: center; gap: 12px; text-align: left; width: 100%; padding: 11px 12px; font-size: 12px; font-weight: 650; color: #3e5648; border-radius: 8px; }
.more-menu button:hover { background: #f0f7f2; }
.more-menu svg { width: 17px; height: 17px; color: var(--accent); }
.menu-divider { height: 1px; background: var(--line); margin: 6px 8px; }

.sheet-backdrop { position: fixed; inset: 0; z-index: 30; background: color-mix(in srgb, var(--theme-ink) 42%, transparent); display: flex; justify-content: flex-end; }
.sheet { display: flex; flex-direction: column; position: relative; width: min(430px,100vw); height: 100%; background: #fff; box-shadow: -10px 0 45px #00000015; animation: sheet-enter-right var(--panel-motion); }
@keyframes sheet-enter-right { from { transform: translateX(14px); opacity: .7; } to { transform: translateX(0); opacity: 1; } }
.sheet-handle { display: none; }
.sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 26px 26px 18px; border-bottom: 1px solid var(--line); }
.sheet-eyebrow { display: block; font-size: 10px; font-weight: 850; letter-spacing: .12em; color: var(--accent); margin-bottom: 7px; }
.sheet-head h2 { font-family: Manrope, Inter, sans-serif; font-size: 21px; letter-spacing: -.04em; margin: 0; color: var(--ink-strong); }
.sheet-close { color: var(--theme-muted); display: flex; justify-content: center; align-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--theme-subtle); }
.sheet-close:hover { background: var(--theme-soft); }
.sheet-close svg { width: 16px; height: 16px; }
.sheet-body { padding: 22px 26px calc(34px + var(--safe-bottom)); overflow-y: auto; overscroll-behavior: contain; min-height: 0; flex: 1; scrollbar-width: thin; }
.sheet-summary { padding: 16px 17px; border-radius: 13px; background: #f5f9f5; border: 1px solid #e4ece5; margin-bottom: 19px; }
.sheet-summary .summary-first { font-size: 14px; font-weight: 800; color: #244a31; }
.sheet-summary .summary-second { margin-top: 6px; font-size: 11px; color: #7f9283; line-height: 1.5; }
.field { margin-bottom: 16px; }
label.field { display: block; font-size: 12px; font-weight: 700; }
label.field > :is(input,select) { margin-top: 6px; }
.field > label { display: block; font-size: 11px; font-weight: 800; color: #63796c; margin-bottom: 7px; }
.field input, .field select { display: block; width: 100%; height: 43px; border: 1px solid #dbe5dd; border-radius: 9px; padding: 0 12px; background: #fff; color: #1e3026; font-size: 13px; outline: none; min-width: 0; }
.field input:focus, .field select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px #30875a20; }
.field input[type="date"] { appearance: auto; }
.field .help { font-size: 10px; color: #99a79d; margin-top: 5px; }
.fields-two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form-section { font-size: 11px; color: #86988a; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; margin: 20px 0 12px; }
.room-picks { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 17px; }
.room-pick { border: 1px solid #dfe8e0; border-radius: 9px; padding: 9px 10px; font-size: 11px; font-weight: 700; color: #647b6b; background: #fbfdfb; }
.room-pick.is-on { background: #e9f5eb; color: #227349; border-color: #9dd1ac; }
.sheet-buttons { display: flex; gap: 9px; margin-top: 24px; }
.sheet-buttons button { flex: 1; min-height: 43px; padding: 10px 12px; border-radius: 10px; font-size: 12px; font-weight: 800; }
.button-save { background: var(--accent); color: #fff; }
.button-save:hover { background: var(--accent-dark); }
.button-soft { background: var(--theme-subtle); color: var(--theme-dark); }
.button-soft:hover { background: var(--theme-soft); }
.button-danger { background: #fcf0ef; color: #ad5551; }
.button-danger:hover { background: #f6e5e3; }
.detail-name { font-family: Manrope, Inter, sans-serif; margin: 3px 0 18px; font-size: 24px; letter-spacing: -.05em; font-weight: 800; }
.detail-pill { display: inline-flex; gap: 6px; align-items: center; font-size: 11px; font-weight: 750; border-radius: 8px; padding: 7px 10px; margin-bottom: 20px; background: var(--pill-bg); color: var(--pill-fg); }
.detail-pill.status-occupied { --pill-bg: var(--occupied-bg); --pill-fg: var(--occupied-fg); }
.detail-pill.status-confirmed { --pill-bg: var(--confirmed-bg); --pill-fg: var(--confirmed-fg); }
.detail-pill.status-pending, .detail-pill.status-pending_payment { --pill-bg: var(--pending-bg); --pill-fg: var(--pending-fg); }
.detail-pill.status-hold { --pill-bg: var(--hold-bg); --pill-fg: var(--hold-fg); }
.detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 13px; padding: 18px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.detail-caption { font-size: 10px; color: #52685c; font-weight: 700; margin-bottom: 6px; }
.detail-value { font-size: 13px; font-weight: 750; color: #304c38; line-height: 1.45; }
.detail-finance { display: flex; justify-content: space-between; gap: 15px; padding: 17px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.detail-finance .finance-amount { font-weight: 850; color: #1e5536; }
.rental-overview, .rental-item { margin: 12px 0; padding: 12px; border: 1px solid #dce9df; border-radius: 13px; background: #fff; }
.rental-overview { background: #f8fbf8; }
.rental-entry { display: flex; justify-content: space-between; align-items: center; gap: 8px; text-align: left; width: 100%; min-height: 42px; color: #285d40; background: transparent; }
.rental-entry > span { flex: none; font-size: 12px; }
.rental-stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px; margin: 5px 0; }
.rental-stats > div { min-width: 0; border-radius: 8px; padding: 7px 6px; background: #edf3ee; color: #2c4b36; }
.rental-stats > div:nth-child(2) { background: #e5f3ed; color: #22573e; }
.rental-stats > div:nth-child(3) { background: #f5efdf; color: #624e29; }
.rental-stats dt { font-size: 11px; margin-bottom: 3px; overflow-wrap: anywhere; }
.rental-stats dd { font-size: 13px; font-weight: 800; margin: 0; overflow-wrap: anywhere; }
.rental-balances { display: flex; flex-wrap: wrap; gap: 5px; margin: 6px 0; }
.rental-balances:empty, .rental-actions:empty { display: none; }
.rental-balances span { padding: 4px 8px; border-radius: 8px; background: #eaf2ee; color: #294d3b; font-size: 11px; }
.rental-balances .rental-credit { background: #f7efdb; color: #6a4d1f; }
.rental-item-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.rental-item-heading strong, .rental-item-meta { overflow-wrap: anywhere; }
.rental-status { flex: none; border-radius: 8px; padding: 4px 6px; background: #edf3ee; color: #4c6354; font-size: 10px; }
.rental-item-meta { margin: 5px 0; color: #536a59; font-size: 12px; line-height: 1.45; }
.rental-details { margin-top: 7px; min-width: 0; }
.rental-details:not([open]) > :not(summary) { display: none; }
.rental-details summary, .rental-reserve summary { cursor: pointer; padding: 7px 0; color: #335f46; font-size: 12px; font-weight: 750; }
.rental-table { border-collapse: collapse; table-layout: fixed; width: 100%; font-size: 11px; }
.rental-table :is(th,td) { padding: 5px 3px; border-bottom: 1px solid #dce9df; vertical-align: top; text-align: left; overflow-wrap: anywhere; }
.rental-table th:first-child { width: 32%; }
.rental-table td { text-align: right; }
.rental-table thead th:not(:first-child) { text-align: right; }
.rental-table small { display: block; font-weight: 500; }
.rental-column-short { display: none; }
@media (max-width: 380px) {
  .rental-column-full { display: none; }
  .rental-column-short { display: inline; }
}
.rental-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.rental-actions button { min-height: 42px; padding: 8px 10px; border-radius: 8px; font-size: 12px; font-weight: 750; }
.rental-actions .rental-refund { background: #f5efdf; color: #654d28; }
.rental-history { padding: 0; margin: 0; list-style: none; }
.rental-history li { padding: 6px 0; border-top: 1px solid #dce9df; font-size: 12px; overflow-wrap: anywhere; }
.rental-history small { display: block; margin-top: 3px; color: #536a59; }
.rental-money-form { margin-top: 10px; padding: 10px; border: 1px solid #dce9df; border-radius: 10px; background: #f6faf7; }
.rental-money-form .field { min-width: 0; margin-bottom: 8px; }
.rental-money-form .field :is(input,select) { padding-inline: 8px; font-size: 16px; }
.rental-money-form .sheet-buttons { margin-top: 7px; }
.rental-money-form .sheet-buttons button { flex-basis: 96px; }
.rental-form-heading { font-size: 13px; font-weight: 800; margin: 0 0 8px; overflow-wrap: anywhere; }
.rental-form-message { font-size: 12px; color: #7b3a25; margin: 6px 0; }
.rental-feedback { padding: 7px 9px; margin: 0 0 8px; border-radius: 8px; background: #eaf3ec; color: #28583b; font-size: 12px; }
.small-note { font-size: 10px; color: #93a397; line-height: 1.6; margin-top: 16px; }
.mini-records { padding: 14px; background: #f8faf8; border: 1px solid var(--line); border-radius: 10px; margin-top: 15px; }
.mini-records > div { font-size: 11px; padding: 5px 0; display: flex; justify-content: space-between; gap: 10px; }
.mini-records b { color: #3f7351; }
.section-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 15px; }
.section-header p { font-size: 11px; color: #93a397; margin: 0; }
.item-list { display: flex; flex-direction: column; gap: 7px; }
.item-list-button { display: flex; justify-content: space-between; align-items: center; text-align: left; padding: 12px 13px; width: 100%; background: #fafcfa; border: 1px solid var(--line); border-radius: 10px; }
.item-list-button:hover { background: #eff6f0; }
.item-list-button .item-primary { display: block; font-size: 12px; font-weight: 800; color: #365b42; }
.item-list-button .item-secondary { display: block; font-size: 10px; color: #98a99a; margin-top: 4px; }
.item-list-button .item-tag { font-size: 10px; font-weight: 700; color: #77967c; }
.room-list-entry { gap: 8px; padding: 7px 9px; }
.room-open { flex: 1; min-width: 0; text-align: left; padding: 6px 4px; }
.room-edit { flex: none; font-size: 10px; font-weight: 750; color: var(--accent-dark); background: var(--accent-soft); border-radius: 7px; padding: 8px; }
.palette-row { display: flex; align-items: center; gap: 11px; width: 100%; padding: 12px; margin-bottom: 7px; text-align: left; border-radius: 11px; border: 1px solid var(--line); background: #fff; }
.palette-row.is-on { border-color: var(--theme-edge); background: var(--theme-soft); }
.palette-row .palette-check { margin-inline-start:auto; color:var(--theme-dark); font-weight:800; }
#paletteOptions { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr)); gap:7px; margin-bottom:8px; }
#paletteOptions .palette-row { margin:0; }
.palette-samples { display: flex; gap: 4px; flex: none; }
.palette-samples i { display: block; width: 19px; height: 24px; border-radius: 5px; }
.palette-samples i:nth-child(1) { background:var(--theme-accent); }
.palette-samples i:nth-child(2) { background:var(--occupied-bg); }
.palette-samples i:nth-child(3) { background:var(--confirmed-bg); }
.palette-samples i:nth-child(4) { background:var(--pending-bg); }
.palette-title { font-size: 12px; font-weight: 750; }
.palette-desc { font-size: 11px; color:var(--theme-muted); margin-top:2px; }
.legend-list { margin-top: 24px; }
.legend-row { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-size: 12px; color: #637c6b; }
.legend-color { width: 24px; height: 14px; border-radius: 5px; border: 1px solid var(--legend-border); background: var(--legend-bg); }

.toast { position: fixed; z-index: 50; left: 50%; bottom: calc(43px + var(--safe-bottom)); transform: translateX(-50%); min-height: 43px; max-width: min(500px, calc(100vw - 36px)); border-radius: 11px; padding: 9px 12px 9px 15px; background: var(--theme-dark); color: #fff; display: flex; align-items: center; gap: 15px; box-shadow: 0 12px 33px #132b244a; font-size: 12px; font-weight: 650; line-height: 1.4; }
.toast button { color: var(--theme-soft); white-space: nowrap; font-size: 12px; font-weight: 850; }
.toast:not(:has(button:not([hidden]))) { pointer-events:none; }

@media (max-width: 920px) {
  :root { --label-width: 134px; }
  .topbar { flex-basis: 55px; height: 55px; padding: 0 13px; gap: 5px; }
  .brand { flex: 0 1 180px; gap: 7px; }
  .brand-mark { width: 30px; height: 30px; border-radius: 9px; }
  .brand-mark svg { width: 20px; height: 20px; }
  .brand-name { font-size: 14px; }
  .brand-sub { display: none; }
  .concept-tag { display: none; }
  .period-button { font-size: 13px; min-width: 125px; gap: 3px; padding: 6px 3px; }
  .header-actions { flex: 0 1 170px; }
  .today-button { padding: 0 9px; }
  .toolbar { padding: 0 13px; gap: 10px; }
  .zoom-label { display: none; }
  .mobile-status { display: none; }
  .toolbar-separator { display: none; }
  .corner span { font-size: 10px; }
}

@media (max-width: 570px) {
  :root { --label-width: 111px; --head-height: 55px; }
  .topbar { flex: 0 0 53px; height: 53px; padding: 0 8px 0 10px; }
  .brand { flex: 0 0 auto; gap: 5px; }
  .brand-name { font-size: 13px; }
  .brand-mark { width: 27px; height: 27px; border-radius: 8px; }
  .brand-mark svg { width: 19px; height: 19px; }
  .date-navigation { flex: 1 1 auto; gap: 0; }
  .date-arrow { flex-basis: 23px; width: 23px; height: 30px; }
  .date-arrow svg { width: 16px; }
  .period-button { min-width: 0; flex: 0 1 auto; max-width: 100px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11.5px; }
  .period-button svg { width: 12px; }
  .header-actions { flex: 0 0 auto; gap: 0; }
  .header-actions .icon-button { flex-basis: 30px; width: 30px; height: 33px; }
  .header-actions .icon-button svg { width: 18px; }
  .today-button { display: inline-flex; justify-content: center; align-items: center; width: 30px; height: 32px; padding: 0; border-radius: 8px; }
  .today-button svg { display: block; width: 17px; height: 17px; }
  .today-button span { display: none; }
  .toolbar { flex: 0 0 48px; padding: 0 9px; gap: 6px; }
  .mode-switch { padding: 3px; }
  .mode-button { height: 30px; padding: 0 8px; gap: 4px; font-size: 11px; }
  .mode-button svg { width: 14px; }
  .toolbar-right { gap: 5px; }
  .zoom-control { height: 31px; }
  .zoom-control button { min-width: 25px; height: 29px; font-size: 16px; }
  .zoom-control #zoomLevel { min-width: 39px; font-size: 10px; }
  .primary-button { width: 32px; height: 31px; padding: 0; border-radius: 8px; }
  .primary-button span { display: none; }
  .corner { --capacity-width: 26px; padding: 0 4px 5px 4px; }
  .corner span { font-size: 9px; }
  .corner button svg { width: 15px; }
  .room-label { --capacity-width: 26px; }
  .day-head { padding-bottom: 6px; gap: 2px; }
  .day-head .weekday { font-size: var(--weekday-font); }
  .day-head .day-num { font-size: var(--day-font); }
  .day-head .month-head { top: 5px; font-size: 8px; }
  .day-head.is-today .day-num { width: var(--today-size); height: var(--today-size); font-size: var(--day-font); }
  .statusline { padding: 0 10px; height: 24px; min-height: 24px; flex-basis: 24px; font-size: 9px; }
  .sheet-backdrop { align-items: flex-end; justify-content: center; }
  .sheet { width: 100%; height: auto; max-height: min(88dvh,840px); min-height: 170px; border-radius: 22px 22px 0 0; padding-bottom: var(--safe-bottom); box-shadow: 0 -10px 50px #0000001b; animation: sheet-enter-bottom .22s ease-out; }
  @keyframes sheet-enter-bottom { from { transform: translateY(40px); opacity: .85; } to { transform: translateY(0); opacity: 1; } }
  .sheet-handle { display: block; flex: 0 0 5px; width: 35px; border-radius: 5px; background: var(--theme-line); align-self: center; margin: 8px auto 1px; }
  .sheet-head { padding: 16px 20px 14px; }
  .sheet-head h2 { font-size: 19px; }
  .sheet-body { padding: 18px 20px 20px; }
  .more-menu { right: 10px; top: calc(var(--safe-top) + 49px); }
  .app.focus .toolbar { flex-basis: 41px; }
  .app.focus .board { --head-height: 47px; }
  .toast { bottom: calc(25px + var(--safe-bottom)); font-size: 11px; }
}

@media (max-height: 490px) and (orientation: landscape) {
  :root { --head-height: 47px; --label-width: 117px; }
  .topbar { flex: 0 0 41px; height: 41px; }
  .toolbar { flex: 0 0 39px; }
  .brand-mark { width: 26px; height: 26px; }
  .mode-button { height: 27px; }
  .statusline { display: none; }
  .sheet { border-radius: 0; height: 100%; max-height: 100%; width: min(430px, 54vw); animation: sheet-enter-right .2s ease-out; }
  .sheet-handle { display: none; }
  .sheet-head { padding: 13px 17px; }
  .sheet-body { padding: 12px 17px 17px; }
  .sheet-backdrop { justify-content: flex-end; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* The workspace stays full-width: navigation is an overlay, never a permanent rail. */
.sidebar-toggle { margin-left: -9px; flex-shrink: 0; color: var(--theme-accent); background: var(--theme-page); }
.sidebar-toggle:hover { background: var(--theme-soft); }
.sidebar-backdrop { position: fixed; inset: 0; z-index: 25; background: #18263a6b; display: flex; align-items: stretch; justify-content: flex-start; }
.sidebar { width: min(302px, 86vw); height: 100%; display: flex; flex-direction: column; color:#18263a; background: var(--theme-subtle); box-shadow: 8px 0 36px #18263a35; animation: sidebar-arrive var(--panel-motion); padding-top: var(--safe-top); padding-bottom: var(--safe-bottom); overflow-y: auto; }
@keyframes sidebar-arrive { from { transform: translateX(-25px); opacity: .8; } to { transform: translateX(0); opacity: 1; } }
.sidebar-head { display: flex; align-items: center; gap: 11px; padding: 24px 19px 30px; }
.sidebar-head .sidebar-logo { width: 39px; height: 39px; background: var(--theme-accent); color: #fff; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.sidebar-head .sidebar-logo svg { width: 28px; height: 28px; stroke-width: 1.9; }
.sidebar-head b { display: block; font-family: Manrope, sans-serif; font-size: 18px; letter-spacing: -.035em; }
.sidebar-head small { display: block; font-size: 10px; color: #526984; margin-top: 2px; }
.organization-link { padding:0; color:inherit; text-align:start; background:none; }
.organization-link:enabled:hover [data-organization-name] { color:var(--theme-accent); }
.topbar .organization-link { max-inline-size:clamp(72px,24vw,235px); }
.sidebar-organization { display:flex; align-items:center; min-width:0; gap:9px; overflow-wrap:anywhere; }
.sidebar-organization .sidebar-logo { flex:none; }
.sidebar-head .sidebar-close { flex:none; }
:is(.brand-mark,.sidebar-logo):has([data-organization-logo]:not([hidden])) { background:#fff; box-shadow:inset 0 0 0 1px var(--theme-line); }
:is(.brand-mark,.sidebar-logo):has([data-organization-logo]:not([hidden])) svg { display:none; }
[data-organization-logo]:not([hidden]) { display:block; width:100%; height:100%; object-fit:contain; border-radius:inherit; }
.sidebar-close { margin-left: auto; display: flex; align-items: center; justify-content: center; height: 30px; width: 30px; border-radius: 7px; background: var(--theme-soft); color: var(--theme-accent); }
.sidebar-close svg { width: 15px; height: 15px; }
.sidebar-nav-title { margin: 0 22px 11px; font-size: 9px; font-weight: 850; color: #526984; letter-spacing: .12em; }
.sidebar-nav-title-secondary { margin-top: 28px; }
.sidebar-nav { display: grid; gap: 4px; padding: 0 10px; }
.sidebar-item { width: 100%; padding: 12px 12px; border-radius: 9px; display: flex; align-items: center; gap: 12px; color: var(--theme-ink); font-size: 12px; font-weight: 720; text-align: left; }
.sidebar-item svg { width: 18px; height: 18px; color: var(--theme-muted); }
.sidebar-item:hover { background: var(--theme-soft); }
.sidebar-item.active { background: var(--theme-soft); color: var(--theme-dark); }
.sidebar-item.active svg { color: var(--theme-accent); }
.sidebar-count { margin-left: auto; padding: 2px 6px; border-radius: 5px; background: #e6eef9; color: #385f93; font-size: 10px; }
.sidebar-bottom { margin: auto 20px 0; padding: 19px 0 17px; color: #526984; font-size: 10px; border-top: 1px solid var(--theme-line); }
.sidebar-bottom button { display:block; margin-top:10px; padding:5px 0; border:0; color:var(--theme-accent); background:none; font:inherit; font-weight:800; cursor:pointer; }
.server-login-overlay { position:fixed; inset:0; z-index:90; display:flex; align-items:safe center; justify-content:center; overflow-y:auto; padding:20px; background:#eff5f0; }
.server-login-box { width:min(390px,100%); padding:28px; border:1px solid #dae6dd; border-radius:20px; background:#fff; box-shadow:0 18px 55px #234b3320; }
.server-login-logo { color:var(--accent-dark); font-weight:900; font-size:23px; margin-bottom:30px; }
.server-login-logo small { display:block; color:#8ca093; font-size:12px; font-weight:500; margin-top:4px; }
.server-login-box h2 { font-size:19px; font-weight:800; margin-bottom:20px; }
.server-login-box label { display:block; font-size:12px; color:#51695a; font-weight:800; margin:13px 0; }
.server-login-box input { width:100%; display:block; margin-top:7px; height:47px; padding:0 13px; font:inherit; font-size:16px; color:#263b2e; background:#fafcfb; border:1px solid #cfddd3; border-radius:11px; }
.server-login-box p { color:#b34436; font-size:12px; min-height:17px; line-height:1.4; }
.server-login-box button { width:100%; min-height:45px; border-radius:10px; font:inherit; font-weight:800; }

.selection-actions { position: fixed; left: 50%; bottom: calc(21px + var(--safe-bottom)); transform: translateX(-50%); z-index: 15; width: min(620px,calc(100vw - 28px)); min-height: 74px; padding: 13px 14px 13px 18px; border: 1px solid #d3e3d7; border-radius: 16px; background: #fff; box-shadow: 0 12px 38px #1537243b; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.selection-actions-summary { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.selection-actions-summary strong { font-size: 13px; color: var(--accent-dark); font-weight: 850; white-space: nowrap; }
.selection-actions-summary span { font-size: 10px; color: #8ca08f; line-height: 1.4; }
.selection-actions-buttons { display: flex; gap: 7px; align-items: center; flex: 0 0 auto; }
.selection-actions-buttons button { height: 39px; min-width: 62px; padding: 0 12px; font-size: 11px; font-weight: 800; border-radius: 9px; }
.selection-actions-buttons button.button-soft { border: 1px solid #d9e6dc; }
.selection-actions-buttons button.button-save { background: var(--accent); color: #fff; }
.selection-actions-buttons .selection-discard { display: flex; justify-content: center; align-items: center; min-width: 34px; width: 34px; padding: 0; background: #f1f4f1; color: #8aa091; }
.selection-discard svg { width: 15px; height: 15px; }
.selection-actions.is-collecting { border-color: #7eb797; }
.app .stay-split-actions {
  position:static; transform:none; flex:none; align-self:center;
  width:min(640px,calc(100% - 20px)); min-height:0; margin:4px 0 calc(5px + var(--safe-bottom)); padding:6px 9px;
  display:grid; grid-template-columns:minmax(0,1fr); gap:5px; border-color:var(--theme-edge); border-radius:10px;
  box-shadow:0 1px 4px #192f441a;
}
.stay-split-actions .selection-actions-summary span { color:var(--theme-dark); }
.stay-split-selection { border-style:dashed; border-color:var(--theme-dark); background:color-mix(in srgb,var(--theme-accent) 32%,transparent); }
.stay-split-grip {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  display:grid; place-items:center; width:24px; height:24px; border-radius:6px;
  color:#fff; background:var(--theme-dark); pointer-events:auto; cursor:grab;
}
.stay-split-grip .booking-icon { width:14px; height:14px; }
.stay-split-grip:active { cursor:grabbing; }
.app .stay-split-actions .selection-actions-buttons { grid-column:1; grid-row:auto; justify-self:end; flex-wrap:wrap; }
.stay-split-actions .selection-actions-buttons button { height:32px; }
.stay-split-quote { max-height:min(26dvh,165px); overflow:auto; font-size:12px; color:var(--theme-ink); }
.stay-split-quote ul,.quick-booking-stays { list-style:none; margin:0; padding:0; }
.stay-split-quote li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:3px 12px; padding:4px 0; border-top:1px solid var(--theme-edge); }
.stay-split-quote p { margin:6px 0 0; }

.quick-booking-form { display:grid; gap:9px; }
.quick-booking-stays { font-size:13px; }
.quick-booking-price { margin:0; font-size:13px; font-weight:700; }
.quick-guest-matches { display:grid; gap:3px; max-height:136px; overflow:auto; }
.quick-guest-matches button { text-align:left; justify-content:flex-start; padding:6px 9px; }
@media(max-width:620px) {
  #selectionActions:has(#quickBookSelectedRanges:not([hidden])) .selection-actions-summary { grid-row:1; grid-column:1; }
  #selectionActions:has(#quickBookSelectedRanges:not([hidden])) .range-buttons { grid-row:1; grid-column:2; max-width:35vw; }
  #selectionActions:has(#quickBookSelectedRanges:not([hidden])) .selection-actions-buttons { grid-row:2; grid-column:1/-1; justify-self:end; }
}

.app:has(#staySplitActions:not([hidden])) :is(#newBookingButton,.board-team-button,.draft-shortcut,.folded-booking) { display:none; }
.selection-actions.is-collecting #addAnotherRange { background: #e7f3ea; border-color: #93c8a1; color: var(--accent-dark); }
.range-buttons { display: flex; gap: 4px; min-width: 0; max-width: 180px; overflow-x: auto; }
.range-buttons button { flex: 0 0 auto; min-width: 36px; min-height: 34px; border-radius: 5px; background: #e7f3ea; color: var(--accent-dark); font-weight: 700; font-size: 11px; }
.catalog-fields { min-width: 0; border: 0; margin: 0; padding: 0; }
.lifecycle-deadline { margin: 8px 0; font-size: 13px; font-weight: 700; color: #4f624d; }
.lifecycle-deadline.is-waiting { color:#795000; }
.lifecycle-buttons { display: flex; flex-wrap: wrap; gap: 6px; margin: 12px 0; }
.lifecycle-buttons button, .lifecycle-entry button { min-height: 42px; padding: 7px 11px; border-radius: 7px; font-weight: 700; }
.lifecycle-entry { display: grid; grid-template-columns: minmax(0,1fr); align-items: center; gap: 6px; margin: 7px 0; padding: 9px; border: 1px solid var(--line); border-radius: 7px; overflow-wrap: anywhere; }
.lifecycle-entry a { color: var(--accent-dark); font-weight: 700; }
.lifecycle-entry small { color: #536656; overflow-wrap: anywhere; }
.lifecycle-entry button { grid-column: 1 / -1; }
.lifecycle-check { display: flex; align-items: center; gap: 8px; min-height: 42px; font-size: 13px; }

/* Multiple independent stay intervals inside one reservation. */
.itinerary-list { display: grid; gap: 8px; margin-bottom: 17px; }
.itinerary-row { padding: 12px 12px 9px; border: 1px solid #cdd9e3; background: #f5f8fb; border-radius: 11px; }
.itinerary-row-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.itinerary-row-head b { font-size: 11px; font-weight: 800; color: #294c68; }
.itinerary-row-head button { font-size: 10px; font-weight: 700; color: #923d32; }
#bookingForm .stay-dates { background: #e4eef7; border: 1px solid #b9cddd; color: #244b67; }
#bookingForm .stay-dates[aria-expanded="true"] { background: #d5e7f4; }
#bookingForm :is(.summary-second,[data-stay-hours]) { color: #50665c; }
.itinerary-row .fields-two { gap: 7px; }
.itinerary-row .field { margin-bottom: 2px; }
.itinerary-row .field > label { font-size: 9px; margin-bottom: 4px; }
.itinerary-row .field input, .itinerary-row .field select { height: 36px; padding: 0 6px; font-size: 11px; }
.itinerary-row .field input[type="date"] { font-size: 10px; }
.stay-dates { width: 100%; margin: 8px 0 4px; }
.stay-calendar { margin: 8px 0; padding: 8px; border: 1px solid var(--line-strong); border-radius: 10px; background: #fff; }
.calendar-heading { display: grid; grid-template-columns: 42px 1fr 42px; align-items: center; text-align: center; }
.calendar-heading button { min-height: 40px; border: 1px solid var(--line-strong); border-radius: 6px; font-size: 21px; }
.calendar-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 3px; margin: 8px 0; text-align: center; font-size: 11px; }
.calendar-grid button { min-height: 38px; padding: 0 2px; border-radius: 6px; border: 1px solid var(--line-strong); font: inherit; font-weight: 750; }
.calendar-grid button small { margin-inline-start: 1px; }
.calendar-grid button.is-busy { background: repeating-linear-gradient(135deg,#fff,#fff 4px,#f0ded9 4px,#f0ded9 7px); color: #773d33; }
.calendar-grid button.is-draft { background: #e9f1e8; color: #365f45; }
.calendar-grid button.is-picked { box-shadow: inset 0 0 0 2px var(--accent); }
.calendar-grid button.is-checkout { border: 2px dashed var(--accent); }
.calendar-grid button:disabled { cursor: default; opacity: .65; }
.resident-card { min-width: 0; margin: 12px 0; padding: 10px; border: 1px solid var(--line-strong); border-radius: 10px; }
.resident-card legend { padding: 0 5px; font-size: 12px; font-weight: 750; }
.stay-line-main .guest-link { margin: 4px 0 0; text-align: start; }
.document-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 12px; margin-top: 7px; }
.document-actions .guest-link { margin: 0; padding: 7px 0; }
.document-actions button { flex: 0 1 auto; }
.document-preview { display: inline-flex; margin: 8px 0; min-height: 34px; align-items: center; }
.sheet-buttons { flex-wrap: wrap; }
.sheet-buttons button { flex: 1 1 126px; min-width: 0; overflow-wrap: anywhere; }
.item-list-button { gap: 12px; }
.item-list-button > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.item-list-button .item-tag { flex: 0 1 auto; max-width: 38%; text-align: end; overflow-wrap: anywhere; }
:is([data-finance-booking],[data-open-guest-booking]) .item-tag {
  flex: none;
  max-width: none;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  color: #4d6656;
}
.registry-row { display: grid; grid-template-columns: minmax(0,1fr) minmax(65px,34%); align-items: start; }
.registry-row .item-tag { max-width: none; }
.registry-stays { display: grid; gap: 5px; margin-top: 6px; }
.registry-stays .item-secondary { margin: 0; color: #4d6656; }
.registry-pages { align-items: center; }
.registry-pages button { flex: 1 1 72px; }
.registry-pages span { font-size: 12px; text-align: center; color: var(--muted); }
.export-dates { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,185px),1fr)); gap: 10px; }
.export-dates input { min-width: 0; max-width: 100%; }
#boardExportForm > .small-note { color: #4d6656; }
.booking-reference { color: #526b5b; margin: 12px 0; overflow-wrap: anywhere; font-size: 11px; }
.booking-reference summary { cursor: pointer; padding: 6px 0; }
.booking-guest { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; padding: 12px; background: #f4f8f4; border-radius: 10px; }
.booking-guest strong,.booking-guest small { display: block; overflow-wrap: anywhere; }
.booking-guest button,.booking-next button { min-height: 40px; padding: 8px 12px; border-radius: 8px; }
.booking-guest button { font-size: 12px; font-weight: 750; }
.booking-guest strong { font-size: 14px; }
.booking-guest small { font-size: 12px; }
.booking-status-line { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; margin-bottom: 10px; }
.booking-status-line .detail-pill,.booking-status-line .guest-link { margin: 0; }
.booking-facts { gap: 10px; padding: 11px 0; margin-bottom: 9px; }
.booking-links { display: flex; flex-wrap: wrap; gap: 0 16px; }
.booking-next { padding: 12px; border: 1px solid #cce3d4; border-radius: 10px; background: #f0f7f0; }
.booking-next p { margin: 5px 0; }
.booking-next button { margin-top: 5px; background: var(--accent); color: white; text-align: left; }
.booking-history summary { padding: 10px 0; cursor: pointer; }
.today-navigation { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; gap: 8px; margin-bottom: 14px; }
.today-navigation button { min-height: 42px; border-radius: 8px; font-weight: 750; }
.today-navigation button[aria-label] { font-size: 22px; }
.template-upload { margin: 8px 0 16px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f7faf7; }
.template-upload summary { cursor: pointer; font-weight: 750; font-size: 13px; }
.template-upload:not([open]) form { display: none; }
#templateDictionary:not([open]) > :not(summary) { display: none; }
#templateList .document-actions { gap: 6px 10px; }
#templateList .document-actions button { font-size: 11px; }
#templateList .item-primary { display: block; font-size: 13px; font-weight: 750; line-height: 1.35; }
#templateList .item-secondary { display: block; margin-top: 4px; font-size: 11px; }
.lifecycle-check input { accent-color: var(--accent); flex-shrink: 0; }
.staff-editor { margin: 0 0 10px; padding: 12px; border: 1px solid var(--line); border-radius: 10px; }
.staff-editor summary { cursor: pointer; font-weight: 750; overflow-wrap: anywhere; }
.staff-editor .lifecycle-check { margin-top: 8px; }
.sheet-head { gap: 12px; }
.sheet-head > div { min-width: 0; overflow-wrap: anywhere; }
.sheet-close { flex: 0 0 36px; }
.fields-two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.app[data-session="active"] .concept-tag { display: none; }
@media (max-width: 570px) {
  .topbar { display: grid; grid-template-columns: auto auto minmax(0,1fr) auto; gap: 5px; }
  .topbar .date-navigation { min-width: 0; justify-content: center; }
  .topbar .period-button { display: block; min-width: 0; max-width: min(125px,100%); }
  .topbar .period-button svg { display: none; }
  .topbar .header-actions button { width: 34px; min-height: 36px; flex-basis: 34px; }
  .topbar .sidebar-toggle { width: 34px; height: 36px; margin: 0; }
  .toolbar .mode-switch, .toolbar .toolbar-right { min-width: 0; }
  .toolbar .mode-button { min-height: 35px; }
  .toolbar .primary-button { min-height: 36px; }
  .corner { padding-bottom: 0; }
}
@media (max-width: 365px) {
  .topbar { grid-template-columns: auto minmax(0,1fr) auto; }
  .topbar .brand { display: none; }
  .app.focus .toolbar .primary-button { display: none; }
  .toolbar .mode-button svg { display: none; }
  .toolbar .mode-button { padding-inline: 7px; }
}
@media (max-height: 490px) and (orientation: landscape) {
  .server-login-box { padding: 16px 22px; }
  .server-login-logo, .server-login-box h2 { margin-bottom: 8px; }
  .server-login-box label { margin-block: 7px; }
  .server-login-box input { height: 39px; }
  .more-menu { top: calc(var(--safe-top) + 42px); max-height: calc(100dvh - var(--safe-top) - 54px); overflow-y: auto; }
}
.stay-cost { font-size: 10px; color: #54745d; font-weight: 750; padding: 8px 3px 3px; text-align: right; }
.price-mode { display: grid; grid-template-columns: auto 1fr; gap: 2px 9px; align-items: center; margin: 0 0 15px; border-radius: 10px; border: 1px solid #dce9dc; background: #f6faf6; padding: 12px 13px; cursor: pointer; }
.price-mode input { grid-row: span 2; width: 17px; height: 17px; accent-color: var(--accent); }
.price-mode span { color: #2e5839; font-weight: 800; font-size: 12px; }
.price-mode small { color: #879f8c; font-size: 10px; }
.payment-breakdown { padding: 13px 14px; border: 1px solid #b4d2bf; border-radius: 10px; background: #edf6ef; margin: 2px 0 18px; }
.payment-breakdown > div { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; padding: 5px 0; }
.payment-breakdown span { color: #405e4a; }
.payment-breakdown strong { color: #24583a; font-size: 12px; white-space: nowrap; }
.payment-breakdown > div:last-child { padding-top: 10px; margin-top: 4px; border-top: 1px solid #e2ebe4; }
.field input[readonly] { color: #2b6540; background: #f4f8f4; font-weight: 800; }
.checkin-entry { width: 100%; display: flex; align-items: center; justify-content: space-between; text-align: left; padding: 14px 16px; margin-top: 20px; background: #ebf5ee; border: 1px solid #cce3d4; border-radius: 12px; color: #276b44; }
.checkin-entry strong { font-size: 13px; display: block; }
.checkin-entry small { font-size: 10px; display: block; margin-top: 4px; color: #6d9476; }
.checkin-entry > span:last-child { font-size: 23px; }
.privacy-warning { border: 1px solid #e6cfaa; border-radius: 11px; background: #fff9ef; padding: 12px 14px; margin-bottom: 18px; }
.privacy-warning strong { font-size: 11px; color: #865c23; display: block; margin-bottom: 5px; }
.privacy-warning span { font-size: 10px; color: #8c785e; line-height: 1.55; display: block; }
.companion-list { display: grid; gap: 8px; }
.companion-row { padding: 13px; border: 1px solid #dfe8df; border-radius: 11px; background: #f9fcf9; }
.companion-row .field { margin-bottom: 10px; }
.companion-row .fields-two .field { margin-bottom: 0; }
.consent-record { margin: 16px 0 20px; padding: 13px 14px; background: #f5f9f5; border: 1px solid #dce9df; border-radius: 11px; }
.consent-record label { display: flex; gap: 10px; align-items: flex-start; font-size: 11px; line-height: 1.6; font-weight: 700; color: #45694f; }
.consent-record input { margin-top: 3px; accent-color: var(--accent); flex: none; }
.consent-record small { display: block; padding-left: 25px; color: #8ca092; font-size: 10px; line-height: 1.6; margin-top: 7px; }
.print-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.print-actions button { min-height: 42px; border: 1px solid #cbded0; background: #f3f8f4; border-radius: 9px; color: #34674a; font-size: 11px; font-weight: 800; padding: 9px; }
.print-actions button:hover { background: #e8f3ea; }
.role-switch { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; padding: 9px; background: #f5f8f5; border: 1px solid #e2eae3; border-radius: 10px; margin-bottom: 16px; }
.role-switch > span { font-size: 10px; color: #708c76; font-weight: 750; }
.role-switch > div { display: flex; gap: 4px; }
.role-switch button { border-radius: 7px; padding: 8px 10px; font-size: 10px; font-weight: 800; color: #688674; }
.role-switch button.on { background: var(--accent); color: #fff; }
.clean-checks { display: grid; gap: 10px; }
.clean-checks label { border: 1px solid #dce8df; border-radius: 10px; padding: 13px; display: flex; gap: 10px; align-items: center; font-size: 12px; font-weight: 750; color: #3b5946; cursor: pointer; }
.clean-checks input { width: 18px; height: 18px; accent-color: var(--accent); flex: none; }
.clean-inventory-link { background: #f6f9f6; border: 1px solid #e1ece2; border-radius: 10px; padding: 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; font-size: 11px; color: #57735f; }
.clean-inventory-link button { font-weight: 800; color: var(--accent); white-space: nowrap; }
.photo-upload { display: block; cursor: pointer; border-radius: 11px; border: 1px dashed #a7cbb1; padding: 16px 12px; background: #f6faf7; text-align: center; font-size: 11px; font-weight: 800; color: #447c59; }
.photo-upload input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.clean-photo-state { display: grid; justify-content: center; gap: 5px; font-size: 10px; color: #839a88; margin: 12px 0; text-align: center; }
.clean-photo-state img { max-width: 100%; max-height: 230px; border-radius: 10px; object-fit: contain; }
.inventory-list { display: grid; gap: 10px; }
.inventory-line { background: #f9fbf9; border: 1px solid #dfe8df; border-radius: 10px; padding: 12px; }
.inventory-line .field { margin-bottom: 9px; }
.inventory-line .fields-two .field { margin-bottom: 0; }
.remove-inventory { font-size: 10px; color: #a26f67; margin: 12px 0 2px; font-weight: 750; }
.stay-line { display: flex; align-items: center; gap: 9px; padding: 10px 0; border-bottom: 1px solid #edf0ed; }
.stay-line:last-child { border-bottom: 0; }
.stay-line-index { flex: 0 0 24px; height: 24px; background: var(--accent-soft); color: var(--accent-dark); border-radius: 7px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 10px; }
.stay-line-main { flex: 1; min-width: 0; font-size: 12px; font-weight: 750; color: #395c43; }
.stay-line-main small { display: block; color: #8ba292; margin-top: 4px; font-size: 10px; font-weight: 600; }

/* Guest lookup remains in the reservation form and does not obscure the board. */
.guest-search-wrap { position: relative; }
.guest-suggestions { position: relative; margin: 5px 0 0; padding: 4px; border: 1px solid #dce6de; border-radius: 10px; background: #fff; box-shadow: 0 5px 19px #183c2912; }
.guest-suggestions button { display: block; width: 100%; text-align: left; padding: 10px; border-radius: 7px; }
.guest-suggestions button:hover { background: #edf6ed; }
.guest-suggestions strong { display: block; font-size: 11px; color: #3f684a; }
.guest-suggestions small { display: block; margin-top: 3px; color: #98aa9d; font-size: 10px; }
.guest-link { display: inline-flex; align-items: center; gap: 6px; background: var(--theme-soft); border: 1px solid var(--theme-line); color: var(--theme-dark); font-size: 11px; font-weight: 750; padding: 8px 10px; border-radius: 8px; margin: 0 0 16px; }
.guest-hint { display: block; font-size: 10px; margin-top: 7px; color: #839a88; }
.guest-hint.is-match { color: #237448; }
.guest-note { width: 100%; border: 1px solid #dce6de; border-radius: 9px; resize: vertical; min-height: 85px; padding: 10px; font-size: 12px; color: #29492e; }
.guest-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin: 10px 0 18px; }
.guest-notes-view { color: #526e59; background: #f7faf7; border: 1px solid #e3ece3; padding: 13px; border-radius: 10px; white-space: pre-wrap; line-height: 1.6; font-size: 12px; }
.guest-stat { padding: 13px; border: 1px solid #e1ebe2; border-radius: 10px; background: #f8fbf8; }
.guest-stat strong { display: block; font-size: 17px; color: #356f4c; }
.guest-stat small { display: block; margin-top: 4px; font-size: 10px; color: #819788; }
.summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 18px; }
.summary-tile { padding: 13px; border: 1px solid #e0e9e0; border-radius: 10px; background: #fbfdfb; }
.summary-tile b { display: block; font-size: 17px; color: #316849; }
.summary-tile span { display: block; font-size: 10px; color: #91a397; margin-top: 4px; }
.thin-divider { height: 1px; margin: 13px 0; background: var(--line); }

@media (max-width: 570px) {
  .sidebar-toggle { width: 29px; flex-basis: 29px; height: 31px; margin-left: -4px; }
  .sidebar-toggle svg { width: 18px; height: 18px; }
  .selection-actions { bottom: calc(13px + var(--safe-bottom)); border-radius: 13px; padding: 11px; min-height: 65px; gap: 8px; display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .range-buttons { grid-row: 2; grid-column: 1 / -1; max-width: none; }
  .selection-actions-buttons { grid-row: 1; grid-column: 2; }
  .selection-actions-summary strong { font-size: 11px; }
  .selection-actions-summary span { font-size: 9px; }
  .selection-actions-buttons { gap: 5px; }
  .selection-actions-buttons button { min-width: 0; padding: 0 9px; height: 35px; font-size: 10px; }
  .selection-actions-buttons .selection-discard { width: 28px; min-width: 28px; }
}

@media (max-width: 370px) {
  .brand-name { display: none; }
  .brand { flex-basis: 28px; }
}

@media screen {
  #printCanvas { display: none !important; }
}
@media print {
  @page { margin: 15mm; size: A4; }
  html, body { height: auto !important; overflow: visible !important; background: #fff !important; color: #101b15; }
  #app { display: none !important; }
  #printCanvas:not([hidden]) { display: block !important; }
  .print-document { font-family: Arial, sans-serif; width: 100%; padding: 0; color: #1b2520; font-size: 10pt; line-height: 1.55; }
  .print-document h1 { font-size: 19pt; text-align: center; margin: 10mm 0 3mm; }
  .print-document h2 { font-size: 12pt; margin: 8mm 0 4mm; }
  .print-document p { margin: 5mm 0; }
  .printed-warning { color: #82510b; border: 1px solid #ac853f; padding: 3mm 4mm; font-size: 8pt; }
  .printed-sub { text-align: center; color: #566b5b; }
  .printed-field, .printed-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 5mm; border-bottom: 1px solid #d8e0d9; padding: 3mm 0; page-break-inside: avoid; }
  .printed-field > span, .printed-row > span:first-child { color: #5b7162; min-width: 33%; }
  .printed-field > strong, .printed-row > span:last-child { flex: 1; text-align: right; overflow-wrap: anywhere; }
  .printed-companion { padding: 3mm 0; border-bottom: 1px solid #e0e7e1; }
  .printed-table { border-collapse: collapse; width: 100%; margin: 8mm 0; font-size: 9pt; }
  .printed-table th, .printed-table td { border: 1px solid #cbd7ce; padding: 2.8mm 2mm; text-align: left; vertical-align: top; }
  .printed-table th { background: #edf3ee; font-size: 8.5pt; }
  .printed-table td > div { color: #627566; font-size: 8pt; }
  .printed-sign { margin-top: 14mm !important; }
  .printed-footer { margin-top: 16mm !important; font-size: 8pt; color: #89988d; }
}

/* The calendar keeps a single control bar in normal and full-screen views. */
.app { position: relative; overflow:clip; }
.app .topbar .sidebar-toggle { margin-inline-start:0; }
.app .topbar, .app.focus .topbar {
  display: flex; flex: 0 0 43px; height: 43px; gap: 7px; padding: 0 10px;
}
.topbar .brand { display: flex; flex: 0 0 auto; gap: 5px; }
.topbar .brand-mark { width: 26px; height: 26px; }
.topbar .brand-name { font-size: 15px; }
.topbar .mode-switch { flex: none; }
.topbar .mode-button { min-height: 33px; padding-inline: 8px; }
.topbar .date-navigation { flex: 1 1 auto; min-width:0; }
.topbar .period-button { min-width:0; max-width:100%; overflow:hidden; }
@media (pointer:coarse) {
  .topbar .date-arrow { display:none; }
  .topbar .period-button { display:block; text-overflow:ellipsis; }
  .topbar .period-button svg { display:none; }
}
.topbar .header-actions { gap: 4px; flex: none; }
.topbar .header-actions > button { flex: none; }
#boardSyncButton { display: grid; place-items: center; border-radius: 8px; width: 32px; min-height: 34px; color: #266b46; background: #ecf5ee; }
#boardSyncButton span { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
#boardSyncButton[data-sync="retry"] { color: #873c27; background: #f8e9df; }
#zoomToggle,.menu-focus,#exitFocus { display: none; }
.app.focus #focusButton { display: none; }
.app.focus #exitFocus { display: inline-flex; }
#newBookingButton {
  position: absolute; z-index: 5; inset-inline-end: 13px; bottom: calc(42px + var(--safe-bottom,0px));
  width: 45px; height: 45px; padding: 0; display: grid; place-items: center; border-radius: 50%;
  box-shadow: 0 2px 9px #183b3833;
}
#newBookingButton span { display: none; }
.app.focus #newBookingButton { bottom: calc(12px + var(--safe-bottom,0px)); }
.app:has(#selectionActions:not([hidden])) #newBookingButton { display: none; }
.board-team-button { position:absolute; z-index:5; inset-inline-end:65px; bottom:calc(42px + var(--safe-bottom,0px));
  width:45px; height:45px; border-radius:50%; background:var(--theme-soft); color:var(--theme-dark);
  border:1px solid var(--theme-edge); box-shadow:var(--control-depth); }
.app.focus .board-team-button { bottom:calc(12px + var(--safe-bottom,0px)); }
.app:has(#selectionActions:not([hidden])) .board-team-button { display:none; }
#boardTeamDialog { width:min(640px,calc(100% - 20px)); height:min(700px,calc(100dvh - 20px));
  padding:0; border:1px solid var(--theme-edge); border-radius:14px; overflow:hidden; background:var(--theme-page); color:var(--theme-ink); }
#boardTeamDialog[open] { display:flex; flex-direction:column; }
#boardTeamDialog > header { display:flex; align-items:center; justify-content:space-between; padding:8px 12px;
  border-bottom:1px solid var(--theme-line); background:var(--theme-subtle); }
#boardTeamDialog h2 { margin:0; font-size:18px; }
#boardTeamDialog > iframe { border:0; flex:1; min-height:0; width:100%; }
#boardTeamDialog::backdrop { background:#18263a66; }
#relocationForm { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
#relocationForm > :nth-child(n+3) { grid-column:1/-1; }
.desk-workspace-overlay .sheet-body { background:var(--theme-page); }
.matrix-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:4px 10px; }
#bookingMatrixPane [data-matrix-hint]:empty { display:none; }
.booking-card-overlay #bookingMatrixPane .card-booking-matrix-scroll { max-height:calc(100dvh - 195px); min-height:115px; }
@media (prefers-reduced-motion:no-preference) {
  #boardTeamDialog[open] { animation:team-window-in .17s ease-out; }
  @keyframes team-window-in { from { opacity:0; transform:translateY(8px); } }
}
@media (prefers-reduced-motion:reduce) {
  .sheet,.sidebar { animation:none; }
}
.board-messages { position: absolute; z-index: 7; top: 49px; left: 8px; right: auto; max-width: min(430px,calc(100% - 16px)); border: 1px solid var(--line); border-radius: 9px; box-shadow: 0 3px 9px #183b3820; }
@media(max-width:740px) {
  .app .topbar,.app.focus .topbar { gap: 4px; padding: 0 5px; }
  .topbar .brand-mark,.topbar .date-arrow,.topbar .today-button span { display: none; }
  .topbar .today-button { display:inline-flex; align-items:center; justify-content:center; flex:0 0 32px; width:32px; min-height:32px; padding:0; }
  .topbar .today-button svg { display:block; width:17px; height:17px; }
  .topbar .brand-name { font-size: 12px; }
  .topbar .mode-button { padding-inline: 5px; }
  .topbar .mode-button svg { display: block; width: 16px; height: 16px; }
  .topbar .mode-button span { position: absolute; clip-path: inset(50%); width: 1px; height: 1px; overflow: hidden; }
  .topbar .period-button { font-size: 11px; padding-inline: 2px; }
  .topbar .header-actions { gap: 2px; }
  .topbar .header-actions > button,.topbar .sidebar-toggle { width: 28px; min-height: 34px; }
  .topbar #zoomToggle { display: inline-flex; width: 43px; font-size: 11px; }
  .topbar #zoomOptions { display: none; }
  .app.zoom-open #zoomOptions {
    position: absolute; display: flex; inset-inline-end: 34px; top: 48px; z-index: 12;
    background: white; box-shadow: 0 2px 10px #183b3833;
  }
}
@media(max-width:400px) {
  .topbar #focusButton,.app.focus .topbar #exitFocus { display: none; }
  .menu-focus { display: flex; }
}
@media print { #newBookingButton { display: none; } }

.booking-flag,.birthday-flag {padding:7px 10px;margin:6px 0;border-radius:8px;background:#edf5ed;color:#2b5038}
.birthday-flag {background:#fff0c6;color:#6b460d;font-weight:750}
.stay-state { display: inline-block; margin: 0 6px 8px 0; padding: 6px 9px; border-radius: 7px; font-size: 12px; font-weight: 750; }
.stay-state.is-ready { background: #deefdf; color: #235e35; }
.stay-state.needs-work { background: #fff0cd; color: #784f15; }
.stay-state.is-staying { background: #e3eef6; color: #2d5874; }
.stay-state.is-ended,.detail-pill.status-checked_out { background: #edf0ed; color: #435c48; }

.board-messages { inset-inline-start: auto; inset-inline-end: 8px; pointer-events: none; }
.draft-shortcut { position: absolute; z-index: 5; inset-inline-start: 9px; bottom: calc(42px + var(--safe-bottom,0px));
 max-width: calc(100% - 76px); padding: 6px 9px; min-height: 32px; border-radius: 8px;
 background: #eaf3ea; color: #235b3b; font-size: 11px; font-weight: 750; box-shadow: 0 1px 5px #183b3826; }
.app.focus .draft-shortcut { bottom: calc(12px + var(--safe-bottom,0px)); }
.app:has(#selectionActions:not([hidden])) .draft-shortcut { bottom: calc(104px + var(--safe-bottom,0px)); }
@media print { .draft-shortcut { display: none; } }

.day-head { touch-action: pan-y; user-select: none; -webkit-touch-callout: none; }
.day-head:focus-visible { outline-offset: -2px; }
.day-head.is-guide-day { background: #f3d8e6; }
.day-head.is-guide-edge { background: #efb8d2; box-shadow: inset 0 -3px #a84975; }
.date-guide-band { position: absolute; inset-block: 0; pointer-events: none; background: #d76a9a14; border-inline: 1px solid #bd588080; }
.zoom-tiny .corner, .zoom-tiny .room-label { --capacity-width: 24px; gap: 2px; }
.zoom-tiny .corner { padding: 0 3px; }
.zoom-tiny .corner span { font-size: 9px; }
.zoom-tiny .room-identity { padding-left: 3px; }
.zoom-small .day-head { padding-bottom: 3px; gap: 1px; }
.zoom-small .day-head .month-head { top: 1px; padding: 0 2px; }
.zoom-ultra .corner, .zoom-ultra .room-label { --capacity-width: 21px; }
.zoom-ultra .corner button svg { display: none; }
@media (min-width: 921px), (pointer: fine) and (min-width: 571px) {
  .topbar #focusButton, .app.focus .topbar #exitFocus, .menu-focus { display: none; }
}
.today-load-status { margin: 0; color: #52685c; font-size: 12px; }
.today-load-status:empty { display: none; }
.registry-row[class*="status-"] { background:var(--theme-surface,#fff); border-inline-start: 4px solid var(--book-border,#cdd7ce); }
.registry-row .item-primary { color:var(--theme-ink); }
.registry-row :is(.registry-status,.item-secondary,.registry-stays) { color:var(--theme-muted); }
.registry-row .registry-status { background:var(--theme-subtle); }
#organizationBack { display:none; }
.organization-tabs { display:flex; flex-wrap:wrap; gap:5px; padding-bottom:9px; border-bottom:1px solid var(--theme-line); }
.organization-tabs [aria-pressed="true"] { background:var(--theme-soft); border-color:var(--theme-edge); color:var(--theme-dark); }
#organizationPanel,#staffEditors { margin-top:9px; }
.organization-logo { display:flex; align-items:center; min-width:0; gap:10px; margin:0 0 12px; }
.organization-logo img { flex:none; width:62px; height:62px; object-fit:contain; border:1px solid var(--theme-edge); border-radius:10px; background:#fff; }
.organization-logo > div { min-width:0; }
.organization-logo-control { flex:1; }
.organization-logo-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.organization-logo-actions input[type=file] { width:auto; min-width:0; max-width:100%; height:auto; padding:0; border:0; background:transparent; color:var(--theme-muted); font:inherit; font-size:13px; }
.organization-logo-actions input::file-selector-button { cursor:pointer; margin-inline-end:8px; padding:7px 10px;
  font:inherit; font-weight:700; color:var(--theme-dark); background:var(--theme-subtle); border:1px solid var(--theme-edge);
  border-radius:var(--compact-control-radius); box-shadow:var(--control-highlight),var(--control-depth); }
.organization-logo-actions input::file-selector-button:hover { background:var(--theme-soft); }
.organization-logo-control small { color:var(--theme-muted); }
.organization-logo .field { margin:0 0 4px; }
.organization-fields,.organization-readonly { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 12px; }
.organization-fields label { margin:0; min-width:0; }
.organization-readonly { margin-block:10px 0; }
.organization-readonly div { border-top:1px solid var(--theme-line); padding:6px 0; }
.organization-readonly dt { color:var(--theme-muted); font-size:12px; }
.organization-readonly dd { margin:1px 0 0; overflow-wrap:anywhere; }
#organizationFeedback { margin:8px 0 0; }
#organizationFeedback:empty { display:none; }
@media(max-width:560px) {
  .organization-fields,.organization-readonly { grid-template-columns:minmax(0,1fr); }
  .organization-tabs button { white-space:nowrap; min-height:40px; }
}
#stockCatalogPanel, #stockServices, #stockMovementPanel, #stockNormDetails, #groupStockPanel { border: 1px solid var(--line); border-radius: 9px; padding: 9px 12px; background: #fafcfb; }
:is(#stockCatalogPanel,#stockServices,#stockMovementPanel,#stockNormDetails,#groupStockPanel) > summary { font-size: 14px; line-height: 1.4; }
:is(#stockCatalogPanel,#stockServices,#stockMovementPanel,#stockNormDetails,#groupStockPanel) .field label { font-size: 12px; }
.booking-history > summary { padding: 10px 2px; font-weight: 750; cursor: pointer; }
.booking-history .lifecycle-entry, .booking-timeline li { padding: 9px 10px; background: #f7faf7; border: 1px solid #e5ece6; border-radius: 8px; overflow-wrap: anywhere; }
.booking-timeline { list-style: none; padding: 0; display: grid; gap: 6px; }
.booking-timeline time { display: block; color: #52685c; font-size: 12px; }
#bookingLifecycle :is(.button-save,.button-soft,.button-danger), .booking-links button { font-size: 13px; min-height: 36px; padding-block: 6px; }
.printed-companion { break-inside: avoid; }
.palette-fields { display: grid; grid-template-columns: repeat(auto-fit,minmax(136px,1fr)); gap: 8px; }
.palette-fields .field { margin: 0; }
.palette-fields input[type=color] { min-height: 34px; width: 100%; padding: 4px; cursor: pointer; }

.booking-start-note { margin: 0 0 12px; padding: 9px 11px; background: #f1f6f2; border-radius: 8px; color: #3e5849; font-size: 13px; }
.group-arrival-room { border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin-block: 9px; }
.group-arrival-room fieldset[data-arrival-fields] { min-width: 0; border: 0; padding: 0; margin: 0; }
#groupArrival { margin-top: 8px; }


.zoom-ultra .room-identity { gap: 0; }
.zoom-ultra .room-label :is(.room-name,.room-sub) { flex-shrink: 0; }
.zoom-ultra .room-label .room-name { font-size: 8.4px; }
.zoom-ultra .room-label .room-sub { font-size: 7.5px; }

.print-actions button:last-child:nth-child(odd) { grid-column: 1 / -1; }

.estimate-block { border:1px solid var(--line); border-radius:12px; padding:9px 12px; background:#fafcfb; }
.estimate-rows { margin:0 0 8px; }
.estimate-rows > div, .estimate-line { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:baseline; gap:7px 12px; padding:7px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.estimate-rows dt, .estimate-line small { color:#435a4b; font-size:12px; }
.estimate-rows dd { margin:0; font-weight:750; }
.estimate-rows dd, .estimate-line > b { white-space:nowrap; font-variant-numeric:tabular-nums; }
.estimate-rows .estimate-total { font-weight:800; color:#1e5536; }
.estimate-lines > summary, .estimate-service-head { padding:9px 0 4px; font-size:13px; font-weight:750; }
.estimate-lines > summary { cursor:pointer; }
.estimate-line small { display:block; margin-top:3px; }
.booking-resources { display:grid; gap:6px; margin-block:12px; }
.booking-resources .item-list-button { text-align:start; }
.document-library { display:grid; gap:6px; margin-block:8px; }
.document-library .item-list-button, .document-actions a, .lifecycle-entry > a { color:var(--accent-dark); text-decoration:none; }
.document-library a:hover { background: #eef6f0; border-color: #c8ddcd; }
.document-actions a:hover, .lifecycle-entry > a:hover { color: var(--accent); text-decoration: none; }
.document-library .item-tag { font-size:11px; white-space:nowrap; }
.document-library .item-primary { overflow-wrap:anywhere; }
@media(max-width:570px) {
  #todayLists .registry-row { grid-template-columns:minmax(0,1fr); }
  #todayLists .registry-status { justify-self:start; padding:0; }
}

.booking-shortcuts { display:flex; gap:4px 9px; flex-wrap:wrap; }
.booking-shortcuts .guest-link { min-height:32px; padding:4px 6px; }

.booking-guidance { background:#fffbef; border:1px solid #e9d9a7; border-radius:10px; }
.booking-guidance button { background:linear-gradient(115deg,#f7df9f,#fff0c5); border:1px solid #d7b462; color:#4b3615; box-shadow:0 2px 6px #976a181c; }
.booking-guidance button:hover { background:#f2d88f; }

.template-field-row { display:grid; gap:3px; border-top:1px solid var(--line); padding:7px 0; }
.template-field-row code { user-select:all; overflow-wrap:anywhere; color:#27593e; }

.stock-table-scroll { overflow:auto; margin-top:8px; }
.stock-table { border-collapse:collapse; width:100%; min-width:530px; font-size:12px; text-align:start; }
.stock-table :is(th,td) { padding:7px 6px; border-bottom:1px solid var(--line); vertical-align:top; overflow-wrap:anywhere; }
.stock-table th { background:#f1f7f3; text-align:start; }

#documentsBack { position:sticky; top:0; z-index:2; background:#f3f8f4; border-radius:7px; padding-inline:8px; }

.booking-resource-bar,.booking-row-actions { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.booking-resource-bar { margin:8px 0 12px; }
.booking-resource-bar :is(.button-soft,.button-save),.booking-row-actions button,.booking-table-action {
  min-height:34px; padding:6px 10px; font-size:12px; border-radius:7px;
}
.booking-table { display:grid; border:1px solid var(--line); border-radius:10px; background:#fafcfb; }
.booking-table-row { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:8px 12px;
  padding:8px 10px; color:inherit; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.booking-table-row:last-child { border-bottom:0; }
.booking-table-row > span { min-width:0; text-align:start; }
.booking-table-row small { display:block; color:#4c6456; font-size:12px; line-height:1.4; margin-top:3px; }
.booking-table-action { display:inline-flex; align-items:center; border:1px solid #d4e4da; color:#214d34;
  text-decoration:none; background:#eff6f1; white-space:nowrap; }
.booking-table-action:hover { background:#e5f0e8; }
.booking-table-row .booking-row-actions { justify-content:flex-end; }
.booking-work-head { color:#385b46; background:#f1f7f3; font-size:12px; font-weight:750;
  padding:7px 10px; border-bottom:1px solid var(--line); border-radius:10px 10px 0 0; }
.booking-table .lifecycle-entry { margin:0; border:0; border-bottom:1px solid var(--line); border-radius:0; }
.booking-table .lifecycle-entry:last-child { border-bottom:0; }
.booking-table .lifecycle-entry.booking-table-row { display:grid; grid-template-columns:minmax(0,1fr) auto; }
.booking-table .lifecycle-entry .booking-row-actions button { grid-column:auto; }
.booking-table button.booking-table-row { width:100%; background:none; border-radius:0; text-align:start; }
.booking-table button.booking-table-row:hover { background:#eef6f0; }
.booking-case-note,.guest-case-text { display:block; white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.45; }
.booking-work-group { margin-block:10px; }
@media(max-width:460px) {
  .booking-table-row:has(.booking-row-actions),.booking-table .lifecycle-entry.booking-table-row:has(.booking-row-actions) {
    grid-template-columns:minmax(0,1fr);
  }
  .booking-table-row .booking-row-actions { justify-content:flex-start; }
}

.booking-table-row > span > a { color:var(--accent-dark); text-decoration:none; }
.booking-table-row > span > a:hover { color:var(--accent); }

.sheet-head-actions { display:flex; gap:6px; flex:none; }
.sheet-head-actions .sheet-close { flex:0 0 34px; }
#sheetBack { flex-basis:auto; width:auto; padding:0 7px; font-size:12px; white-space:nowrap; color:var(--accent-dark); }
#editPet { min-height:28px; padding:2px 5px; font-size:11px; }
.booking-guidance { background:#fff7e0; border-color:#d7b462; }

.stock-journal-table td { vertical-align:top; white-space:normal; }
.stock-journal-table table { min-width:590px; }

.booking-footer { margin-top:12px; }

[data-arrival-digital],[data-arrival-paper],[data-arrival-fields] { border:0; padding:0; margin:0; min-width:0; }
.stock-balances-table { min-width:420px; }
.stock-balances-table button { padding:4px 8px; min-height:34px; }


/* On a phone at 25–39% the grid is an overview of occupied dates. */
.board-overview .board { grid-template-columns:clamp(100px,26vw,112px) minmax(0,1fr); grid-template-rows:22px minmax(0,1fr); }
.board-overview .topbar .period-button { font-size:11px; }
.board-overview .corner,.board-overview .room-label { grid-template-columns:minmax(0,1fr) 21px; gap:2px; padding-inline-end:2px; }
.board-overview .corner .capacity-heading,.board-overview .room-capacity { font-size:9px; letter-spacing:-.02em; }
.board-overview .corner button { min-height:20px; }
.board-overview :is(.room-sub,.room-separator,.month-head,.weekday) { display:none; }
.board-overview .room-identity { border-inline-start-width:3px; padding-inline-start:4px; }
.board-overview .room-label .room-name { font-size:10px; line-height:11.5px; -webkit-line-clamp:2; overflow-wrap:normal; }
.board-overview .room-name :is(.room-location,.room-unit) { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.board-overview .room-location { color:#4b6153; font-weight:650; }
.board-overview .day-head { justify-content:center; gap:0; padding:0; border-inline-end-color:#edf1ed; }
.board-overview .day-head .day-num { font-size:9px; letter-spacing:-.025em; }
.board-overview .day-head.is-today .day-num { width:auto; height:auto; background:none; color:var(--accent-dark); font-weight:850; }
.board-overview .day-head.is-month-start { box-shadow:inset 1px 0 #78a58a; }
.board-overview .day-head.is-guide-edge { box-shadow:inset 0 -2px #a84975; }
.board-overview .grid-world { background-image:linear-gradient(to right,#eff2ef 1px,transparent 1px),linear-gradient(to bottom,#e7ede8 1px,transparent 1px); }
.board-overview .day-shade:not(.is-today) { background:#263e2d04; }
.board-overview .booking-bar { box-shadow:none; border-radius:3px; }
.board-overview .booking-bar > :not(.booking-name) { display:none; }
.booking-bar.is-overview {
  display:flex; align-items:center; justify-content:flex-start; padding:0 2px;
  border:0; box-shadow:inset 0 0 0 1px var(--book-border);
}
.booking-bar.is-overview .booking-name { display:block; max-width:100%; text-overflow:clip; }
.grid-viewport.is-pinching .booking-bar > span { visibility:hidden; }

.sheet-head[data-kind="guest"] { align-items:flex-start; }
.sheet-head[data-kind="guest"] h2 { color:#39423e; overflow-wrap:normal; word-break:normal; text-wrap:balance; }
.guest-card-actions { display:grid; gap:6px; }
.guest-card-actions { grid-template-columns:repeat(3,minmax(0,1fr)); margin-block:12px; }
.guest-card-actions button { background:#f2f4f3; color:#39423e; min-height:36px; border:1px solid #e0e4e1; border-radius:8px; padding:6px 8px; font-size:12px; }
#guestProfile #editGuest { background:#f2f4f3; color:#39423e; border:1px solid #e0e4e1; }
#guestProfile .guest-stat { background:#f6f7f6; border-color:#e5e8e5; }
#guestProfile .guest-stat :is(strong,small) { color:#4a5550; }
.today-toolbar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin:0 0 10px; }
.today-toolbar :is(.today-period,.today-navigation) { display:flex; gap:3px; margin:0; }
.today-toolbar button { min-height:32px; padding:4px 9px; font-size:12px; white-space:nowrap; }
.today-toolbar .today-navigation button[aria-label] { font-size:17px; }
.today-period button[aria-pressed="true"] { background:#e2edfc; color:var(--theme-dark); border-color:#a7c0e5; }
.today-load-status:empty { display:none; }
.today-columns { display:grid; grid-template-columns:repeat(3,minmax(142px,1fr)); gap:8px; overflow-x:auto; align-items:start; padding-bottom:3px; }
.today-column { min-width:0; border:1px solid var(--theme-line); border-radius:9px; background:#fff; }
.today-column h3 { display:flex; justify-content:space-between; align-items:center; gap:3px; margin:0; padding:6px 8px; font-size:13px; white-space:nowrap; color:var(--theme-ink); background:var(--theme-soft); border-radius:8px 8px 0 0; }
.today-column h3 span { font-variant-numeric:tabular-nums; }
.today-entries > p { margin:8px; }
.desk-workspace-overlay .today-entry { display:grid; gap:2px; width:100%; border:0; border-top:1px solid #e3eaf3; border-radius:0; padding:6px 8px; text-align:left; min-height:0; }
.today-entry .item-primary { font-size:13px; overflow-wrap:normal; }
.today-entry .item-secondary,.today-entry-detail { font-size:11px; color:#42536b; }
@media(max-width:400px) {
  .today-toolbar button { padding-inline:6px; }
  .today-columns { gap:5px; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .today-column h3 { font-size:11px; padding-inline:4px; }
}
.today-columns.has-cleaning { grid-template-columns:repeat(4,minmax(0,1fr)); }
.today-columns.simple-desk-columns { grid-template-columns:repeat(5,minmax(0,1fr)); }
.simple-desk-columns .today-column h3 { white-space:normal; }
.simple-desk-columns .today-entry:is(.status-occupied,.status-confirmed) .item-primary { color:var(--theme-ink); }
.simple-desk-columns .status-checked_out { background:#f0f2f5; border-color:#d5dae2; color:#475365; }
.simple-desk-columns [data-today-column="payment"] h3 { background:#fff2ca; color:#725000; }
@media (max-width:740px) {
  .today-columns.simple-desk-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .simple-desk-columns .today-entries { max-height:24dvh; overflow:auto; }
}
.has-cleaning .today-column h3 { white-space:normal; }
.has-cleaning .today-entry .item-primary { overflow-wrap:anywhere; }
.today-cleaning-entry .item-primary { color:var(--theme-ink); font-weight:750; }
.today-cleaning-entry [data-cleaning-state] { font-weight:650; }
.today-cleaning-entry [data-cleaning-state="ready"] { color:var(--theme-dark); }
.today-cleaning-entry [data-today-ready] { justify-self:start; min-height:36px; margin-top:3px; padding:4px 8px;
  font-size:12px; white-space:nowrap; }
@media(max-width:600px) {
  .today-columns.has-cleaning { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .today-cleaning-entry [data-today-ready] { min-height:44px; }
}

.booking-stay-row { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:4px 6px 6px; border:1px solid var(--line); border-radius:9px; }
.booking-stay-row .item-list-button { flex:1 0 100%; border:0; }
.booking-stay-row > :is(.button-save,.button-soft),.group-arrival-shortcut { min-height:32px; padding:5px 9px; font-size:12px; }
.booking-footer #bookingDocuments { min-height:36px; }

.booking-fact-action { display:block; padding:2px 0; text-align:start; }
.booking-file { display:flex; align-items:center; gap:6px 12px; padding:7px 2px; border-bottom:1px solid var(--line); font-size:13px; }
.booking-file strong { flex:1; min-width:0; overflow-wrap:anywhere; font-weight:650; }
.booking-file a { color:var(--accent-dark); padding:5px 2px; }
#bookingInlineNotices .booking-table-row { padding:6px 4px; }
#bookingInlineNotices .booking-table-action { border:0; background:transparent; min-height:30px; text-decoration:underline; }


/* Карточка брони. Шахматка и другие окна используют свои прежние стили. */
.booking-card-overlay {
  align-items:center;
  justify-content:center;
  padding:20px;
  background:#192f4460;
}
:is(.booking-card-overlay .sheet,.booking-board-confirm) {
  --card-ink:var(--theme-ink);
  --card-muted:var(--theme-muted);
  --card-line:var(--theme-line);
  --card-accent:var(--theme-accent);
  --card-accent-line:var(--theme-edge);
  --card-soft:var(--theme-soft);
  --card-subtle:var(--theme-subtle);
  width:min(1220px,100%);
  height:min(930px,100%);
  max-height:100%;
  border-radius:13px;
  overflow:hidden;
  background:var(--theme-page);
  color:var(--card-ink);
  font:15px/1.48 "Segoe UI",system-ui,-apple-system,sans-serif;
  animation:none;
}
.booking-card-overlay .sheet-handle { display:none; }
.booking-next-action { min-height:34px; }
.folded-booking { position:fixed; z-index:29; inset-inline-end:12px; bottom:calc(96px + var(--safe-bottom));
  width:min(300px,calc(100vw - 24px)); color:var(--theme-ink); }
.app:has(#selectionActions:not([hidden])) .folded-booking { bottom:calc(106px + var(--safe-bottom)); }
.folded-booking ul { display:grid; gap:5px; margin:0; padding:4px; list-style:none; overflow:auto; max-height:min(38dvh,245px); }
.booking-dock-row { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) auto;
  border:1px solid var(--theme-edge); border-radius:10px; background:var(--theme-subtle); box-shadow:0 2px 6px #17294321; }
.booking-dock-row.is-waiting { background:#fff2ca; border-color:#c89c34; color:#5e4100; }
.booking-dock-row.is-waiting small { color:#725000; }
.booking-dock-row button { min-height:44px; padding:6px 10px; color:inherit; text-align:start; }
.booking-dock-row [data-booking-dock-restore] { min-width:0; font-size:13px; font-weight:700; }
.booking-dock-row [data-booking-dock-restore] span { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.booking-dock-row small { color:var(--theme-muted); font-size:11px; font-weight:600; }
.booking-dock-row [data-booking-dock-close] { min-width:44px; text-align:center; font-size:18px; border-inline-start:1px solid var(--theme-line); }
.is-hold-button { position:relative; touch-action:manipulation; user-select:none; -webkit-touch-callout:none; }
.is-hold-button.is-holding { outline:2px solid var(--theme-edge); outline-offset:2px; }
.is-hold-button.is-holding::after { content:""; position:absolute; inset-inline-end:-6px; top:50%; width:16px; height:16px;
  border-radius:50%; pointer-events:none; background:conic-gradient(var(--theme-accent) var(--desk-hold-angle),#dce5f3 0);
  mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 0); transform:translateY(-50%);
  animation:desk-hold-fill 1s linear forwards; }
@property --desk-hold-angle { syntax:"<angle>"; inherits:false; initial-value:0deg; }
@keyframes desk-hold-fill { from { --desk-hold-angle:0deg; } to { --desk-hold-angle:360deg; } }
@media (prefers-reduced-motion:reduce) {
  .is-hold-button.is-holding::after { animation:none; --desk-hold-angle:360deg; }
}
.booking-desk-arrival-rows { display:grid; gap:5px; margin:8px 0; }
.booking-desk-arrival-row { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; padding:7px 9px;
  border:1px solid var(--card-line,var(--theme-line)); border-radius:7px; }
.booking-desk-arrival-row > strong { flex:1 1 170px; }
.booking-desk-arrival-row .field { display:flex; align-items:center; gap:5px; margin:0; }
.booking-desk-arrival-row .field input { width:4.5em; min-height:32px; }
@media(prefers-reduced-motion:no-preference) {
  .booking-card-overlay.booking-detail-sheet .sheet { animation: booking-card-fade .12s ease-out both; }
  .booking-card-overlay.booking-detail-sheet { animation: booking-backdrop-appear .16s ease-out both; }
  .folded-booking { animation:booking-sheet-appear .16s ease-out both; }
  @keyframes booking-sheet-appear { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
  @keyframes booking-card-fade { from { opacity:.85; } to { opacity:1; } }
  @keyframes booking-backdrop-appear { from { background-color:transparent; } }
}
.booking-card-overlay .sheet-head { padding:14px clamp(13px,2.1vw,24px); background:#fff; border-color:var(--card-line); }
.booking-card-overlay .sheet-head h2 { font:700 clamp(20px,2.5vw,29px)/1.18 "Segoe UI",system-ui,sans-serif; color:var(--card-ink); }
.booking-card-overlay .sheet-eyebrow,.booking-card-overlay .guest-link { color:var(--card-accent); }
.booking-card-overlay .sheet-close { color:var(--card-accent); background:var(--card-soft); }
.booking-card-overlay .sheet-body { padding:14px clamp(12px,2.1vw,25px) 28px; overflow-x:hidden; }
.booking-card-overlay .sheet-body [hidden] { display:none!important; }
.booking-card-overlay .booking-status-line { margin-bottom:10px; }
.booking-card-overlay .card-booking-tabs { display:flex; border-bottom:1px solid var(--card-line); margin:0 0 14px; }
.booking-card-overlay .card-booking-tabs button {
  padding:9px 16px; min-height:42px; border:0; border-bottom:3px solid transparent;
  background:transparent; color:var(--card-muted); font-size:14px; font-weight:600;
}
.booking-card-overlay .card-booking-tabs [aria-pressed=true] { border-bottom-color:var(--card-accent); color:var(--card-accent); }
.booking-card-overlay :is(.card-booking-stack,.card-booking-shared) { display:grid; gap:12px; min-width:0; }
.booking-card-overlay .card-booking-shared { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); align-items:start; margin-top:12px; }
.booking-card-overlay .card-booking-surface {
  padding:14px; border:1px solid var(--card-line); border-radius:12px; background:white; min-width:0;
}
.booking-card-overlay .card-booking-surface h3 { font-size:17px; line-height:1.3; margin:0 0 8px; color:var(--card-ink); }
.booking-card-overlay .card-booking-surface h4 { margin:0; font-size:15px; color:var(--card-ink); }
.booking-card-overlay :is(.detail-caption,.small-note,.item-secondary) { font-size:13px; color:var(--card-muted); }
.booking-card-overlay .booking-facts { grid-template-columns:repeat(auto-fit,minmax(126px,1fr)); margin:0; }
.booking-card-overlay :is(.button-save,.booking-next button) { background:var(--card-accent); color:#fff; }
.booking-card-overlay .button-save:hover { background:var(--theme-dark); }
.booking-card-overlay .button-soft { background:var(--card-soft); color:var(--card-accent); }
.booking-card-overlay .booking-next { background:var(--card-soft); border-color:var(--card-line); margin-bottom:8px; }
.booking-card-overlay .card-booking-more { border-top:1px solid var(--card-line); padding-top:8px; }
.booking-card-overlay :is(.card-booking-more,.card-booking-residents) summary {
  cursor:pointer; color:var(--card-accent); font-size:14px; font-weight:650; padding:7px 0;
}
.booking-card-overlay .booking-work-group { margin:0; }
.booking-card-overlay .group-arrival-room { background:#f7fafc; border-color:var(--card-line); margin-bottom:9px; }
.booking-card-overlay .card-booking-room-head { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; }
.booking-card-overlay .card-booking-room-head .item-tag { white-space:normal; overflow-wrap:anywhere; }
.booking-card-overlay .card-booking-buttons { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.booking-card-overlay .card-booking-figures { display:flex; flex-wrap:wrap; gap:10px 18px; padding-bottom:8px; }
.booking-card-overlay .card-booking-figures span { display:block; font-size:13px; color:var(--card-muted); }
.booking-card-overlay .card-booking-figures strong { font-size:20px; font-variant-numeric:tabular-nums; }
.booking-card-overlay .card-booking-credit strong { color:#1b6956; }
.booking-card-overlay .card-booking-service-action { display:grid; justify-items:end; gap:4px; }
.booking-card-overlay .card-booking-matrix-scroll { overflow-x:auto; margin-top:9px; }
.booking-card-overlay .card-booking-matrix { border-collapse:collapse; min-width:max-content; width:100%; font-size:13px; }
.booking-card-overlay .card-booking-matrix :is(th,td) { border:1px solid var(--card-line); padding:6px 8px; white-space:nowrap; text-align:left; }
.booking-card-overlay .card-booking-matrix th { background:#f1f5f8; }
.booking-card-overlay .card-booking-span { background:var(--card-soft); color:var(--card-accent); }
.booking-card-overlay .card-booking-span button { background:transparent; color:inherit; min-height:34px; }
@media(max-width:760px) {
  .booking-card-overlay { padding:0; }
  .booking-card-overlay .sheet { width:100%; height:100%; max-height:100dvh; border-radius:0; padding-bottom:var(--safe-bottom); }
  .booking-card-overlay .card-booking-shared { grid-template-columns:minmax(0,1fr); }
  .booking-card-overlay .card-booking-tabs button { flex:1; padding-inline:4px; }
}

.booking-card-overlay .card-matrix-residents { max-width:260px; white-space:normal; overflow-wrap:anywhere; color:#45596b; }

/* Карточка брони и форма заявки. */
.request-guest-counts { margin:12px 0; padding:10px; border:1px solid #dce7e0; border-radius:10px; min-width:0; }
.request-guest-counts legend { padding:0 5px; font-weight:650; }
.request-guest-counts .field { display:flex; flex-direction:column; }
.request-guest-counts .field input { margin-top:auto; }
.booking-card-overlay .booking-workspace { margin-top:0; }
.booking-card-overlay .booking-budget-head,
.booking-card-overlay .booking-budget-title { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.booking-card-overlay .booking-budget-head { position:relative; justify-content:space-between; }
.booking-card-overlay .booking-budget-title h3 { margin:0; }
.booking-card-overlay .booking-primary { margin-inline-start:auto; }
.booking-card-overlay .booking-primary .button-save,
.booking-card-overlay #bookingMatrixPane .card-booking-buttons .button-soft {
  min-height:39px; padding:7px 11px; border-radius:9px; font-size:14px; font-weight:650; line-height:1.25;
}
.booking-card-overlay .booking-card-menu-list :is(.guest-link,.button-soft) {
  min-height:35px; padding:5px 8px; border-radius:8px; font-size:13px;
}
.booking-card-overlay .booking-card-menu { position:static; }
.booking-card-overlay .booking-card-menu > summary {
  list-style:none; display:grid; place-items:center; min-width:36px; min-height:36px; border:1px solid var(--card-line);
  border-radius:8px; color:var(--card-accent); cursor:pointer; font-size:20px; line-height:1;
}
.booking-card-overlay .booking-card-menu > summary::-webkit-details-marker { display:none; }
.booking-card-overlay .booking-card-menu-list {
  position:absolute; inset-inline-start:0; top:calc(100% + 5px); z-index:4; width:min(300px,100%);
  max-height:60dvh; overflow:auto; padding:10px; display:grid; gap:9px; background:#fff;
  border:1px solid var(--card-line); border-radius:10px; box-shadow:0 8px 24px #182f4222;
}
.booking-card-overlay .booking-card-menu-list h4 { font-size:13px; margin-bottom:4px; }
.booking-card-overlay .booking-card-menu-list .booking-row-actions { gap:6px; flex-wrap:wrap; }
.booking-card-overlay .booking-card-menu-list .button-soft { padding:5px 7px; }
.booking-card-overlay .booking-name-link { background:none; color:var(--card-accent); padding:0; font-weight:650; text-align:left; }
.booking-card-overlay .booking-name-link:hover { text-decoration:underline; }
.booking-card-overlay .estimate-stay-line { align-items:flex-start; }
.booking-card-overlay .booking-resident-links { display:flex; flex-wrap:wrap; gap:4px 9px; }
.booking-card-overlay .booking-line-paid { background:#edf7e9; }
.booking-card-overlay .booking-line-due { background:#fff7dc; }
.booking-card-overlay .booking-line-paid,
.booking-card-overlay .booking-line-due { border-radius:7px; padding-inline:8px; }
.booking-card-overlay .booking-inline-arrival { border-top:1px solid var(--card-line); padding-top:10px; margin-top:12px; }
.booking-card-overlay .booking-paper-row { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:6px 0; }
.booking-card-overlay .booking-attachment-actions { margin-block:6px; }
.booking-card-overlay .card-booking-matrix-scroll {
  max-height:min(58dvh,490px); overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y;
  --matrix-room-base:145px; --matrix-room-width:calc(var(--matrix-room-base) * var(--matrix-room-scale,1)); --matrix-day-width:80px; --matrix-columns:28;
}
.booking-card-overlay .card-booking-matrix {
  border-collapse:separate; border-spacing:0; table-layout:fixed; min-width:0;
  width:calc(var(--matrix-room-width) + var(--matrix-columns) * var(--matrix-day-width));
}
.booking-card-overlay .matrix-room-column { width:var(--matrix-room-width); }
.booking-card-overlay .matrix-date-column { width:var(--matrix-day-width); }
.booking-card-overlay .card-booking-matrix :is(th,td) { vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
.booking-card-overlay .card-booking-matrix thead th { position:sticky; top:0; z-index:2; padding:5px 3px; text-align:center; font-size:12px; }
.booking-card-overlay .card-booking-matrix tr > th:first-child {
  position:sticky; left:0; z-index:1; padding-inline:8px; text-align:start;
}
.booking-card-overlay .card-booking-matrix thead tr > th:first-child { z-index:3; }
.booking-card-overlay .card-booking-matrix tbody th { font-size:var(--matrix-room-font,13px); }
.booking-card-overlay .card-booking-matrix tbody th small { font-size:clamp(9px,calc(var(--matrix-room-font,13px) - 2px),13px); display:block; color:var(--card-muted); margin-top:4px; }
.booking-card-overlay .card-booking-matrix tbody td { padding:4px; }
.booking-card-overlay .card-booking-matrix td button[data-matrix-cell] {
  width:100%; min-width:0; min-height:clamp(32px,calc(var(--matrix-day-width) * .5),72px);
  color:var(--card-accent); background:transparent; text-align:center;
}
.booking-card-overlay .card-booking-matrix td button[data-matrix-cell]:hover { background:var(--theme-soft); }
.booking-card-overlay .card-booking-matrix td.matrix-free { height:clamp(40px,calc(var(--matrix-day-width) * .5 + 8px),80px); text-align:center; vertical-align:middle; color:var(--card-muted); }
.booking-card-overlay .card-booking-matrix .matrix-busy { background:#edf0f3; color:#505d68; font-size:12px; }
.booking-card-overlay .card-booking-matrix .matrix-turnover {
  background:var(--theme-soft); color:var(--card-ink); text-align:center; font-size:11px; line-height:1.15; font-variant-numeric:tabular-nums;
}
.booking-card-overlay .card-booking-matrix .matrix-turnover button[data-matrix-cell] { padding-inline:0; font-size:inherit; line-height:inherit; }
.booking-card-overlay .card-booking-matrix .matrix-turnover.is-blocked { color:var(--card-muted); background:#edf0f3; }
.booking-card-overlay .card-booking-matrix thead th.matrix-today { background:var(--theme-soft); color:var(--theme-dark); box-shadow:inset 0 -2px var(--theme-accent); }
.booking-card-overlay .matrix-today small { display:block; font-size:10px; }
.booking-card-overlay [data-matrix-compact] .matrix-today small { display:none; }
.booking-card-overlay [data-matrix-compact] .matrix-busy-label { font-size:0; }
.booking-card-overlay [data-matrix-compact] .matrix-busy-label::after { content:"×"; font-size:12px; }
.booking-card-overlay .matrix-today-cell { position:relative; }
.booking-card-overlay .matrix-today-cell::after { content:""; position:absolute; pointer-events:none; inset-block:0;
  inset-inline-start:calc(var(--matrix-day-width) * var(--matrix-today-offset,0));
  width:min(100%,var(--matrix-day-width)); box-shadow:inset 1px 0 var(--theme-edge),inset -1px 0 var(--theme-edge); }
.booking-card-overlay .card-booking-matrix .card-booking-span button { max-width:100%; overflow-wrap:anywhere; white-space:normal; }
.booking-card-overlay .card-matrix-zoom { display:inline-flex; gap:3px; align-items:center; }
.booking-card-overlay #bookingMatrixPane .card-matrix-zoom button { padding-inline:6px; min-width:30px; font-variant-numeric:tabular-nums; }
.booking-card-overlay #bookingMatrixPane .card-matrix-zoom [data-matrix-zoom="0"] { min-width:49px; }
.booking-card-overlay .card-booking-matrix .card-booking-span:is(.status-pending,.status-pending_payment) { background:var(--pending-bg); color:var(--pending-fg); }
.booking-card-overlay .card-booking-matrix .card-booking-span.status-hold { background:var(--hold-bg); color:var(--hold-fg); }
.booking-card-overlay .card-booking-matrix .card-booking-span.status-confirmed { background:var(--confirmed-bg); color:var(--confirmed-fg); }
.booking-card-overlay .card-booking-matrix .card-booking-span.status-occupied { background:var(--occupied-bg); color:var(--occupied-fg); }
.booking-card-overlay .card-booking-matrix .card-booking-span.status-checked_out { background:var(--checked-out-bg,#edf0ed); color:var(--checked-out-fg,#435c48); }
.booking-card-overlay .card-booking-matrix .card-booking-span :is(.matrix-move,[data-matrix-guest]) { font-size:12px; }
.booking-card-overlay .card-booking-matrix .card-booking-span .matrix-move { display:block; text-decoration:underline; }
.booking-card-overlay .card-matrix-residents { font-size:12px; }
@media (pointer:coarse) {
  .booking-card-overlay .booking-card-menu > summary,
  .booking-card-overlay .booking-primary .button-save,
  .booking-card-overlay #bookingMatrixPane .card-booking-buttons .button-soft { min-height:44px; min-width:44px; }
  .booking-card-overlay .card-booking-matrix td button[data-matrix-cell] { min-height:max(44px,calc(var(--matrix-day-width) * .5)); }
}
@media (max-width:560px) {
  .booking-card-overlay .card-booking-matrix-scroll { --matrix-room-base:112px; }
  .booking-card-overlay .booking-primary .button-save { white-space:normal; }
  .booking-card-overlay .booking-card-menu-list .button-soft { min-height:38px; }
}


/* Booking card and new request use the same colours and spacing. */
.booking-card-overlay .sheet { width:min(1140px,100%); height:auto; min-height:min(680px,100%); }
.booking-card-overlay .sheet:has(.booking-request-form) { width:min(780px,100%); min-height:0; }
.booking-card-overlay .sheet-head { padding-block:10px; }
.booking-card-overlay .sheet-body { padding-block:10px 16px; }
.booking-card-overlay .booking-card-topline {
  display:flex; align-items:center; justify-content:space-between; gap:5px 12px;
  flex-wrap:wrap; border-bottom:1px solid var(--card-line); margin:0 0 10px;
}
.booking-card-overlay .booking-status-line,
.booking-card-overlay .card-booking-tabs { margin:0; border-bottom:0; }
.booking-card-overlay .booking-status-line .detail-pill { font-size:12px; padding:4px 8px; }
.booking-card-overlay .card-booking-shared { grid-template-columns:minmax(0,1fr) minmax(235px,30%); gap:10px; }
.booking-card-overlay .card-booking-surface { padding:12px; }
.booking-card-overlay .booking-side-stack { display:grid; gap:10px; min-width:0; }
.booking-card-overlay .booking-side-heading {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:6px; margin-bottom:6px;
}
.booking-card-overlay .booking-side-heading h3 { margin:0; }
.booking-card-overlay .booking-side-heading button,
.booking-card-overlay .booking-attachment-actions button { padding:5px 8px; font-size:13px; min-height:32px; }
.booking-card-overlay .booking-card-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; margin:9px 0; }
.booking-card-overlay .booking-money-tile {
  min-width:0; padding:7px 9px; border:1px solid var(--card-line); border-radius:9px; background:#f7fafc;
  display:flex; flex-direction:column; justify-content:space-between; gap:2px;
}
.booking-card-overlay .booking-money-tile span { font-size:12px; line-height:1.22; color:var(--card-muted); }
.booking-card-overlay .booking-money-tile strong { font-size:clamp(14px,2vw,19px); line-height:1.15; font-variant-numeric:tabular-nums; }
.booking-card-overlay .booking-rate-table,
.relocation-comparison { width:100%; border-collapse:collapse; text-align:start; font-size:14px; font-variant-numeric:tabular-nums; }
.booking-card-overlay .booking-rate-table :is(th,td),.relocation-comparison :is(th,td) {
  padding:7px 8px; border-bottom:1px solid #dce5eb; vertical-align:top; text-align:start;
}
.booking-card-overlay .booking-rate-table :is(thead,tfoot) { background:#f1f6f9; }
.booking-card-overlay .booking-rate-table thead { color:var(--card-muted); font-size:12px; }
.booking-card-overlay .booking-rate-table tfoot { font-weight:700; }
.booking-card-overlay .booking-rate-table :is(th,td):last-child { text-align:end; }
.booking-card-overlay .booking-rate-table small { display:block; color:var(--card-muted); font-size:12px; }
.booking-card-overlay .booking-rate-table .booking-rate-calc > span { display:inline-block; }
.booking-card-overlay .booking-rate-table .card-booking-buttons { gap:3px 9px; margin-top:3px; }
.booking-card-overlay .booking-rate-table .guest-link { font-size:12px; padding:1px 0; }
.booking-card-overlay .estimate-breakdown { margin-top:9px; }
.booking-card-overlay .estimate-rows { padding:0; margin:0; }
.booking-card-overlay .estimate-rows > div { padding-block:3px; }
.booking-card-overlay .estimate-service-head { margin-block:10px 4px; }
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-row {
  display:grid; grid-template-columns:33px minmax(0,1fr) auto; gap:3px 7px; align-items:center;
  padding:7px 0; border-top:1px solid var(--card-line);
}
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-icon {
  display:grid; place-items:end center; padding-bottom:3px; width:29px; height:34px;
  clip-path:polygon(0 0,66% 0,100% 28%,100% 100%,0 100%);
  background:linear-gradient(225deg,#c9dfe9 0 8px,#eaf3f7 8px);
  color:var(--card-accent); font-weight:800; font-size:8px; line-height:1;
}
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-label strong { display:block; font-size:13px; line-height:1.25; overflow-wrap:anywhere; }
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-label small { display:block; font-size:11px; color:var(--card-muted); line-height:1.3; margin-top:3px; }
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-open :is(a,button) {
  display:inline-flex; align-items:center; color:var(--card-accent); border:1px solid var(--card-line);
  border-radius:7px; background:var(--card-soft); text-decoration:none; min-height:31px; padding:3px 6px;
  font-size:12px; font-weight:650;
}
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-extra { grid-column:2/-1; gap:4px; }
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-extra :is(button,a) { font-size:11px; padding:3px 5px; }
.booking-card-overlay .booking-history-card .booking-history { margin:0; }
.booking-card-overlay .booking-history-card summary {
  padding:6px 7px; font-size:13px; border-top:1px solid var(--card-line); font-weight:650;
}
.booking-card-overlay .booking-history-card summary span {
  margin-inline-start:3px; padding:1px 5px; background:var(--card-soft); color:var(--card-accent); border-radius:6px; font-size:11px;
}
.booking-card-overlay .card-booking-matrix-scroll { cursor:grab; overscroll-behavior:contain; user-select:none; }
.booking-card-overlay .card-booking-matrix-scroll.is-grabbing,
.booking-card-overlay .card-booking-matrix-scroll.is-grabbing * { cursor:grabbing!important; }
.booking-request-form { display:grid; gap:8px; }
.booking-request-form .request-surface { min-width:0; background:#fff; border:1px solid var(--card-line); border-radius:10px; padding:8px 10px; }
.booking-request-form .request-surface h3 { margin:0 0 5px; font-size:15px; color:var(--card-ink); }
.booking-request-form .request-contact { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:8px; }
.booking-request-form .field { margin:0; min-width:0; font-size:13px; color:var(--card-muted); }
.booking-request-form .field input,.booking-request-form select { min-height:36px; padding:5px 7px; border:1px solid var(--card-line); font-size:15px; border-radius:7px; }
.booking-request-form .guest-hint:empty,.booking-request-form #rentalDrafts:empty,.booking-request-form #rentalDraftTotal:empty { display:none; }
.booking-request-form .request-guest-counts { margin:0; padding:0; border:0; }
.booking-request-form .request-guest-counts > .fields-two { grid-template-columns:repeat(auto-fit,minmax(115px,1fr)); gap:7px; margin:0; }
.booking-request-form .request-guest-counts .field { font-size:12px; line-height:1.25; }
.booking-request-form .request-guest-counts p { margin:4px 0 0; }
.booking-request-form .lifecycle-check { margin:5px 0; }
.booking-request-form #addRentalDraft { justify-self:start; margin:0; }
.booking-request-form .request-cost { display:grid; grid-template-columns:minmax(130px,1fr) 2fr; gap:5px 10px; }
.booking-request-form .request-cost h3,.booking-request-form .request-cost .price-mode { grid-column:1/-1; margin:0; }
.booking-request-form .payment-breakdown { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }
.booking-request-form .payment-breakdown > div { padding:4px 7px; font-size:12px; }
.booking-request-form .sheet-buttons { margin:0; }
.booking-bar .booking-edge { display:none; }
@media (any-pointer:fine) {
  .booking-bar > .booking-edge[data-resize-edge] {
    position:absolute; top:0; bottom:0; z-index:1; display:block; width:6px; cursor:ew-resize;
  }
  .booking-edge-start { left:0; }
  .booking-edge-end { right:0; }
  .booking-bar:hover > .booking-edge { background:color-mix(in srgb,currentColor 27%,transparent); }
}
@media (max-width:820px) {
  .booking-card-overlay .card-booking-shared { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:540px) {
  .booking-card-overlay .sheet { min-height:100%; }
  .booking-card-overlay .sheet:has(.booking-request-form) { min-height:100%; }
  .booking-card-overlay .sheet-head { padding-block:8px; }
  .booking-card-overlay .card-booking-tabs button { min-height:39px; padding:5px 9px; }
  .booking-card-overlay .booking-status-line .detail-pill { max-width:160px; white-space:normal; }
  .booking-card-overlay .booking-money-tile { padding-inline:5px; }
  .booking-card-overlay .booking-money-tile span { font-size:11px; }
  .booking-card-overlay .booking-rate-table { font-size:12px; }
  .booking-card-overlay .booking-rate-table :is(th,td) { padding:5px 4px; }
  :is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-open :is(a,button) { min-height:38px; }
  .booking-request-form .request-contact { grid-template-columns:minmax(0,1fr); }
  .booking-request-form .request-cost { grid-template-columns:minmax(0,1fr); }
}

.booking-card-overlay .estimate-block { padding:0; border:0; background:transparent; border-radius:0; }
.booking-card-overlay .booking-rate-table tfoot th[colspan] { text-align:start; }
.booking-request-form .price-mode { padding:4px 6px; border:0; background:var(--card-soft); color:var(--card-accent); }
.booking-request-form .price-mode input { min-height:0; }

#bookingGuestNotices { --card-line:var(--theme-line); --card-accent:var(--theme-accent); --card-soft:var(--theme-soft); --card-muted:var(--theme-muted); }
.booking-card-overlay .booking-side-heading button,.booking-card-overlay .booking-attachment-actions button { border-radius:7px; }
.booking-card-overlay .booking-rate-table .card-booking-buttons { margin-bottom:0; }


/* Booking workspace: one control set for the request, estimate and operations. */
.booking-card-overlay { padding:16px; background:#24344f4d; }
.booking-card-overlay .sheet {
  width:min(1280px,100%); min-height:0;
  font:14px/1.4 "Segoe UI",system-ui,-apple-system,sans-serif;
}
.booking-card-overlay .sheet:has(.booking-request-form) { width:min(820px,100%); background:#fff; }
.booking-card-overlay .sheet-head { padding:12px 16px; border-bottom:1px solid var(--card-line); }
.booking-card-overlay .sheet-head h2 { color:var(--card-ink); font:730 clamp(21px,2.5vw,32px)/1.18 "Segoe UI",system-ui,-apple-system,sans-serif; }
.booking-card-overlay .sheet-eyebrow { color:var(--card-accent); font-size:11px; font-weight:700; letter-spacing:.05em; }
.booking-card-overlay .sheet-body { padding:9px 15px 15px; }
.booking-card-overlay .sheet :is(.button-soft,.guest-link,.sheet-close) {
  min-width:0; color:var(--card-accent); border:1px solid var(--card-accent-line); border-radius:7px;
  background:#fff; box-shadow:none; font-size:13px; font-weight:600; text-decoration:none;
}
.booking-card-overlay .sheet .guest-link { padding:4px 7px; }
.booking-card-overlay .sheet .button-soft { padding:6px 9px; }
.booking-card-overlay .sheet :is(.button-soft,.guest-link,.sheet-close):hover { background:var(--card-soft); }
.booking-card-overlay .sheet .button-save {
  background:var(--card-accent); border:1px solid var(--card-accent); border-radius:8px;
  color:#fff; min-height:38px; padding:7px 12px; font-size:13px; font-weight:650;
}
.booking-card-overlay .sheet .button-save:hover { background:var(--theme-dark); }
.booking-card-overlay .sheet :is(button,input,select,summary,a):focus-visible { outline:2px solid var(--card-accent); outline-offset:2px; }
.booking-card-overlay .sheet :is(input,select,textarea) { accent-color:var(--card-accent); }
.booking-card-overlay .sheet .field { min-width:0; margin:0; font-size:13px; color:var(--card-muted); }
.booking-card-overlay .sheet .field > label { color:inherit; font-size:13px; font-weight:600; margin:0 0 3px; }
.booking-card-overlay .sheet .field :is(input:not([type=checkbox]),select,textarea) {
  width:100%; min-width:0; min-height:38px; padding:6px 8px; color:var(--card-ink); background:#fff;
  border:1px solid var(--card-line); border-radius:6px; font-size:14px; box-shadow:none;
}
.booking-card-overlay .sheet :is(.small-note,.guest-hint) { color:var(--card-muted); font-size:12px; }
.booking-card-overlay .sheet .form-section { color:var(--card-ink); margin:7px 0 3px; border-color:var(--card-line); }
.booking-card-overlay .sheet .lifecycle-check { font-size:13px; padding:0; margin:4px 0; color:var(--card-ink); }
.booking-card-overlay .sheet .sheet-buttons { margin:6px 0 0; gap:6px; justify-content:flex-end; }
.booking-card-overlay .sheet .sheet-buttons button { flex:0 1 auto; min-height:36px; }
.booking-card-overlay .booking-card-topline { margin-bottom:8px; }
.booking-card-overlay .card-booking-tabs button { min-height:34px; padding:5px 10px; font-size:14px; }
.booking-card-overlay .booking-card-status {
  display:inline-block; border:1px solid var(--card-line); border-radius:6px; padding:4px 7px;
  color:var(--card-muted); background:#fff; font-size:12px; font-weight:650;
}
.booking-card-overlay .booking-card-status.is-active { background:var(--card-soft); color:var(--card-accent); }
.booking-card-overlay .booking-next-action { display:flex; align-items:center; gap:6px; min-width:0; margin-inline-start:auto; }
.booking-card-overlay .booking-next-action .booking-primary { margin:0; }
.booking-card-overlay .booking-payment-clock {
  color:var(--card-accent); font-size:11px; line-height:1.25; font-variant-numeric:tabular-nums;
}
.booking-card-overlay .booking-card-shared { grid-template-columns:minmax(0,1fr) minmax(255px,32%); gap:12px; }
.booking-card-overlay .card-booking-surface { border:1px solid var(--card-line); border-radius:11px; padding:12px; }
.booking-card-overlay .card-booking-surface h3 { font-size:clamp(16px,1.65vw,23px); font-weight:720; color:var(--card-ink); }
.booking-card-overlay .booking-card-menu > summary { min-height:34px; min-width:34px; border-radius:6px; }
.booking-card-overlay .booking-card-menu-list {
  width:min(290px,100%); max-height:min(360px,46dvh); padding:8px; gap:4px;
  border-radius:10px; align-content:start; overscroll-behavior:contain;
}
.booking-card-overlay .booking-card-menu-list .booking-row-actions { display:grid; grid-template-columns:minmax(0,1fr); gap:1px; }
.booking-card-overlay .booking-card-menu-list h4 { margin:4px 6px 2px; font-size:11px; color:var(--card-muted); font-weight:650; }
.booking-card-overlay .sheet .booking-card-menu-list :is(.guest-link,.button-soft) {
  display:flex; align-items:center; gap:8px; text-align:start; min-height:33px;
  color:var(--card-ink); border-color:transparent; padding:5px 6px; margin:0;
}
.booking-card-overlay .booking-card-metrics { margin:10px 0 7px; gap:8px; }
.booking-card-overlay .booking-money-tile {
  display:grid; align-content:start; gap:4px; padding:8px 10px; border-radius:9px; background:var(--card-subtle);
}
.booking-card-overlay .booking-money-tile.is-accent { background:var(--card-soft); border-color:var(--card-accent-line); }
.booking-card-overlay .booking-money-tile > span { min-height:1.25em; font-size:12px; }
.booking-card-overlay .booking-money-tile strong { font-size:clamp(17px,2vw,25px); font-weight:730; }
.booking-card-overlay .booking-money-tile.is-accent strong { color:var(--card-accent); }
.booking-card-overlay .booking-name-link { color:var(--card-ink); font-weight:650; }
.booking-card-overlay .booking-name-link:hover { text-decoration:none; background:var(--card-soft); }
.booking-card-overlay .booking-rate-table { font-size:13px; }
.booking-card-overlay .booking-rate-table :is(thead,tfoot) { background:var(--card-soft); }
.booking-card-overlay .booking-rate-table :is(th,td) { border-color:var(--card-line); padding:5px 6px; }
.booking-card-overlay .sheet .booking-rate-table .guest-link { padding:2px 5px; font-size:12px; }
.booking-card-overlay .estimate-services-block .estimate-breakdown:not(:has(.estimate-rows > div,p)) { display:none; }
.booking-card-overlay .estimate-rows > div,.booking-card-overlay .estimate-line { border-color:var(--card-line); }
.booking-card-overlay :is(.estimate-rows dt,.estimate-line small) { color:var(--card-muted); }
.booking-card-overlay .estimate-rows .estimate-total { color:var(--card-ink); }
.booking-card-overlay .booking-history-card .booking-history summary { font-size:13px; }
.booking-card-overlay .booking-history-card .booking-history :is(.lifecycle-entry,li) { background:#fff; border-color:var(--card-line); }

.booking-card-overlay .booking-request-form {
  display:grid; gap:0; background:#fff; min-width:0;
}
.booking-request-form .request-surface { padding:9px 0; border:0; border-bottom:1px solid var(--card-line); border-radius:0; }
.booking-request-form .request-surface h3 { margin:0 0 6px; font-size:16px; font-weight:720; }
.booking-request-form :is(.itinerary-list,.request-contact,.request-guest-counts > .fields-two) { gap:6px; margin:0; }
.booking-request-form .itinerary-row {
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto; gap:4px 8px;
  align-items:center; padding:4px 0 6px; background:none; border:0;
}
.booking-request-form .itinerary-row-head { margin:0; grid-column:3; grid-row:1; justify-content:flex-end; }
.booking-request-form .itinerary-row-head b,.booking-request-form .itinerary-row .field > label { display:none; }
.booking-request-form .itinerary-row-head button { padding:5px 3px; color:var(--card-accent); font-size:12px; }
.booking-request-form .itinerary-row .stay-dates { display:flex; gap:6px; align-items:center; justify-content:center; margin:0; align-self:stretch; white-space:normal; }
.booking-request-form .itinerary-row [data-stay-hours] { grid-column:1; }
.booking-request-form .itinerary-row .stay-cost { grid-column:2/-1; grid-row:2; padding:0; text-align:end; color:var(--card-muted); font-size:12px; font-weight:600; }
.booking-request-form .itinerary-row .stay-calendar { grid-column:1/-1; }
.booking-child-tariffs { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:6px 14px; min-width:0; margin:0;
  padding:4px 8px 6px; border:1px solid var(--card-line,var(--theme-line)); border-radius:7px; }
.booking-child-tariffs legend { padding-inline:4px; font-size:12px; font-weight:650; }
.booking-child-tariffs label { display:flex; align-items:center; gap:5px; font-size:12px; }
.booking-child-tariffs input[type=number] { width:4em; min-height:32px; }
.booking-request-form .booking-child-price { grid-column:1/-1; margin:0; }
.estimate-child-line td:first-child { padding-inline-start:16px; }
.booking-request-form .request-guest-counts > .fields-two { grid-template-columns:repeat(4,minmax(0,1fr)); }
.booking-request-form .request-guest-counts .field { font-size:12px; min-width:0; gap:3px; }
.booking-request-form .request-capacity-notice {
  display:flex; align-items:center; justify-content:space-between; gap:5px; flex-wrap:wrap;
  background:var(--card-soft); padding:5px 6px; margin:4px 0; border-radius:6px; font-size:13px;
}
.booking-request-form .request-services { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.booking-request-form [data-rental-draft] {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 6px;
  margin:5px 0; border:1px solid var(--card-line); border-radius:6px; padding:6px;
}
.booking-request-form [data-rental-draft] .fields-two { grid-column:1/-1; gap:6px; }
.booking-request-form [data-remove-rental] { align-self:end; justify-self:start; }
.booking-request-form .request-cost { grid-template-columns:minmax(95px,1fr) minmax(0,2fr); gap:5px 7px; }
.booking-request-form .request-cost .price-mode { grid-column:2; grid-row:1; justify-self:end; padding:0; background:none; }
.booking-request-form .request-cost .price-mode span { color:var(--card-muted); font-weight:550; }
.booking-request-form .request-cost .price-mode input { grid-row:auto; width:14px; height:14px; margin:0; }
.booking-request-form .payment-breakdown { display:flex; gap:5px; padding:0; border:0; background:none; align-items:stretch; }
.booking-request-form .payment-breakdown > div {
  flex:1 1 0; flex-direction:column; align-items:start; justify-content:space-between; gap:2px;
  min-width:0; padding:4px 6px; margin:0; border:1px solid var(--card-line); border-radius:6px;
}
.booking-request-form .payment-breakdown > div:first-child { background:var(--card-soft); border-color:var(--card-accent-line); }
.booking-request-form .payment-breakdown span,.booking-request-form .payment-breakdown strong { color:var(--card-ink); }
.booking-request-form .request-feedback { margin:5px 9px 0; font-size:13px; }
.booking-request-form .request-feedback:empty { display:none; }
.booking-card-overlay .booking-request-form > .sheet-buttons { margin:0; padding:10px 0 0; }

:is(.booking-card-overlay .booking-dialog,.booking-board-confirm) {
  width:min(610px,calc(100% - 24px)); max-height:calc(100dvh - 22px); max-width:none; padding:0; margin:auto;
  color:var(--card-ink); background:#fff; border:1px solid var(--card-line); border-radius:14px;
  box-shadow:0 16px 40px #14254840;
}
:is(.booking-card-overlay .booking-dialog,.booking-board-confirm)[open] { display:flex; flex-direction:column; }
.booking-dialog::backdrop { background:#24344f66; }
.booking-dialog > header {
  display:flex; align-items:center; justify-content:space-between; gap:8px; padding:12px 15px; border-bottom:1px solid var(--card-line);
}
.booking-dialog > header h3 { margin:0; font-size:clamp(18px,2.2vw,24px); font-weight:730; }
.booking-dialog > header button { display:grid; place-items:center; min-width:36px; min-height:36px; line-height:1; }
.booking-dialog-scroll { padding:12px 15px; overflow:auto; min-height:0; overscroll-behavior:contain; }
.booking-dialog-scroll :is(.catalog-fields,[data-arrival-paper],[data-arrival-digital],[data-arrival-fields]) { min-width:0; display:grid; gap:5px; }
.booking-dialog-scroll .catalog-fields { gap:10px; padding:0; }
.booking-dialog-scroll :is(p,.document-actions) { margin:0 0 5px; }
.booking-dialog-scroll .booking-dialog-message { color:var(--card-ink); background:var(--card-soft); border-radius:6px; padding:6px; }
.booking-dialog-scroll .booking-dialog-message:empty { display:none; }
.booking-board-confirm.today-ready-dialog { width:min(410px,calc(100% - 24px)); }
.booking-board-confirm.quick-booking-dialog { width:min(420px,calc(100% - 24px)); height:fit-content; }
.booking-board-confirm.quick-arrival-dialog { width:min(420px,calc(100% - 24px)); height:fit-content; }
.quick-arrival-summary { display:grid; gap:3px; margin:0 0 9px; }
.quick-arrival-summary span { color:var(--card-muted); font-size:13px; }
.quick-arrival-dialog .booking-arrival-packet { gap:5px; margin:0 0 8px; }
.quick-arrival-dialog .booking-desk-arrival-row .field { flex-wrap:wrap; }
.quick-arrival-dialog .booking-desk-arrival-row { background:var(--card-subtle); border-color:var(--card-line); }
.quick-arrival-dialog .lifecycle-check { margin:6px 0; }
.quick-arrival-dialog .sheet-buttons:empty { display:none; }
.quick-arrival-dialog .booking-dialog-scroll { flex:0 1 auto; }
@media(max-height:480px) {
  .quick-arrival-dialog > header,.quick-arrival-dialog .booking-dialog-scroll { padding-block:8px; }
  .quick-arrival-dialog .lifecycle-check { min-height:34px; margin:3px 0; }
}
@media (prefers-reduced-motion:no-preference) {
  .quick-arrival-dialog[open] { animation:quick-arrival-enter 150ms ease-out both; }
  @keyframes quick-arrival-enter { from { opacity:0; transform:translateY(5px); } }
}
.booking-dialog .group-arrival-room { background:#fff; border:1px solid var(--card-line); border-radius:7px; padding:7px; }
.booking-dialog .group-arrival-room :is(summary,.item-tag) { color:var(--card-muted); background:var(--card-soft); font-size:12px; }
.booking-dialog .group-arrival-room h4 { margin:0; font-size:14px; }
.booking-dialog .document-library { margin:3px 0 6px; }
.booking-dialog .booking-doc-open a { background:#fff; }

@media (max-width:790px) {
  .booking-card-overlay .booking-card-shared { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:540px) {
  .booking-card-overlay { padding:0; }
  .booking-card-overlay .sheet { width:100%; max-height:100%; border-radius:0; }
  .booking-card-overlay .sheet-head,.booking-card-overlay .sheet-body { padding-inline:8px; }
  .booking-card-overlay .sheet .field :is(input:not([type=checkbox]),select,textarea) { font-size:16px; }
  .booking-card-overlay .booking-next-action { gap:4px; }
  .booking-card-overlay .booking-money-tile { padding:5px 6px; }
  .booking-card-overlay .booking-money-tile > span { min-height:2.45em; font-size:11px; }
  .booking-card-overlay .booking-money-tile strong { font-size:14px; }
  .booking-card-overlay .booking-card-status { max-width:145px; }
  .booking-request-form .request-contact,.booking-request-form .request-guest-counts > .fields-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-request-form .request-contact .field:first-child { grid-column:1/-1; }
  .booking-request-form .request-contact .field:last-child { grid-column:1/-1; }
  .booking-card-overlay .booking-dialog { width:calc(100% - 12px); max-height:calc(100dvh - 12px); }
}

.booking-dialog-scroll .booking-dialog-message { position:sticky; top:0; z-index:1; }
.booking-card-overlay .booking-dialog .document-library:empty { display:none; }

.booking-toast { background:#2d3c50; font-weight:600; }
.booking-toast-inline { visibility:hidden; }
.booking-request-form .request-cost { grid-template-columns:repeat(3,minmax(0,1fr)); }
.booking-request-form .request-cost h3 { grid-column:1/3; grid-row:1; }
.booking-request-form .request-cost .price-mode { grid-column:3; }
.booking-request-form .request-cost .payment-breakdown { grid-column:2/-1; }
.booking-request-form .request-cost .payment-breakdown > div:not([hidden]) {
  display:grid; grid-template-rows:auto minmax(32px,1fr); align-items:stretch; gap:4px; padding:0; border:0; background:none;
}
.booking-request-form .request-cost .payment-breakdown > div > strong {
  display:flex; align-items:center; padding:4px 8px; border:1px solid var(--card-line); border-radius:7px;
  background:var(--card-subtle); font-variant-numeric:tabular-nums;
}
.booking-request-form .request-cost .payment-breakdown > div:first-child > strong { background:var(--card-soft); }
.booking-dialog [data-arrival-paper] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.booking-dialog [data-arrival-paper] .document-actions,
.booking-dialog [data-arrival-paper] .lifecycle-check,
.booking-dialog [data-arrival-paper] .field:has([data-paper-reference]) { grid-column:1/-1; }
.booking-dialog .group-arrival-room .card-booking-room-head .small-note { margin-bottom:0; }
.booking-dialog .group-arrival-room > .card-booking-buttons:empty { display:none; }
.booking-dialog .group-arrival-room .item-tag { padding:3px 5px; border-radius:5px; }
.booking-dialog #groupArrivalForm > .sheet-buttons {
  position:sticky; bottom:-8px; background:white; padding:5px 0; border-top:1px solid var(--card-line);
}

.booking-request-form .itinerary-row {
  grid-template-columns:minmax(0,1fr) minmax(0,.8fr) auto;
}
.booking-request-form .itinerary-row-head { grid-column:3; grid-row:1; }
.booking-request-form .itinerary-row > .field { grid-column:1; grid-row:1; }
.booking-request-form .itinerary-row .stay-dates { grid-column:2; grid-row:1; }
.booking-request-form .itinerary-row [data-stay-hours] { grid-column:1; grid-row:2; }
.booking-request-form .itinerary-row .stay-cost { grid-column:2/-1; grid-row:2; }
.booking-request-form .itinerary-row:not(:last-child) { border-bottom:1px solid var(--card-line); }

#bookingForm.booking-request-form .stay-dates {
  color:var(--card-accent); background:#fff; border-color:var(--card-line);
}
#bookingForm.booking-request-form .stay-dates:is(:hover,[aria-expanded="true"]) { background:var(--card-soft); }
#bookingForm.booking-request-form [data-stay-hours] { color:var(--card-muted); margin:0; }
.booking-request-form > .request-surface:first-of-type { border-radius:8px 8px 0 0; }
.booking-request-form.simple-desk-request .request-surface { padding:10px; border:1px solid var(--card-line); border-radius:8px; }
.booking-request-form.simple-desk-request .request-cost .field input { min-height:36px; }

.booking-card-overlay .booking-side-stack { align-content:start; }
.booking-card-overlay .booking-side-heading { margin-bottom:5px; }
.booking-card-overlay .booking-side-heading .button-soft { font-size:12px; }
.booking-card-overlay .booking-arrival-next { border-top:1px solid var(--card-line); margin-top:7px; padding-top:6px; }
.booking-card-overlay .booking-paper-row { border-bottom:1px solid var(--card-line); padding:6px 0; }
.booking-card-overlay .booking-paper-row > strong { flex:1 1 150px; min-width:0; }
.booking-card-overlay .booking-paper-row > :is(button,a) { font-size:12px; }
.booking-card-overlay .booking-rate-table th:first-child { width:53%; }

.booking-stay-period span { display:inline-block; white-space:nowrap; }

.booking-card-overlay .booking-rate-table { table-layout:fixed; }
.booking-card-overlay .booking-rate-table thead th:nth-child(2) { width:25%; }
.booking-card-overlay .booking-rate-table thead th:last-child { width:22%; }
.booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th { width:19%; }
.booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th:first-child { width:41%; }
.booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th:nth-child(2) { width:21%; }
.booking-card-overlay .booking-rate-table:has(th:nth-child(4)) :is(th,td):nth-child(n+3) { text-align:end; overflow-wrap:anywhere; }
.booking-card-overlay .booking-rate-table:has(th:nth-child(4)) th:last-child { white-space:nowrap; }
@media (max-width:600px) {
  .booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th:first-child { width:38%; }
  .booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th:nth-child(2) { width:22%; }
  .booking-card-overlay .booking-rate-table:has(th:nth-child(4)) thead th:last-child { width:21%; font-size:11px; }
}
.booking-card-overlay .booking-rate-table td:first-child { overflow-wrap:anywhere; }
.booking-card-overlay .sheet .estimate-stay-line .card-booking-buttons { gap:3px 8px; }
.booking-card-overlay .sheet .estimate-stay-line .card-booking-buttons .guest-link {
  border:1px solid var(--card-accent-line); padding:3px 6px; border-radius:6px; min-height:24px; text-align:start;
}
.booking-card-overlay .booking-rental-dialog form {
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px;
}
.booking-card-overlay .booking-rental-dialog :is(.fields-two,.sheet-buttons,[data-reserve-feedback],#reserveRentalAmount) { grid-column:1/-1; }
.booking-card-overlay .booking-rental-dialog [data-reserve-feedback]:empty { display:none; }
.booking-card-overlay .booking-rental-dialog .sheet-buttons { margin:0; }
@media (max-width:380px) {
  .booking-card-overlay .booking-rental-dialog form { grid-template-columns:minmax(0,1fr); }
}

.booking-card-overlay:has(#bookingCardInfo) { align-items:flex-start; }
.booking-card-overlay .sheet-body:has(#bookingCardInfo) { scrollbar-gutter:stable; }


.booking-request-brand { display:none; }
.booking-card-overlay .sheet:has(.booking-request-form) .sheet-eyebrow { display:inline-block; margin-bottom:3px; }
.booking-card-overlay .sheet:has(.booking-request-form) .booking-request-brand {
  display:inline; margin-inline-start:9px; color:var(--card-muted); font-size:12px;
}
.booking-icon {
  width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.75;
  stroke-linecap:round; stroke-linejoin:round; vertical-align:middle;
}
.booking-card-overlay .sheet :is(.sheet-close,.booking-card-menu > summary,[data-close-dialog]) {
  border-color:var(--card-line); color:var(--card-ink);
}
.booking-card-overlay .card-booking-tabs button[aria-pressed=true] {
  color:var(--card-accent); border-color:var(--card-accent);
}
.booking-card-overlay .booking-payment-clock:not([hidden]) {
  display:flex; align-items:center; gap:4px;
}
.booking-card-overlay .booking-payment-clock .booking-icon { width:13px; height:13px; }
.booking-card-overlay .booking-payment-clock span { color:inherit; font-size:inherit; }
.booking-card-overlay .booking-payment-clock.is-waiting { color:#785000; }
.booking-card-overlay .booking-doc-icon {
  background:linear-gradient(225deg,var(--theme-line) 0 8px,var(--card-soft) 8px);
}
.booking-card-overlay .booking-doc-open :is(a,button) { border-color:var(--card-accent-line); }
.booking-card-overlay .booking-history summary span {
  background:var(--card-soft); color:var(--card-accent);
}
.booking-dialog .booking-arrival-room-title {
  display:flex; align-items:center; gap:8px; min-width:0; flex:1 1 195px;
}
.booking-dialog .booking-room-icon {
  display:grid; place-items:center; width:34px; height:34px; flex:none;
  border-radius:7px; background:var(--card-subtle); color:var(--theme-dark);
}
.booking-dialog .group-arrival-room .item-tag {
  display:inline-flex; align-items:center; gap:4px; white-space:normal; color:var(--card-accent);
}
.booking-dialog .group-arrival-room .item-tag .booking-icon { width:15px; height:15px; }
.booking-card-overlay .booking-invoice-open,
.booking-card-overlay .sheet #copyInvoiceMessage {
  display:flex; align-items:center; gap:8px; min-height:38px;
  border:1px solid var(--card-accent-line); border-radius:8px;
  color:var(--card-accent); font-weight:700; padding:7px 9px;
}
.booking-card-overlay .booking-invoice-open { background:var(--card-soft); text-decoration:none; }
.booking-card-overlay .booking-invoice-open:hover { background:var(--theme-line); }
.booking-card-overlay #invoiceMessage { font-weight:400; line-height:1.45; }
.booking-card-overlay .sheet #copyInvoiceMessage { justify-content:center; }
.booking-card-overlay #lifecycleForm > .sheet-buttons {
  margin-top:11px; padding-top:9px; border-top:1px solid var(--card-line);
}
.booking-card-overlay .sheet:has(#financeList) { width:min(880px,100%); }
.booking-card-overlay #financeSummary .summary-tile { background:#fff; border-color:var(--card-line); }
.booking-card-overlay #financeSummary .summary-tile:nth-child(3),
.booking-card-overlay #financeList .item-tag { background:var(--card-soft); color:var(--card-accent); }
.booking-card-overlay #financeSummary .summary-tile b,
.booking-card-overlay #financeList .item-primary { color:var(--card-ink); }
.booking-card-overlay #financeSummary .summary-tile span,
.booking-card-overlay #financeList .item-secondary { color:var(--card-muted); }
.booking-card-overlay #financeSummary .summary-tile:nth-child(3) b { color:var(--card-accent); }
.booking-card-overlay #financeList .item-list-button { background:#fff; border-color:var(--card-line); }
.booking-card-overlay #financeList .item-list-button:hover { background:var(--card-subtle); }
.booking-card-overlay #financeList .item-tag { border-radius:6px; padding:3px 5px; }
.booking-card-overlay .sheet #sheetBack { color:var(--card-accent); }
.booking-card-overlay .booking-rate-table .booking-name-link { width:auto; }

@media (max-width:540px) {
  .booking-card-overlay .card-booking-surface { padding:9px; }
  .booking-card-overlay .booking-card-metrics { gap:5px; }
  .booking-request-form .itinerary-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .booking-request-form .itinerary-row > .field { grid-column:1/-1; }
  .booking-request-form .itinerary-row .stay-dates { grid-column:1/-1; grid-row:2; }
  .booking-request-form .itinerary-row [data-stay-hours] { grid-row:3; }
  .booking-request-form .itinerary-row .stay-cost { grid-row:3; }
  .booking-request-form .itinerary-row-head { grid-column:1/-1; grid-row:4; }
  .booking-card-overlay .booking-dialog-scroll,.booking-card-overlay .booking-dialog > header { padding-inline:10px; }
}


/* Booking subviews share the card palette and keep their controls inside the dialog. */
.booking-dialog :is(.rental-item,.rental-overview,.rental-money-form,.guest-stat,.item-list-button,.stay-state,.sheet-summary) {
  border-color:var(--card-line); background:var(--card-subtle); color:var(--card-ink);
}
.booking-dialog :is(.rental-item,.rental-money-form,.item-list-button) { background:#fff; }
.booking-dialog :is(.rental-status,.rental-balances span,.rental-balances .rental-credit,.item-tag) {
  background:var(--card-soft); color:var(--card-accent);
}
.booking-dialog .rental-stats > div { background:var(--card-subtle); }
.booking-dialog .rental-details summary,.booking-dialog .rental-reserve summary { color:var(--card-ink); }
.booking-dialog #stayAdjustment { display:grid; gap:7px; }
.booking-dialog #stayAdjustment > button { justify-self:start; }
.booking-dialog :is(.rental-form-heading,.rental-stats dd,.guest-stat strong,.item-primary) { color:var(--card-ink); }
.booking-dialog :is(.rental-item-meta,.rental-stats dt,.guest-stat small,.item-secondary) { color:var(--card-muted); }
.booking-dialog .guest-card-actions button { color:var(--card-accent); border-color:var(--card-accent-line); }
.booking-dialog #rentalRows .rental-item:only-child { margin-top:0; }
.booking-dialog #rentalFeedback { overflow-wrap:anywhere; }
.booking-dialog :is(.guest-stat,.rental-item,.rental-money-form) { min-width:0; }


.booking-card-overlay .booking-estimate-totals { margin-top:8px; }
.booking-card-overlay .booking-estimate-payments:has(> div) { margin-top:6px; }
.booking-card-overlay .booking-estimate-totals > div { padding-inline:6px; }
.booking-card-overlay .booking-estimate-totals > div:first-child { background:var(--card-subtle); }
.booking-card-overlay .estimate-line .booking-name-link { width:auto; }

.booking-board-confirm .sheet-buttons { justify-content:flex-end; gap:6px; margin-top:10px; }
.booking-board-confirm :is(.button-soft,.button-save) {
  flex:0 1 auto; border:1px solid var(--card-accent-line); color:var(--card-accent);
  background:#fff; border-radius:8px; min-height:38px; padding:7px 12px;
}
.booking-board-confirm .button-save { color:white; background:var(--card-accent); }
.booking-board-confirm :is(button,a):focus-visible { outline:2px solid var(--card-accent); outline-offset:2px; }
.booking-dialog #relocationResult dd { text-align:end; overflow-wrap:anywhere; }
.booking-dialog #relocationResult dt { flex-shrink:0; }

.booking-card-overlay .booking-next-action { flex-wrap:wrap; justify-content:flex-end; }
.booking-card-overlay .booking-card-metrics:has(#bookingServiceCharge:not([hidden])) {
  grid-template-columns:minmax(70px,.75fr) minmax(145px,1.3fr) minmax(60px,.65fr) minmax(106px,1.1fr) minmax(110px,1.2fr);
}
.booking-card-overlay .booking-money-split { display:grid; color:var(--card-muted); line-height:1.25; }
.booking-card-overlay .booking-money-split small { font-size:11px; }
.booking-card-overlay .booking-service-due { color:var(--card-accent); }
.booking-card-overlay .booking-rate-label { display:inline-flex; align-items:center; gap:5px; }
.booking-card-overlay .booking-estimate-add {
  display:inline-grid; place-items:center; width:22px; min-height:22px; padding:0;
  color:var(--theme-dark); background:var(--theme-soft); border:0; border-radius:5px; box-shadow:none;
}
.booking-card-overlay .booking-estimate-add .booking-icon { width:13px; height:13px; }
.booking-card-overlay .booking-estimate-add:hover { background:var(--theme-subtle); outline:1px solid var(--theme-edge); }
@media(pointer:coarse) {
  .booking-card-overlay .booking-estimate-add { width:30px; min-height:30px; }
}
.booking-card-overlay .estimate-services-block .card-booking-buttons { display:flex; margin:4px 0 0; }
.booking-card-overlay .estimate-services-block .card-booking-buttons .button-soft { min-height:28px; padding:3px 6px; font-size:12px; }
.booking-dialog .booking-payment-choices { display:grid; gap:6px; }
.booking-dialog .booking-payment-choices button { display:flex; justify-content:space-between; gap:8px; text-align:start; align-items:center; }
.booking-dialog .booking-payment-choices small { display:block; font-size:11px; color:var(--card-muted); }
@media (max-width:920px) {
  .booking-card-overlay .booking-card-metrics:has(#bookingServiceCharge:not([hidden])) { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-card-overlay .booking-card-metrics:has(#bookingServiceCharge:not([hidden])) .is-accent { grid-column:1/-1; }
  .booking-card-overlay .booking-money-split { grid-template-columns:repeat(2,minmax(0,1fr)); gap:3px 6px; }
}

/* Compact booking card and its dialogs. */
.booking-card-overlay .sheet:has(#bookingCardInfo) {
  font-size:13px;
}
.booking-card-overlay .sheet:has(#bookingCardInfo) .sheet-head { padding-block:8px; }
.booking-card-overlay .sheet:has(#bookingCardInfo) .sheet-head h2 { font-size:clamp(19px,2.25vw,29px); }
.booking-card-overlay .booking-heading-link {
  display:inline-block; max-width:100%; min-height:0; padding:0; border:0; background:none;
  color:inherit; font:inherit; text-align:start; line-height:inherit; letter-spacing:inherit;
}
.booking-card-overlay .booking-heading-link:hover { color:var(--card-accent); text-decoration:underline; text-underline-offset:3px; }
.booking-card-overlay .booking-heading-contact {
  display:block; margin-top:3px; color:var(--card-muted); font-size:12px; font-weight:500; letter-spacing:normal;
}
.booking-card-overlay .booking-party { margin:4px 0 6px; color:var(--card-muted); font-size:12px; }
.booking-card-overlay .booking-workspace .card-booking-surface { padding:10px; }
.booking-card-overlay .booking-workspace .card-booking-surface h3 { font-size:clamp(15px,1.48vw,21px); }
.booking-card-overlay .booking-card-metrics { gap:6px; margin:8px 0 6px; }
.booking-card-overlay .booking-money-tile { gap:3px; padding:6px 8px; }
.booking-card-overlay .booking-money-tile > span { font-size:11px; }
.booking-card-overlay :is(#bookingMetricPaidLabel,#bookingServicePaid > span) { white-space:nowrap; }
.booking-card-overlay .booking-money-tile > strong { font-size:clamp(16px,1.8vw,23px); }
.booking-card-overlay .sheet :is(.button-save,.button-soft,.guest-link) { white-space:nowrap; }
.booking-card-overlay .booking-workspace :is(.button-save,.button-soft,.guest-link),
.booking-card-overlay .booking-dialog .sheet-buttons > button { font-size:12px; padding:4px 7px; min-height:32px; }
.booking-card-overlay .sheet:has(#bookingCardInfo) .button-save:hover { background:var(--theme-dark); }
.booking-card-overlay .booking-dialog-scroll .lifecycle-check { min-height:26px; }
@media (max-width:500px) {
  .booking-card-overlay .booking-card-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-card-overlay .booking-money-tile.is-accent { grid-column:1/-1; }
}
@media (max-width:420px) {
  .booking-card-overlay .booking-rate-table :is(th,td) { padding-inline:4px; }
  .booking-card-overlay .booking-rate-label { gap:4px; }
}
.booking-heading-contact > span { display:block; margin-top:2px; }
.booking-card-overlay .booking-rate-table :is(th,td) { border:1px solid var(--card-line); font-size:12px; }
.booking-card-overlay .booking-rate-table :is(th,td):not(:first-child) { font-variant-numeric:tabular-nums; }
.booking-card-overlay .estimate-services-block td:last-child b { white-space:nowrap; }
.booking-card-overlay .estimate-services-block .service-empty { text-align:start; color:var(--card-muted); }
.booking-document-buttons { display:flex; flex-wrap:wrap; justify-content:end; gap:4px; }
.booking-late-arrival:not([hidden]) { display:inline-flex; align-items:center; gap:4px; padding:4px 7px;
  color:var(--card-ink); background:var(--theme-subtle); border:1px solid var(--theme-edge);
  border-radius:7px; font-size:12px; font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; }
.booking-card-overlay :is(.booking-money-tile > strong,.estimate-rows dd,.rental-stats dd) { white-space:nowrap; }
.booking-card-overlay .booking-money-tile > strong { font-size:clamp(14px,1.6vw,21px); }
.booking-card-overlay .booking-card-menu-list button:disabled { opacity:.45; }
.booking-card-overlay .booking-card-menu-list { width:min(432px,100%); max-height:min(350px,64dvh); padding:6px; gap:3px; }
.booking-card-overlay .booking-card-menu-list .booking-row-actions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 4px; }
.booking-card-overlay .sheet .booking-card-menu-list :is(.guest-link,.button-soft) { min-height:29px; padding:3px 5px; gap:5px; font-size:12px; }
.booking-card-overlay .booking-card-menu-list button { overflow:hidden; text-overflow:ellipsis; }
.booking-card-overlay .booking-card-menu-list .booking-icon { flex:0 0 14px; width:14px; height:14px; }
.booking-card-overlay .booking-card-menu-list h4 { margin:2px 5px; }
.booking-card-overlay .booking-dialog.booking-checkout-dialog { width:min(480px,calc(100% - 16px)); }
.booking-checkout-compact p { margin:0 0 5px; }
.booking-checkout-compact .sheet-buttons { flex-wrap:wrap; }
.booking-refund-action,.booking-settlement-houses { display:flex; gap:6px; flex-wrap:wrap; margin-block:5px; }
.booking-settlement-reason .field { margin-top:5px; }
@media (max-width:580px) {
  .booking-card-overlay .booking-card-menu-list { width:min(274px,100%); }
  .booking-card-overlay .booking-card-menu-list .booking-row-actions { grid-template-columns:minmax(0,1fr); }
}
.booking-arrival-packet,.booking-arrival-ready { display:flex; align-items:center; flex-wrap:wrap; gap:4px 7px; margin-block:5px; }
.booking-arrival-packet > div { display:flex; flex-wrap:wrap; align-items:center; gap:4px; }
.booking-dialog .booking-arrival-ready .lifecycle-check { min-height:0; margin:0; }
.booking-dialog .group-arrival-room .booking-arrival-time { color:var(--card-accent); font-weight:800; }
.booking-dialog #groupArrivalForm .group-arrival-room { padding:6px 7px; margin-block:5px; }
.booking-dialog #groupArrivalForm .field { font-size:12px; }
.booking-dialog #groupArrivalForm :is(input[type="number"],select) { min-height:32px; padding-block:3px; font-size:13px; }
.booking-dialog #groupArrivalForm [data-arrival-paper] { display:flex; align-items:end; flex-wrap:wrap; gap:4px 8px; min-width:0; }
.booking-dialog #groupArrivalForm [data-arrival-paper] .field { flex:0 1 138px; }
.booking-dialog #groupArrivalForm .booking-arrival-composition { max-width:100%; }
.booking-dialog #groupArrivalForm .booking-arrival-composition[open] { flex:1 0 100%; }
.booking-dialog #groupArrivalForm .booking-paper-location { color:var(--card-muted); font-size:11px; }
.booking-dialog #groupArrivalForm [data-paper-signed] { min-height:0; }
.booking-dialog .rental-balances span { padding:3px 5px; }
.booking-dialog .rental-stats > div { padding:4px 5px; }
.booking-dialog .booking-service-receipt p { margin-block:0 6px; }
.booking-dialog .booking-arrival-payment { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:6px; padding:7px; margin-bottom:7px; background:var(--card-soft); border-radius:7px; }


/* Shared desk sections and booking dialogs. */
.desk-workspace-overlay { align-items:flex-start; justify-content:center; padding:12px; }
.desk-workspace-overlay .sheet {
  width:min(1180px,100%); height:min(840px,calc(100dvh - 24px)); max-height:calc(100dvh - 24px);
  border-radius:11px; background:var(--theme-page); color:#18263a; font:14px/1.45 "Segoe UI",system-ui,sans-serif;
}
.desk-workspace-overlay .sheet-head { padding:10px 15px; background:#fff; border-color:var(--theme-line); }
.desk-workspace-overlay .sheet-eyebrow { color:var(--theme-accent); font-size:11px; }
.desk-workspace-overlay .sheet-head h2 { color:#18263a; font-size:24px; }
.desk-workspace-overlay .sheet-body { padding:12px 15px; }
.desk-workspace-overlay :is(.item-list-button,.summary-tile,.staff-editor,.stock-table,.template-upload,#templateList .lifecycle-entry) { background:#fff; border-color:var(--theme-line); }
.desk-workspace-overlay .template-field-row code { color:var(--theme-accent); }
.desk-workspace-overlay .item-list-button:hover { background:var(--theme-subtle); }
.desk-workspace-overlay .stock-table th { background:var(--theme-soft); color:var(--theme-ink); }
.desk-workspace-overlay .field input,.desk-workspace-overlay .field select { background:#fff; border-color:var(--theme-edge); }
.stock-table-toolbar,.booking-finance-actions,.paper-roster-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:6px; }
.stock-table-toolbar { margin:6px 0; }
.stock-table-toolbar h3 { margin:0; font-size:16px; }
.paper-roster { display:grid; gap:7px; }
.paper-roster-row { padding:3px 0; border-bottom:1px solid var(--card-line); }
.paper-roster [data-roster-matches] { display:flex; gap:5px; flex-wrap:wrap; }
.booking-dialog.booking-relocation-dialog { width:min(490px,calc(100% - 16px)); }
.booking-relocation-dialog [data-transfer-options] { display:grid; gap:5px; margin:5px 0; }
.booking-relocation-dialog [data-transfer-options] > button { justify-self:start; }
.booking-relocation-dialog .relocation-capacity { margin:5px 0; }

.board .booking-bar {
  border-color:color-mix(in srgb,var(--book-border) 72%,var(--book-text));
  box-shadow:inset 0 1px 0 #ffffff88,0 1px 2px #172e4017;
}
#selectionActions {
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px 12px;
  width:min(560px,calc(100vw - 20px)); padding:8px 10px; min-height:0;
  border-color:var(--theme-edge); border-radius:12px;
}
#selectionActions .selection-actions-summary { grid-column:1; grid-row:1; }
#selectionActions .selection-actions-summary span { color:var(--theme-muted); font-size:11px; }
#selectionActions #rangeButtons {
  grid-column:2; grid-row:1; display:grid; grid-template-columns:repeat(3,max-content);
  gap:3px; max-width:none; max-height:82px; overflow:auto; justify-self:end;
}
#selectionActions #rangeButtons button {
  min-width:25px; min-height:24px; padding:1px 4px; white-space:nowrap;
  color:var(--theme-dark); background:var(--theme-soft); border:1px solid var(--theme-edge);
}
#selectionActions .selection-actions-buttons {
  grid-column:1/-1; grid-row:2; display:flex; flex-wrap:wrap; justify-content:flex-end; gap:4px;
}
#selectionActions .selection-actions-buttons button {
  min-width:0; height:32px; padding:0 7px; white-space:nowrap; font-size:11px;
  border:1px solid var(--theme-edge);
}
body:has(:is(#selectionActions,#staySplitActions):not([hidden])) .toast:not(.booking-toast) {
  bottom:auto; top:calc(72px + var(--safe-top));
}
body:has(#staySplitActions:not([hidden])) .toast.booking-toast { bottom:auto; top:calc(72px + var(--safe-top)); }
.booking-dialog.booking-relocation-dialog { width:min(460px,calc(100% - 20px)); height:fit-content; }
.booking-relocation-dialog :is(#relocationForm,.estimate-rows) { display:grid; gap:6px; }
.booking-relocation-dialog #relocationForm > .field { margin:0; }
.booking-relocation-dialog .estimate-rows > div {
  padding:6px 8px; border:1px solid var(--card-line); border-radius:7px; background:var(--card-subtle);
}
.booking-relocation-dialog .estimate-rows dt { flex-shrink:1; color:var(--card-muted); }
.booking-relocation-dialog #relocationForm .stay-dates { justify-self:start; margin:0; }
.booking-request-form .request-add-stays { display:flex; flex-wrap:wrap; gap:6px; margin-top:7px; }
.booking-request-form .request-add-stays button { min-height:33px; padding:4px 8px; }
.booking-request-form .itinerary-list { border:1px solid var(--card-line); border-radius:9px; overflow:clip; }
.booking-request-form .itinerary-row { margin:0; padding:8px; border-radius:0; background:var(--card-subtle); }
.booking-request-form .itinerary-row { position:relative; }
.booking-request-form .itinerary-row-head {
  grid-column:1/-1; grid-row:auto; justify-content:space-between; min-width:0;
}
.booking-request-form .itinerary-row-head:has([data-remove-stay][hidden]) { display:none; }
.booking-request-form .itinerary-row-head b { display:block; color:var(--card-muted); }
.booking-request-form .itinerary-row-head button {
  display:grid; place-items:center; width:26px; height:26px; padding:0;
  border:1px solid var(--card-line); border-radius:6px; background:#fff;
}
.booking-request-form .itinerary-row-head button:hover { background:var(--card-soft); }
.booking-request-form .itinerary-row-head button svg { width:14px; height:14px; }
.bedless-children { grid-column:1/-1; min-width:0; background:#fff; padding:6px 8px; border:1px solid var(--card-line); border-radius:7px; }
.bedless-children > p { margin:0 0 5px; font-size:12px; font-weight:700; }
.guest-count-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 10px; align-items:end; }
.guest-count-grid .field { margin:0; }
.guest-count-grid .field input { width:100%; min-height:31px; margin-top:3px; }
.guest-count-grid .field small { display:block; margin-top:2px; color:var(--card-muted); font-size:11px; }
.quick-booking-form > .field { margin:0; }
.quick-booking-form .guest-count-grid .field { font-size:11px; }
.quick-booking-form .guest-count-grid { align-items:start; }
.quick-booking-form .field input { border-color:var(--card-line); color:var(--card-ink); }
.quick-booking-form .field input:focus { box-shadow:0 0 0 3px var(--card-soft); }
.quick-guest-total { color:var(--card-muted); font-size:12px; }
.booking-request-form .request-cost .payment-breakdown > div { flex:1 1 0; min-width:0; }
.booking-request-form .request-cost .request-prices { min-width:0; }
.booking-request-form .request-cost .request-prices input { width:100%; }
.booking-request-form .request-cost .payment-breakdown { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.booking-request-form .request-cost .payment-breakdown strong { white-space:nowrap; }
@media(max-width:520px) {
  .booking-request-form .request-cost .request-prices,.booking-request-form .request-cost .payment-breakdown { grid-column:1/-1; }
  .booking-request-form .request-cost .payment-breakdown > div { text-align:start; }
}
.invoice-message-field { display:grid; gap:6px; margin:0; }
.invoice-message-field textarea { display:block; min-height:145px; width:100%; font-weight:400; }

.booking-request-form { --request-control-height:42px; --request-column-gap:8px; }
.booking-request-form :is(.request-contact,.itinerary-row) {
  grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px var(--request-column-gap); align-items:start;
}
.booking-request-form .request-contact .field { grid-column:auto; }
.booking-request-form .itinerary-list { border:0; overflow:visible; }
.booking-request-form .itinerary-row { background:transparent; padding:0 0 8px; }
.booking-request-form .itinerary-row + .itinerary-row { padding-top:8px; }
.booking-request-form .itinerary-row > .field { grid-column:auto; grid-row:auto; }
.booking-request-form .itinerary-row > .stay-search-field { grid-column:1/-1; }
.booking-request-form .itinerary-row :is([data-stay-hours],.stay-cost) { grid-row:auto; }
.booking-request-form .itinerary-row .stay-calendar { grid-row:auto; }
.booking-request-form .stay-field-label { display:block; margin:0 0 4px; font-weight:700; }
.booking-request-form .request-contact .field > label { display:block; margin:0 0 4px; }
#bookingForm.booking-request-form :is(.field input:not([type=checkbox],[type=radio],[type=file],[type=hidden]),.field select,.stay-dates) {
  width:100%; height:var(--request-control-height); min-height:var(--request-control-height);
  padding:0 9px; border:1px solid var(--card-line); border-radius:7px; font-size:14px;
}
#bookingForm.booking-request-form .stay-dates {
  justify-content:space-between; flex-direction:row-reverse; text-align:start;
  color:var(--card-ink); font-weight:400; box-shadow:none;
}
.booking-request-form .stay-dates span { min-width:0; }
@media(max-width:740px) {
  .booking-request-form .request-contact { grid-template-columns:minmax(0,1fr); }
  .booking-request-form .itinerary-row > .field { grid-column:1/-1; }
}
.early-departure-dialog.booking-dialog { width:min(490px,calc(100% - 20px)); height:fit-content; }
.early-departure-dialog :is(.lifecycle-check,.estimate-block) {
  padding:8px; border:1px solid var(--card-line); border-radius:8px; background:var(--card-subtle);
  color:var(--card-ink); margin:0;
}
.early-departure-dialog :is(.estimate-rows dt,.estimate-line small,.small-note) { color:var(--card-muted); }
.early-departure-dialog .estimate-rows > div { background:white; border-color:var(--card-line); }
.early-departure-dialog .lifecycle-check input { accent-color:var(--card-accent); }
.booking-card-overlay .estimate-services-block .booking-rate-table :is(th,td) { vertical-align:middle; }
:is(.booking-card-overlay,#bookingGuestNotices) .booking-doc-open { display:flex; align-items:center; gap:4px; }
.booking-doc-open .booking-word-link { padding-inline:6px; min-width:30px; justify-content:center; font-weight:800; }
.invoice-message-tools { display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:3px; }
.invoice-message-tools :is(a,button) { min-height:34px; margin:0; text-decoration:none; white-space:nowrap; }
.booking-dialog.invoice-send-dialog { width:min(480px,calc(100% - 20px)); height:fit-content; }
.booking-dialog.invoice-send-dialog > header { display:flex; gap:5px; align-items:center; padding:8px 10px; }
.invoice-send-dialog > header h3 { flex:1; min-width:0; margin:0; font-size:14px; }
.invoice-send-dialog > header h3:focus { outline:none; }
.invoice-send-dialog .invoice-message-tools { flex-wrap:nowrap; margin:0; gap:4px; }
.invoice-send-dialog > header :is(.invoice-message-tools > *,[data-close-dialog]) {
  display:inline-flex; align-items:center; justify-content:center; min-height:30px; min-width:30px; padding:3px 6px; font-size:11px;
}
.invoice-send-dialog .invoice-message-tools .booking-icon { width:15px; height:15px; }
.invoice-send-dialog .booking-dialog-scroll { padding:9px 10px; }
.invoice-send-dialog .invoice-message-input { display:block; width:100%; min-height:130px; max-height:48dvh; margin:0; resize:vertical; }
.invoice-send-dialog .invoice-copy-buffer { position:absolute; inset:0 auto auto 0; width:1px; height:1px; opacity:0; pointer-events:none; }
.invoice-send-dialog [aria-busy="true"] { opacity:.55; cursor:progress; }
.guest-message-variables { margin:4px 0 12px; }
.guest-message-variables > div { display:flex; flex-wrap:wrap; gap:5px; margin-block:5px; }
#guestMessageSettings textarea { display:block; width:100%; margin-block:5px; }
.is-dragging-booking,.is-dragging-booking .booking-bar { cursor:grabbing; }
.booking-bar .board-bar-actions { position:absolute; right:2px; top:2px; display:grid; place-items:center; min-width:23px; height:23px;
  padding:0; border:1px solid var(--book-border); border-radius:5px; color:var(--book-text); background:var(--book-bg); font-size:14px; line-height:1; }
.booking-bar:has(.board-bar-actions) { padding-inline-end:25px; }
.board-overview .booking-bar .board-bar-actions { display:grid; }
.tone-held { --status-bg:var(--hold-bg); --status-br:var(--hold-br); --status-fg:var(--hold-fg); }
.tone-invoiced { --status-bg:var(--pending-bg); --status-br:var(--pending-br); --status-fg:var(--pending-fg); }
.tone-confirmed { --status-bg:var(--confirmed-bg); --status-br:var(--confirmed-br); --status-fg:var(--confirmed-fg); }
.tone-occupied { --status-bg:var(--occupied-bg); --status-br:var(--occupied-br); --status-fg:var(--occupied-fg); }
.tone-checked_out { --status-bg:var(--checked-out-bg); --status-br:var(--checked-out-br); --status-fg:var(--checked-out-fg); }
:is(.booking-bar,.booking-card-status,.registry-status):is(.tone-held,.tone-invoiced,.tone-confirmed,.tone-occupied,.tone-checked_out) {
  background:var(--status-bg); border-color:var(--status-br); color:var(--status-fg);
}
.app #bookingWaitingToggle { position:absolute; z-index:5; inset-inline-end:13px; bottom:calc(94px + var(--safe-bottom));
  display:grid; place-items:center; width:45px; height:45px; padding:0; border-radius:50%;
  border:1px solid #d9b74e; background:#ffdb61; color:#493809; box-shadow:var(--control-depth); }
.app.focus #bookingWaitingToggle { bottom:calc(64px + var(--safe-bottom)); }
.app #bookingWaitingToggle[hidden],.app:has(:is(#selectionActions,#staySplitActions):not([hidden])) #bookingWaitingToggle,.folded-booking ul:empty { display:none; }
.folded-booking { bottom:calc(144px + var(--safe-bottom)); }
.booking-dock-row { grid-template-columns:minmax(0,1fr) repeat(2,auto); background:#ffffff7a; backdrop-filter:blur(16px); border-radius:7px; }
.booking-dock-row.is-waiting { background:#fff2cb73; }
.booking-dock-row.is-refund { background:#ffe0e0bf; border-color:#c76569; color:#752b33; }
.booking-dock-row.is-refund [data-booking-dock-restore] { display:flex; align-items:center; gap:6px; }
.booking-dock-row.is-refund small { color:inherit; white-space:nowrap; }
.booking-dock-row.is-refund [data-waiting-actions] { border-inline-start-color:#c7656955; }
.app #bookingWaitingToggle.has-refunds::after {
  content:""; position:absolute; top:1px; right:1px; width:10px; height:10px;
  border:1px solid #fff; border-radius:50%; background:#b3333d;
}
.booking-dock-row button { min-height:23px; padding:2px 6px; line-height:1.15; }
.booking-dock-row [data-waiting-actions] { min-width:30px; text-align:center; border-inline-start:1px solid #bf983b55; }
.booking-dock-row [data-booking-dock-close] { min-width:32px; }
.settings-tile-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:9px; }
.registry-groups { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,218px),1fr)); align-items:start; gap:9px; }
.registry-filters { display:grid; grid-template-columns:minmax(0,430px) minmax(0,210px); gap:8px; }
.registry-filters :is(label,input,select) { color:var(--theme-ink); }
.registry-filters .field { margin:0 0 5px; }
#guestDirectory [data-guest-open] { min-height:38px; padding:6px 9px; }
#guestDirectory [data-guest-open] .item-primary { overflow-wrap:anywhere; }
@media (max-width:600px) { .registry-filters { grid-template-columns:1fr; gap:0; } }
.registry-group .registry-row { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.registry-group .registry-status { max-width:12em; }
.booking-request-form .request-cost:has(.request-price-table) { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
.booking-request-form .request-cost:has(.request-price-table) h3 { grid-column:1; }
.booking-request-form.simple-desk-request :is(.request-contact,.request-stays,.request-guest-counts) :is(input:not([type=checkbox]),select,button.stay-dates) {
  min-height:36px; padding-block:5px;
}
.request-auto { display:flex; align-items:center; gap:4px; color:var(--card-muted); font-size:12px; }
.booking-request-form.simple-desk-request .request-cost:has(.request-price-table) h3 { grid-column:1; }
.request-price-table { grid-column:1/-1; width:100%; border-collapse:collapse; font-size:13px; font-variant-numeric:tabular-nums; }
.request-price-table :is(th,td) { background:var(--card-soft); border:1px solid var(--card-line); padding:5px 9px; }
.request-price-table th { text-align:start; font-weight:600; }
.request-price-table td { width:42%; text-align:end; font-weight:650; }
.request-price-table input { width:100%; min-height:26px; padding:2px 0; border:0; border-radius:4px; text-align:end; background:none; color:inherit; font:inherit; }
.request-price-table input:not([readonly]) { outline:1px solid var(--card-accent-line); background:white; padding-inline:5px; }
.quick-party,.quick-additions { margin:0; padding:6px 8px; min-width:0; border:1px solid var(--card-line); border-radius:8px; }
.quick-contact { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:end; gap:8px; }
.quick-contact .field,.quick-party .field { margin:0; min-width:0; }
.quick-contact input { min-width:0; }
.quick-party { display:grid; gap:7px; }
.quick-child-counts .bedless-children,.quick-child-counts .guest-count-grid { display:contents; }
.quick-child-counts .bedless-children > p { display:none; }
.quick-party input[type="number"],.booking-request-form :is(.guest-count-grid,.request-guest-counts) input[type="number"] {
  width:5ch; min-width:3.5rem; max-width:100%;
}
.booking-request-form .request-guest-counts > .fields-two { grid-template-columns:repeat(auto-fit,minmax(min(100%,110px),1fr)); }
.transfer-time-choice { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:6px; align-items:end; margin:0 0 8px; }
.transfer-time-choice .field { margin:0; }
.booking-relocation-dialog .relocation-capacity,.booking-relocation-dialog .small-note { color:var(--card-ink); margin-block:5px; }
.booking-relocation-dialog [data-transfer-options] { display:grid; gap:5px; justify-items:start; }
.booking-relocation-dialog [data-transfer-options] > .field { width:min(100%,230px); margin:0; }
.booking-relocation-dialog [data-transfer-options] .field select { width:100%; }
.booking-dialog.booking-transfer-dialog { width:min(450px,calc(100% - 16px)); }
.booking-transfer-dialog .booking-dialog-scroll { padding-block:9px; }
.booking-transfer-dialog > .sheet-buttons { flex:none; margin:0; padding:6px 10px; border-top:1px solid var(--card-line); }
.booking-transfer-dialog .transfer-summary { margin:0 0 7px; border:1px solid var(--card-line); border-radius:8px; }
.transfer-summary > div { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:4px 10px; padding:6px 9px; }
.transfer-summary > div + div { border-top:1px solid var(--card-line); }
.transfer-summary dt { min-width:0; overflow-wrap:anywhere; font-size:12px; color:var(--card-muted); }
.transfer-summary :is(dt strong,dt small) { display:block; }
.transfer-summary dt strong { color:var(--card-ink); font-size:14px; }
.transfer-summary dt small { font-size:11px; }
.transfer-summary dd { margin:0; font-size:13px; font-weight:700; text-align:end; font-variant-numeric:tabular-nums; }
.transfer-summary .transfer-total { background:var(--card-soft); }
.booking-transfer-dialog .transfer-time-choice { grid-template-columns:106px minmax(0,auto) auto; justify-content:start; margin:6px 0; }
.booking-transfer-dialog .transfer-time-choice input { width:100%; padding-inline:8px; }
.booking-transfer-dialog [data-transfer-options] { grid-template-columns:repeat(auto-fit,minmax(min(100%,135px),auto)); align-items:end; gap:5px 8px; }
.booking-transfer-dialog [data-transfer-options] > .field { width:100%; }
.booking-transfer-dialog [data-transfer-party]:not([hidden]),.booking-transfer-dialog [data-transfer-options] > p { grid-column:1/-1; }
.booking-transfer-dialog fieldset[data-transfer-party] { min-inline-size:0; margin:0; padding:0; border:0; }
.booking-transfer-dialog [data-transfer-party][hidden],.booking-transfer-dialog [data-transfer-now][hidden] { display:none; }
.booking-transfer-dialog .transfer-checks { display:grid; gap:4px; margin:6px 0; }
.booking-transfer-dialog .transfer-form-fields { margin:0; }
@media(max-width:380px) {
  .booking-transfer-dialog .transfer-time-choice { grid-template-columns:98px minmax(0,auto) auto; }
  .booking-transfer-dialog .transfer-time-choice button { padding-inline:6px; font-size:12px; }
  .transfer-summary dd { max-width:9rem; }
}
.board-planned-transfer { border:1px dashed var(--theme-accent); background:var(--theme-page); color:var(--theme-ink); pointer-events:none; }
.board-planned-transfer .booking-name { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.quick-party small { font-size:11px; color:var(--card-ink); }
.today-print-actions { display:flex; flex-wrap:wrap; gap:6px; }
.today-column h3 .today-column-print { display:grid; place-items:center; flex:none; min-height:28px; padding:2px 4px; }
.today-column-print svg { width:14px; height:14px; }
@media print {
  #printCanvas .today-print table { width:100%; border-collapse:collapse; }
  #printCanvas .today-print :is(th,td) { border:1px solid #333; color:#111; padding:5px 8px; }
  #printCanvas .today-print :is(tr,h2) { break-inside:avoid; }
  #printCanvas .today-print h2 { break-after:avoid; font-size:14px; }
}
.registry-group .item-secondary { overflow-wrap:break-word; }
.today-entry-row { position:relative; min-width:0; }
.today-entry-row .today-entry { width:100%; }
.today-entry-row .today-entry { padding-inline-end:32px; }
.today-entry-row .today-entry-actions {
  position:absolute; inset:4px 3px auto auto; display:grid; place-items:center;
  width:27px; min-height:27px; padding:0; font-size:16px; line-height:1;
}
.today-depart { width:100%; margin:3px 0 0; white-space:normal; }
.booking-board-confirm.desk-departure-dialog { width:min(350px,calc(100% - 20px)); height:fit-content; }
.desk-departure-dialog.booking-dialog :is(header,.booking-dialog-scroll) { padding-block:7px; }
.desk-departure-dialog.booking-dialog p:not([data-dialog-message]) { margin:5px 0; }
.booking-dialog .payment-entry-fields { grid-template-columns:minmax(0,1fr) minmax(0,1.35fr); gap:6px; }
.guest-profile-workspace :is(.guest-notes-view,.guest-note,.guest-hint),.sheet:has(#guestSearch) :is(.item-primary,.item-secondary,.guest-hint) { color:var(--theme-ink); }
.guest-profile-workspace .guest-notes-view { background:var(--theme-subtle); border-color:var(--theme-line); }
.today-columns.simple-desk-columns .today-entry :is(.item-primary,.item-secondary,.today-entry-detail) { color:var(--theme-ink); }
@media (min-width:741px) and (max-width:960px) {
  .today-columns.simple-desk-columns { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
.settings-tile-grid .item-list-button { min-height:106px; padding:10px; align-items:center; border-radius:12px; }
.settings-tile-grid.settings-home .item-list-button { min-height:58px; text-align:start; }
.settings-tile-grid.report-home .item-list-button { min-height:62px; text-align:start; }
@media (min-width:641px) {
  .desk-workspace-overlay .sheet:has(.settings-home,.report-home,.household-home,#boardExportForm,#guestMessageSettings) {
    width:min(840px,100%); height:auto; min-height:0;
  }
}
.settings-tile-grid :is(.item-primary,.item-tag),.household-home :is(.item-primary,.item-tag) { color:var(--theme-ink); }
.settings-tile-grid .item-secondary,.household-home .item-secondary { color:var(--theme-muted); }
#bookingForm.booking-request-form .field input[type="number"]:is([data-child-count],#bookingGuestComposition input,[name="qty"],[name="serviceHours"]) {
  width:4.25rem; max-width:100%; min-width:0;
}
.booking-request-form .bedless-children .guest-count-grid {
  grid-template-columns:repeat(2,minmax(0,125px)); column-gap:8px; align-items:start;
}
.booking-request-form .request-guest-counts > .fields-two {
  grid-template-columns:repeat(auto-fit,minmax(min(100%,104px),128px)); align-items:stretch;
}
.booking-request-form .request-guest-counts .field { gap:4px; }
.booking-card-overlay .desk-money-summary .booking-money-tile > span { min-height:0; }
.booking-card-overlay .desk-money-summary .booking-money-tile { gap:2px; }
.booking-card-overlay .desk-money-summary .booking-money-tile.is-accent { color:var(--card-ink); }
.today-column h3 .today-column-title { flex:1 1 auto; min-width:0; font-size:inherit; color:inherit; }
.today-column h3 .today-column-count { flex:none; }
.today-clean-list { display:block; width:fit-content; max-width:calc(100% - 12px); margin:5px 6px 0; font-size:11px; }
.today-clean-tools { display:flex; flex-wrap:wrap; gap:4px; margin:5px 6px 0; }
.today-clean-tools button { font-size:11px; padding-inline:6px; }
.booking-dialog .cancellation-application:not([hidden]) { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:center; }
.booking-dialog .cancellation-application .lifecycle-check { margin:0; }
.booking-cancel-dialog .cancellation-source { color:var(--card-muted); margin:0; }
.booking-cancel-dialog .cancellation-totals { margin:0; }
.booking-cancel-dialog .cancellation-totals > div { padding-block:5px; }
.booking-cancel-dialog .cancellation-totals dt { color:var(--card-muted); }
#guestDirectory .guest-directory-row { min-height:42px; padding-block:5px; }
#guestDirectory .guest-directory-row .item-secondary { overflow-wrap:anywhere; }
.today-toolbar { flex-wrap:wrap; }
#pricingForm { display:flex; align-items:end; flex-wrap:wrap; gap:6px 10px; }
#pricingForm .sheet-buttons,#pricingForm .field { margin:0; }
#pricingForm #depositPercent { width:5rem; }
.is-hold-button.is-armed { background:#ffe476; border-color:#dfac22; color:#2e260c; }
#bookingPrimary button.invoice-primary,.invoice-send-dialog button[type="submit"],.quick-booking-form button.quick-hold-dates {
  background:#ffde55; border-color:#e5b936; color:#30240a;
}
.quick-booking-form button.quick-hold-dates:not(:disabled):hover { background:#ffcf32; }
.booking-card-overlay .booking-estimate-totals .estimate-grand-total {
  border-color:#efd36c; background:#fff0a4; color:#30240a;
}
.invoice-sent-label { color:var(--card-ink); font-weight:650; }
.invoice-message-tools #shareInvoice { display:inline-flex; gap:3px; }
.quick-booking-form .quick-party {
  grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; gap:4px 6px;
}
.quick-party-title,.quick-children-title { font-size:12px; line-height:1.3; }
.quick-children-title { grid-column:2/-1; }
.quick-booking-form .quick-party > .field:has(select) { grid-column:1/-1; }
.quick-booking-form .quick-party .field:not(:has(select)) {
  display:flex; flex-direction:column; align-items:start; gap:3px;
  font-size:11px; line-height:1.25; align-self:stretch; white-space:nowrap;
}
.quick-booking-form .quick-party input[type="number"] { width:3.5rem; min-width:0; margin:0; }
.quick-booking-form .quick-party .field small { margin:0; line-height:1.25; }
.quick-booking-form .quick-party small { font-size:10px; white-space:nowrap; }
.quick-booking-form .quick-child-counts { display:contents; }
.rental-measure-fields,.rental-measure-fields [data-rental-hour]:not([hidden]) {
  display:flex; align-items:end; flex-wrap:wrap; gap:5px 8px; min-width:0;
}
.rental-measure-fields { grid-column:1/-1; }
.rental-measure-fields .field { margin:0; flex:0 0 auto; }
.rental-measure-fields .field input[name="qty"],.rental-measure-fields .field input[name="serviceHours"] {
  width:4.25rem; min-width:0; max-width:100%;
}
.rental-measure-fields .field input[type="date"] { width:9rem; max-width:100%; }
.rental-measure-fields .field input[type="time"] { width:6.8rem; max-width:100%; }
.rental-measure-fields .field[hidden],.rental-measure-fields [data-rental-hour][hidden] { display:none; }
[data-quick-rentals] [data-rental-draft] { min-width:0; padding:6px 8px; margin:4px 0; display:grid; gap:5px; }
[data-quick-rentals] [data-rental-draft] > .field { margin:0; min-width:0; }
[data-quick-rentals] [data-rental-draft] > .field[hidden] { display:none; }
[data-quick-rentals] [data-remove-rental] { justify-self:end; padding:4px 8px; }
[data-quick-services-total] { flex:1 0 100%; color:var(--card-ink); }
.booking-dialog.desk-arrival-dialog { width:min(420px,calc(100% - 24px)); height:fit-content; }
.desk-arrival-dialog .booking-arrival-packet { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
.desk-arrival-dialog .booking-arrival-packet > div { min-width:0; display:block; }
.desk-arrival-dialog .booking-arrival-packet button { width:100%; min-height:34px; padding:4px; font-size:11px; line-height:1.2; }
.desk-arrival-dialog .booking-desk-arrival-row .field input { width:4.25rem; min-width:0; }
@media print {
  #printCanvas .today-print h1 { margin:0 0 2mm; text-align:start; color:#172a43; }
  #printCanvas .today-print h2 { margin:6mm 0 2mm; color:#172a43; }
  #printCanvas .today-print > p { padding-bottom:3mm; margin:0 0 3mm; border-bottom:1pt solid #375778; color:#374d64; }
  #printCanvas .today-print table { margin-bottom:5mm; }
  #printCanvas .today-print thead { display:table-header-group; }
  #printCanvas .today-print th { background:#eaf0f8; text-align:start; print-color-adjust:exact; }
}
.registry-group { min-width:0; border:1px solid var(--theme-edge); border-radius:10px; background:var(--theme-page); }
.registry-group h3 { display:flex; justify-content:space-between; gap:4px; margin:0; padding:8px; font-size:13px; color:var(--theme-ink); }
.registry-group h3 span { color:var(--theme-muted); font-size:11px; }
.registry-group > div { display:grid; gap:6px; padding:5px; }
.registry-group .registry-result { grid-template-columns:minmax(0,1fr); gap:0; border:1px solid var(--theme-line); border-radius:8px; background:white; overflow:hidden; }
.registry-group .registry-actions { margin:0; padding:5px; }
.registry-group .registry-row { border:0; }
.registry-group .registry-row { display:grid; gap:3px; text-align:start; min-height:0; padding:6px 7px 3px; }
.catalog-table-section { margin:0 0 12px; }
.catalog-table-section header,.workspace-commands { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:0 0 8px; }
.catalog-table-section h3 { margin:0 auto 0 0; font-size:15px; }
.workspace-table { width:100%; margin-bottom:10px; color:var(--theme-ink); }
.room-catalog-table.stock-table { min-width:0; }
.room-catalog-table .booking-name-link { text-align:start; white-space:normal; overflow-wrap:anywhere; }
.room-catalog-table :is(th,td):nth-child(n+2) { text-align:end; }
.room-catalog-table td:last-child { white-space:nowrap; }
.guest-profile-workspace :is(.guest-stat strong,.item-primary,.detail-value) { color:var(--theme-ink); }
.guest-profile-workspace .guest-stat { background:var(--theme-soft); border-color:var(--theme-edge); }
.deposit-dialog.booking-dialog > header { padding:6px 9px; }
.deposit-dialog.booking-dialog > header h3 { font-size:16px; outline:none; }
.deposit-dialog.booking-dialog > header [data-close-dialog] { min-width:29px; min-height:29px; padding:3px; }
.deposit-dialog.booking-dialog .booking-dialog-scroll { padding:8px 10px; }
.deposit-dialog .payment-entry-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:6px; }
.deposit-dialog .payment-entry-fields .field { margin:0; color:#151923; font-weight:700; }
.deposit-dialog .payment-entry-fields :is(input,select) { min-height:37px; color:#151923; font-size:15px; width:100%; }
.deposit-dialog .lifecycle-check { margin:3px 0; color:#151923; }
.workspace-table :is(th,td),.departure-work-table :is(th,td) { border:1px solid var(--theme-edge); }
.departure-work-table { width:100%; touch-action:pan-y; }
.booking-dialog.clean-list-dialog { width:min(550px,calc(100% - 20px)); height:fit-content; }
.clean-list-dialog p { margin:4px 0 8px; }
.clean-list-dialog .departure-work-table { min-width:420px; }
.departure-work-table .is-cleaned :is(th,td) { background:#e1f3e8; color:#255939; }
.app .stay-split-actions { grid-template-columns:minmax(0,1fr) auto; background:#fff; }
.app .stay-split-actions .selection-actions-buttons { grid-column:2; grid-row:1; }
.app .stay-split-quote { grid-column:1/-1; grid-row:2; }
.app .stay-split-actions {
  position:fixed; bottom:calc(12px + var(--safe-bottom)); left:50%; transform:translateX(-50%);
  width:max-content; max-width:calc(100% - 16px); padding:6px 9px; margin:0;
  box-shadow:0 3px 12px #19344b24;
}
.app .stay-split-actions[hidden],.stay-split-actions [hidden] { display:none; }
.app .stay-split-actions #cancelStaySplit { min-width:28px; width:28px; padding:0; font-size:17px; }
.saved-selections:has(.stay-split-selection) { z-index:8; }
.stay-split-selection .range-edge { z-index:2; height:auto; cursor:ew-resize; }
.stay-split-selection .range-edge::after { inset:18% 4px; background:var(--theme-dark); }
.today-entry:is([data-today-departure],[data-today-clean-swipe]) { touch-action:pan-y; }
.simple-desk-columns .today-entry.is-clean-swipe {
  background:color-mix(in srgb,var(--theme-surface,#fff) 82%,#5cad72);
  box-shadow:inset -4px 0 #54966a;
}
.simple-desk-columns .today-entry.is-cleaned { box-shadow:inset 3px 0 #54966a; background:#edf7ef; }
@media print {
  #printCanvas .departure-work-table :is(th,td) { border:1px solid #333; color:#111; }
  body:has(#printCanvas:not([hidden])) .booking-dialog[open] { display:none!important; }
}
.operations-chart { display:grid; gap:6px; margin:8px 0 12px; }
.operations-chart > div { display:grid; grid-template-columns:100px minmax(0,1fr) minmax(85px,auto); gap:6px; align-items:center; }
.operations-chart meter { width:100%; height:15px; }
.report-period-form { display:flex; align-items:end; flex-wrap:wrap; gap:6px 8px; margin:0 0 10px; }
.report-period-form .field { margin:0; flex:0 1 10rem; min-width:0; }
.report-period-form .field input { height:36px; }
.report-period-form .button-save { min-height:36px; padding:4px 12px; }
.operations-summary.stock-table { min-width:0; }
.operations-summary :is(th,td):last-child { text-align:end; }
.operations-detail-table.stock-table { min-width:45rem; }
.operations-detail-table th { overflow-wrap:normal; word-break:normal; }
.operations-detail-table th:nth-child(-n+3) { white-space:nowrap; }
@media (max-width:400px) { .report-period-form .field { flex:0 1 calc(50% - 4px); } }
.booking-request-form.simple-desk-request .request-cost { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:end; }
.booking-request-form.simple-desk-request .request-cost h3 { grid-column:1/-1; }
.booking-request-form.simple-desk-request .request-cost .request-prices { grid-column:1; }
.booking-request-form.simple-desk-request .request-cost .payment-breakdown { grid-column:2/4; }
.booking-request-form.simple-desk-request .request-cost .price-mode { grid-column:4; grid-row:2; justify-self:start; align-self:center; }
.booking-request-form.simple-desk-request .request-cost .payment-breakdown strong { display:flex; align-items:center; min-height:42px; white-space:normal; }
@media(max-width:640px) {
  .settings-tile-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .settings-tile-grid .item-list-button { min-height:84px; }
  .app .stay-split-actions { margin-block:1px; padding:4px 6px; gap:2px; background:#fff; }
  .app .stay-split-actions .selection-actions-buttons { grid-column:1/-1; grid-row:2; gap:3px; }
  .app .stay-split-actions .stay-split-quote { grid-row:3; }
  .stay-split-actions .selection-actions-summary span { font-size:11px; margin:0; }
  .app .stay-split-actions .selection-actions-buttons button { min-height:28px; height:28px; font-size:11px; }
  .booking-request-form.simple-desk-request .request-cost { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .booking-request-form.simple-desk-request .request-cost .price-mode { grid-column:2; }
  .booking-request-form.simple-desk-request .request-cost .payment-breakdown { grid-column:1/-1; }
}
.service-price-table { width:100%; border-collapse:collapse; margin:8px 0 12px; }
.service-price-table :is(th,td) { text-align:start; border-bottom:1px solid var(--theme-line); padding:6px 8px; font-size:13px; }
.service-price-table td { text-align:end; white-space:nowrap; }
.booking-card-overlay .booking-stock-warning { color:#784616; font-weight:700; }
.booking-finance-actions { justify-content:flex-start; margin-block:5px; }
.booking-finance-actions > a { display:inline-flex; padding:4px 8px; border:1px solid var(--card-accent-line); border-radius:6px; }
.date-viewport,.corner { background:var(--theme-page); border-color:var(--theme-line); }
.day-head { border-color:var(--theme-line); color:var(--theme-muted); }
.day-head .day-num,.room-label .room-name { color:var(--theme-ink); }
.day-head.is-weekend { background:var(--theme-subtle); }
.day-head.is-today { background:var(--theme-soft); }
.day-head.is-today .day-num { background:var(--theme-accent); }
.day-head.is-today .weekday { color:var(--theme-accent); }
.room-label { border-color:var(--theme-line); }
.room-label:nth-child(even) { background:var(--theme-subtle); }
.room-label[style*="--unit-color"] { background:color-mix(in srgb,var(--unit-color) 9%,white); }
.grid-world { background-image:linear-gradient(to right,var(--theme-line) 1px,transparent 1px),
  linear-gradient(to bottom,var(--theme-line) 1px,transparent 1px); }
.day-midline { border-inline-start-color:color-mix(in srgb, var(--theme-accent) 27%, transparent); }
.day-shade.is-today { background:color-mix(in srgb, var(--theme-accent) 9%, transparent); box-shadow:inset 1px 0 color-mix(in srgb, var(--theme-accent) 21%, transparent),inset -1px 0 color-mix(in srgb, var(--theme-accent) 21%, transparent); }
@media(max-width:760px) {
  .desk-workspace-overlay { padding:0; }
  .desk-workspace-overlay .sheet { height:100dvh; max-height:100dvh; border-radius:0; }
  .desk-workspace-overlay .sheet-body { padding:8px 9px; }
}


.guest-profile-panel { padding:10px; background:#fff; border:1px solid var(--theme-line); border-radius:10px; }
.guest-profile-workspace .guest-stats { grid-template-columns:repeat(auto-fit,minmax(122px,1fr)); margin:0 0 9px; gap:6px; }
.guest-profile-workspace .guest-stat { background:var(--theme-soft); border:1px solid var(--theme-line); padding:7px 9px; border-radius:8px; }
.guest-profile-workspace .guest-stat strong { font-variant-numeric:tabular-nums; white-space:nowrap; }
.guest-profile-workspace .detail-grid { margin:0; }
.guest-profile-workspace .guest-card-actions { display:flex; flex-wrap:wrap; gap:5px; margin:8px 0 0; }
.guest-profile-workspace .guest-card-actions button { display:inline-flex; align-items:center; gap:4px; min-height:32px; white-space:nowrap; padding:4px 8px; border:1px solid var(--theme-edge); color:var(--theme-dark); background:#fff; }
.guest-profile-workspace .guest-card-actions .button-save { background:var(--theme-accent); color:white; }
.guest-profile-workspace .guest-profile-code { font-size:12px; color:#53647c; margin:6px 0 0; }
.stock-table-toolbar { justify-content:flex-start; align-items:end; margin:0 0 9px; }
.stock-table-toolbar .field { flex:1 1 150px; margin:0; min-width:0; }
.stock-table-toolbar button,.stock-balances-table .button-soft { white-space:nowrap; min-height:32px; }
.stock-balances-table .booking-name-link { background:none; padding:0; color:var(--theme-dark); text-align:left; font-weight:650; }
.stock-balances-table { min-width:0; }
.stock-balances-table:has(.stock-shortage,[data-stock-norm]) { min-width:375px; }
.stock-form-location { color:var(--theme-ink); font-weight:650; margin:0 0 8px; }

.server-starting #app { visibility:hidden; }
.topbar .board-find-booking { display:inline-flex; align-items:center; justify-content:center; gap:5px; white-space:nowrap; }
.board-find-booking svg { flex:none; }
.board-find-booking span { font-size:12px; }
.board-booking-query { display:none; }
.guest-category-form { display:flex; flex-wrap:wrap; align-items:end; gap:6px; margin-bottom:8px; }
.guest-category-form .field { margin:0; }
.booking-note-form { display:grid; gap:7px; align-items:start; }
.booking-note-form .field { margin:0; }
.booking-note-form textarea { width:100%; resize:vertical; min-height:80px; }
.booking-note-form button { justify-self:end; }
.booking-notes-list { display:grid; gap:7px; margin-block:8px; }
.booking-note-entry { padding:8px 10px; border:1px solid var(--theme-edge); border-radius:8px; background:var(--theme-subtle); }
.booking-note-entry header,.booking-note-delete:not([hidden]) { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:4px; }
.booking-note-entry button { font-size:12px; }
.booking-note-delete { margin-top:6px; }
.booking-note-delete span { margin-inline-end:auto; }
.booking-note-entry time { color:var(--theme-muted); font-size:12px; }
.booking-note-entry p { margin:4px 0 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.guest-profile-workspace #guestProfile #editGuest { color:white; background:var(--theme-accent); border-color:var(--theme-accent); }
.guest-profile-workspace #guestProfile .guest-stat { background:var(--theme-subtle); border-color:var(--theme-line); }
.guest-profile-workspace #guestProfile .guest-stat :is(strong,small),.sheet-head[data-kind="guest"] h2 { color:var(--theme-ink); }
.desk-workspace-overlay .stock-table :is(td,th),.desk-workspace-overlay .stock-table button { color:var(--theme-ink); }
.booking-bar.is-located { z-index:4; outline:3px solid var(--theme-accent); outline-offset:2px; box-shadow:0 0 0 2px #fff; }
.registry-result { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:5px; align-items:center; }
.registry-row { width:100%; user-select:none; }
.registry-actions { display:flex; flex-wrap:wrap; gap:4px; }
.registry-actions button { white-space:nowrap; }
.today-column h3 .today-column-grip { flex:none; min-height:30px; padding:2px 5px; cursor:grab; touch-action:none; }
.today-column.is-drop-target { outline:2px solid var(--theme-accent); outline-offset:-2px; }
.organization-tabs { margin-block:6px 12px; }
.organization-tabs .button-soft { min-height:36px; white-space:nowrap; }
.organization-tabs [aria-pressed="true"] { box-shadow:inset 0 -2px var(--theme-accent); }
.staff-table-actions { display:flex; justify-content:flex-end; margin-bottom:8px; }
.staff-table-scroll { max-width:100%; overflow-x:auto; }
.staff-access-table { width:100%; min-width:560px; }
.staff-access-table th[scope="row"] { text-align:start; font-weight:650; }
.staff-access-table td:nth-child(4) { min-width:165px; }
.staff-access-table td:nth-child(2) { overflow-wrap:anywhere; }
.staff-access-table th button { text-align:start; }
.staff-access-table :is(td:nth-child(3),td:nth-child(5),.staff-group-heading th,.staff-entry-status) { white-space:nowrap; }
.staff-access-table .staff-group-heading th { padding:6px 9px; text-align:start; background:var(--theme-soft); }
.staff-entry-status { display:inline-flex; padding:3px 6px; border-radius:6px; background:var(--theme-subtle); }
.staff-effective-rights { margin-block:8px; padding:8px 10px; border:1px solid var(--theme-edge); border-radius:8px; }
.staff-effective-rights h4 { margin:0; }
.staff-effective-rights ul { margin:4px 0; padding-inline-start:19px; }
.sidebar-bottom .sidebar-profile-link { display:flex; align-items:center; gap:8px; min-width:0; text-align:start; }
.sidebar-profile-link strong,.sidebar-profile-link small { display:block; overflow-wrap:anywhere; }
.sidebar-avatar { display:grid; place-items:center; flex:none; width:34px; height:34px; overflow:hidden; border-radius:50%; color:var(--theme-dark); background:var(--theme-soft); }
.sidebar-avatar img { width:100%; height:100%; object-fit:cover; }
.desk-frame { display:block; width:100%; height:calc(100dvh - 105px); min-height:230px; border:0; }
#boardTeamDialog > header form { display:flex; gap:5px; }
@media (max-width:930px) { .board-find-booking span { display:none; } }
@media (min-width:931px) { .topbar .board-find-booking { width:auto; padding-inline:8px; } }
@media (min-width:1100px) {
  .topbar .board-find-booking span { display:none; }
  .board-booking-query { display:block; width:142px; min-width:0; height:32px; padding:4px 7px; border:1px solid var(--theme-edge); border-radius:8px; background:#fff; color:var(--theme-ink); font:inherit; font-size:12px; }
}
@media (max-width:560px) { .registry-result { grid-template-columns:1fr; gap:3px; } .registry-actions { justify-content:flex-end; } }
@media (min-width:850px) and (min-height:560px) {
  .booking-detail-sheet .sheet-head,.booking-detail-sheet .sheet-body { zoom:.9; }
}
.stock-shortage { display:block; color:#9b3b27; font-weight:650; white-space:nowrap; }
.transfer-form-fields { display:flex; flex-wrap:wrap; align-items:center; gap:5px 10px; margin:8px 0; }
.transfer-form-fields button { display:inline-flex; align-items:center; gap:5px; white-space:nowrap; }
.transfer-form-fields label { margin:0; }
@media print {
  .print-transfer-form table { width:100%; border-collapse:collapse; }
  .print-transfer-form :is(th,td) { border:1px solid #333; padding:6px; text-align:left; height:26px; }
  .print-transfer-form th:nth-child(2) { width:46%; }
  .print-transfer-form tr { break-inside:avoid; }
}
