/* Stay form and sheet of a stay: shared by the widget, the guest page and the back office. */
.stay { display: grid; gap: 14px; font-size: 15px; color: #33291f; }
.stay[aria-busy="true"] { cursor: progress; }
.stay h2, .stay h3, .stay h4 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-weight: 500; }
.stay h3 { font-size: 18px; margin-bottom: 8px; }
.stay h4 { font-size: 14px; color: #6b5b49; text-transform: capitalize; margin: 10px 0 4px; }
.stay-section { background: #fffdf8; border: 1px solid #e8e0d2; border-radius: 12px; padding: 14px; }
.stay-row { display: flex; flex-wrap: wrap; gap: 10px; }
.stay-field { display: grid; gap: 3px; flex: 1 1 130px; margin-bottom: 8px; font-size: 13px; color: #6b5b49; }
.stay-field input, .stay-field textarea, .stay select { font: inherit; padding: 8px 9px; border: 1px solid #d7ccba; border-radius: 8px; background: #fff; color: #33291f; min-width: 0; width: 100%; box-sizing: border-box; }
.stay-meal select, .stay-service select { width: auto; padding: 5px 6px; }
.stay-stepper { display: inline-flex; align-items: center; gap: 8px; }
.stay-stepper button { width: 34px; height: 34px; border-radius: 50%; border: 1px solid #d7ccba; background: #fff; font-size: 18px; cursor: pointer; color: #33291f; }
.stay-stepper button:disabled { opacity: .4; cursor: default; }
.stay-services { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
.stay-service { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px; border: 1px solid #d7ccba; border-radius: 999px; background: #fff; cursor: pointer; font-size: 14px; }
.stay-service.is-on { border-color: #5e8f6c; background: #f1f6f1; }
.stay-tables { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 8px; }
.stay-table { display: grid; gap: 1px; text-align: left; padding: 9px 11px; border: 1px solid #d7ccba; border-radius: 10px; background: #fff; cursor: pointer; font: inherit; color: inherit; }
.stay-table strong { font-size: 16px; }
.stay-table small { color: #6b5b49; }
.stay-table em { font-style: normal; font-size: 12.5px; color: #9a4a12; }
.stay-table.is-complete em { color: #3f7350; }
.stay-table.is-selected { border-color: #c3923f; box-shadow: 0 0 0 2px #c3923f55; background: #fdf8ee; }
.stay-verdict { margin: 0; padding: 11px 14px; border-radius: 10px; background: #f3eee4; }
.stay-verdict p { margin: 0 0 6px; }
.stay-verdict.is-ok { background: #e6f1e8; color: #274f33; font-weight: 600; }
.stay-verdict.is-conflict { background: #fbeee0; color: #7a3a0e; }
.stay-alternatives { display: flex; flex-wrap: wrap; gap: 8px; }
.stay-meal { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 7px 0; border-top: 1px solid #efe8db; }
.stay-meal-name { display: inline-flex; align-items: center; gap: 7px; min-width: 130px; font-weight: 600; }
.stay-meal-status { flex: 1 1 160px; font-size: 13px; color: #3f7350; }
.stay-meal.is-occupied .stay-meal-status, .stay-meal.is-blocked .stay-meal-status, .stay-meal.is-overlap .stay-meal-status, .stay-meal.is-hours .stay-meal-status { color: #a23c12; font-weight: 600; }
.stay-meal.is-excluded { opacity: .6; }
.stay-meal.is-excluded .stay-meal-status { color: #6b5b49; }
.stay-derogation { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: 12.5px; color: #7a3a0e; padding-left: 24px; }
.stay .text-button { background: none; border: 0; padding: 0; color: #2f6d8a; text-decoration: underline; font: inherit; font-size: 13px; cursor: pointer; }
.stay .text-button.danger { color: #a23c12; }
.stay-form { position: relative; }
.stay-confirm { width: 100%; margin-top: 6px; }
.stay-notice { margin: 0; color: #7a3a0e; }
.stay .form-error { margin: 0; padding: 10px 14px; border-radius: 10px; background: #fbe6dc; color: #8a2d0c; }
.stay .button { display: inline-flex; justify-content: center; align-items: center; border-radius: 999px; padding: 9px 16px; font: inherit; font-weight: 600; cursor: pointer; border: 1px solid #d7ccba; background: #fff; color: #33291f; text-decoration: none; box-sizing: border-box; }
.stay .button.primary { background: #5e8f6c; border-color: #5e8f6c; color: #fff; }
.stay .button:disabled { opacity: .5; cursor: not-allowed; }
.stay-done { display: grid; gap: 8px; justify-items: start; }
.stay-done .done-mark { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: #5e8f6c; color: #fff; font-size: 20px; }
.stay-done-list { margin: 0; padding-left: 18px; max-height: 240px; overflow: auto; font-size: 14px; }
.stay-actions { display: grid; gap: 10px; justify-items: start; }
.stay-actions .stay-field { width: 100%; }
.stay-move { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.stay-move select { width: auto; }
.stay-requests { list-style: none; margin: 0; padding: 0; width: 100%; }
.stay-requests li { padding: 6px 0; border-top: 1px solid #efe8db; }
.stay-requests p { margin: 2px 0 0; white-space: pre-wrap; }
.stay-dialog { border: 0; border-radius: 12px; padding: 18px; max-width: 420px; box-shadow: 0 18px 50px #0004; font-size: 15px; }
.stay-dialog .dialog-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 12px; }
.stay-dialog .button { border-radius: 999px; padding: 8px 14px; border: 1px solid #d7ccba; background: #fff; cursor: pointer; font: inherit; }
.stay-dialog .button.primary { background: #5e8f6c; border-color: #5e8f6c; color: #fff; }
dialog.stay-window { width: min(760px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); border: 0; border-radius: 14px; padding: 0; background: #f6f1e7; box-shadow: 0 24px 70px #0005; }
dialog.stay-window::backdrop { background: #2b211888; }
.stay-window-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 12px 16px; background: #fffdf8; border-bottom: 1px solid #e8e0d2; }
.stay-window-head h2 { margin: 0; font-family: Georgia, 'Times New Roman', serif; font-weight: 500; font-size: 20px; }
.stay-window-close { width: 34px; height: 34px; border-radius: 50%; border: 1px solid #d7ccba; background: #fff; font-size: 18px; cursor: pointer; }
.stay-window-body { padding: 14px; }
.stay-open { white-space: nowrap; }
.stay-space-main { max-width: 760px; margin: 22px auto; padding: 0 14px; }
.stays-list { width: 100%; border-collapse: collapse; }
.stays-list th, .stays-list td { text-align: left; padding: 8px 10px; border-bottom: 1px solid #eae3d6; font-size: 14px; }
.stays-tools { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
