/* Reception planning uses the same authority on desktop and the mobile module route. */
#bookingChart [hidden] { display: none !important; }
.booking-reception { min-width: 0; }
.reception-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)) auto; gap: 12px; align-items: end; }
.reception-fields label { display: grid; gap: 5px; min-width: 0; font-size: 13px; }
.reception-fields input, .reception-fields select { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; min-height: 44px; font-size: 16px; }
.reception-fields input{appearance:none}
.reception-fields button { min-height: 44px; }
.reception-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:14px 0; }
.reception-tabs button { min-height:44px; }
.reception-tabs button[aria-pressed="true"] { background:var(--brand); color:#fff; }
.reception-summary { display:grid; gap:6px; padding:12px; background:#f3f8f6; border-radius:8px; overflow-wrap:anywhere; }
.reception-summary > span { font-size:13px; color:var(--muted); }
#bookingTrialError, .reception-warning { color:#ad3328; font-size:13px; }
.reception-result { padding:14px 0; border-bottom:1px solid var(--line); }
.reception-result-head { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.reception-person { display:grid; gap:3px; padding:9px 0; border-bottom:1px solid var(--line); }
.reception-person:last-child { border-bottom:0; }
.reception-person > span { font-size:13px; overflow-wrap:anywhere; }
.reception-range { font-size:13px; margin-bottom:8px; }
.reception-key { display:flex; flex-wrap:wrap; gap:10px; margin:8px 0; font-size:12px; }
.reception-key > span:before { content:''; display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:4px; background:#a4afba; }
.reception-key > .occupied:before, .reception-stay.occupied { background:#57b894; }
.reception-key > .reserved:before, .reception-stay.reserved { background:#f4b04f; }
.reception-key > .history:before, .reception-stay.history { background:#9b8bb8; }
.reception-key > .conflict:before { background:repeating-linear-gradient(135deg,#b42318 0 2px,#fff 2px 4px); }
.reception-key > .trial:before { background:#d0e4fa; }
.reception-axis, .reception-room { display:grid; grid-template-columns:64px minmax(0,1fr) 60px; gap:8px; align-items:center; }
.reception-axis { padding:8px; background:#f3f6f8; font-size:12px; position:sticky; top:0; z-index:2; }
.reception-axis > div { display:grid; text-align:center; min-width:0; }
.reception-group { background:#fff4ec; padding:7px 9px; font-size:13px; }
.reception-room { width:100%; background:#fff; border:0; border-bottom:1px solid var(--line); padding:6px 8px; text-align:left; min-height:48px; color:var(--text); }
.reception-room[aria-expanded="true"] { background:#f3f8f6; }
.reception-room > span:last-child { font-size:12px; text-align:right; }
.reception-track { position:relative; display:block; min-width:0; overflow:hidden; background:#fff; }
.reception-trial { position:absolute; top:0; bottom:0; background:rgba(56,132,211,.18); border-left:1px dashed #387ed0; border-right:1px dashed #387ed0; }
.reception-stay, .reception-conflict { position:absolute; height:10px; border-radius:3px; }
.reception-conflict { background:repeating-linear-gradient(135deg,rgba(180,35,24,.7) 0 2px,transparent 2px 4px); }
.reception-date-key { color:var(--muted); font-size:12px; line-height:1.6; margin:6px 0; }
.reception-stay-dates { position:absolute; display:flex; justify-content:space-between; gap:8px; width:min(100%,max(var(--date-width),var(--date-min))); left:min(var(--date-left),max(0px,calc(100% - max(var(--date-width),var(--date-min))))); font-size:11px; line-height:18px; font-variant-numeric:tabular-nums; white-space:nowrap; color:var(--text); }
.reception-stay-dates > span { background:rgba(255,255,255,.92); }
.reception-room-detail { padding:12px; background:#f3f8f6; border-bottom:1px solid var(--line); }
.booking-roster-fold > summary { padding:14px; min-height:44px; font-weight:600; }
.reception-suggestions { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }
.reception-suggestions button { min-height:44px; }
@media (max-width:600px) {
  #bookingReception .panel-body { padding:10px; }
  .reception-fields { grid-template-columns: minmax(0,1fr); gap:12px; }
  .reception-fields label { grid-column:1/-1; }
  .reception-fields button { grid-column:1/-1; }
  .reception-axis, .reception-room { grid-template-columns:42px minmax(0,1fr) 44px; gap:4px; padding-left:4px; padding-right:4px; }
  .reception-tabs { gap:5px; }
  .reception-tabs .btn { padding:9px 7px; font-size:12px; }
  .reception-room-detail { padding:10px 6px; }
}

.reception-month-rule { position:absolute; top:0; bottom:0; width:1px; background:var(--line); }

.reception-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:10px}
.reception-choice{display:grid;align-content:start;gap:8px;padding:12px;border:1px solid #cededb;border-radius:8px;background:#fff;min-width:0;overflow-wrap:anywhere}
.reception-choice-first{border:2px solid #177566}
.room-workspace{--brand:#177566;--text:#243b36;--muted:#63766f;--line:#dbe6e1;min-width:0;color:var(--text);background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px;box-sizing:border-box}
.room-workspace [hidden]{display:none!important}.room-heading,.room-month{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.room-heading{justify-content:space-between}.room-heading h3{margin:0}.room-month{margin-top:16px}.room-month label{display:grid;gap:5px;min-width:0}.room-workspace input,.room-workspace select{font:inherit;font-size:16px;min-width:0;max-width:100%;box-sizing:border-box;border:1px solid #cadbd3;border-radius:7px;padding:10px;min-height:44px}.room-workspace input{appearance:none}.room-workspace input::-webkit-date-and-time-value{text-align:left;min-width:0}.room-workspace .btn{font:inherit;font-size:15px;min-height:44px;padding:9px 12px;border:1px solid #cadbd3;border-radius:7px;background:#fff;color:#243b36;cursor:pointer}.room-workspace .btn.primary,.room-workspace .btn[aria-pressed=true]{background:#177566;color:#fff}.room-workspace .meta{font-size:13px;color:#63766f;line-height:1.6}.room-workspace .notice{padding:16px;background:#fff5e4}.room-workspace [role=alert]{color:#ad3328}.room-chart-scroll{max-width:100%;overflow:auto;overscroll-behavior:contain}.room-chart-scroll:focus-visible{outline:2px solid #177566}.room-pending{padding:12px;background:#fff5e4}.room-daily{border-collapse:collapse;font-size:13px}.room-daily caption{text-align:left;padding:10px}.room-daily th,.room-daily td{border:1px solid #dbe6e1;padding:0;min-width:74px}.room-daily th{position:sticky;left:0;z-index:1;background:#f3f8f6;padding:8px}.room-daily button{min-height:44px;width:100%;border:0;background:#fff;padding:8px;font:inherit}.room-daily .room-occupied{background:#c7eedf}.room-daily .room-conflict{background:#ffe0db;color:#992619}.room-workspace .reception-room{cursor:pointer}.room-workspace .reception-room-detail{white-space:normal;min-width:0}
@media(max-width:600px){.room-workspace{padding:12px}.room-month label{flex:1 1 100%;width:100%}.room-month input{width:100%}.room-chart-scroll [data-room-id=bookingReceptionContent]:has(.reception-axis){min-width:640px}.room-workspace .reception-tabs .btn{flex:1;font-size:14px}.room-heading .btn{font-size:14px}.room-workspace .reception-summary{padding:10px}}
body.manager-mobile-session #homeView,body.owner-workbench-mobile #homeView{min-width:0;width:100%;box-sizing:border-box}
[data-mw-room],[data-ow-room]{min-width:0;max-width:100%}
.room-day-detail{width:min(600px,calc(100% - 28px));max-height:80dvh;overflow:auto;border:1px solid #cadbd3;border-radius:12px;padding:16px;color:#243b36;background:#fff;box-sizing:border-box}.room-day-detail::backdrop{background:#18372b66}.room-day-detail button{min-height:44px;font:inherit;background:white;border:1px solid #cadbd3;border-radius:7px;padding:8px 12px}
.room-dialog-back{position:sticky;top:0;z-index:5;min-height:44px;margin-bottom:12px;padding:9px 14px;font:inherit;background:white;color:#243b36;border:1px solid #cadbd3;border-radius:7px}
