:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #2c2225;
  background: #f5f1ed;
  font-synthesis: none;
  --wine-950: #351019;
  --wine-900: #4b1422;
  --wine-800: #641c2c;
  --wine-700: #7d2638;
  --wine-100: #f4e8eb;
  --gold-500: #b67d31;
  --gold-200: #f2d9a6;
  --surface: #ffffff;
  --surface-soft: #faf7f5;
  --border: #e7ddd8;
  --muted: #786c70;
  --success: #21743d;
  --success-bg: #dff3e5;
  --danger: #a3323c;
  --danger-bg: #fbe7e8;
  --shadow: 0 14px 45px rgba(65, 35, 40, .08);
}

* { box-sizing: border-box; }
html { min-width: 320px; min-height: 100%; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: #f5f1ed; }
button, input, select, textarea { font: inherit; }
button { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }

.boot-screen,
.full-screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}

.boot-screen { color: var(--wine-900); font-weight: 800; }

.auth-shell {
  width: min(460px, 100%);
  display: grid;
  gap: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 24px;
  padding: 30px;
  box-shadow: 0 24px 75px rgba(65, 35, 40, .14);
}

.brand {
  display: flex;
  align-items: center;
  gap: 12px;
}

.brand-logo {
  width: 44px;
  height: 44px;
  flex: 0 0 auto;
}

.brand-copy strong { display: block; font-family: Georgia, "Times New Roman", serif; font-size: 23px; line-height: 1; }

.eyebrow {
  margin: 0;
  text-transform: uppercase;
  letter-spacing: .16em;
  font-size: 11px;
  font-weight: 900;
  color: #9c672f;
}

.auth-shell h1,
.page-heading h1,
.modal h2 {
  margin: 4px 0 6px;
  font-family: Georgia, "Times New Roman", serif;
  color: var(--wine-900);
}

.auth-shell h1 { font-size: 38px; }
.auth-shell p { margin: 0; color: var(--muted); line-height: 1.5; }

.form-stack { display: grid; gap: 16px; }
.field { display: grid; gap: 7px; min-width: 0; }
.field > span { font-size: 12px; font-weight: 800; color: #65595d; }
.field input,
.field select,
.field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #d9ccc8;
  border-radius: 12px;
  padding: 12px 13px;
  color: #2d2426;
  background: #fff;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.field textarea { resize: vertical; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-color: #8f3649; box-shadow: 0 0 0 3px rgba(143, 54, 73, .10); }
.field input:disabled,
.field select:disabled,
.field textarea:disabled { background: #f2efed; color: #82777a; }

.field-hint { font-size: 11px; color: #8a7e81; line-height: 1.45; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.field.wide { grid-column: 1 / -1; }

.primary-button,
.secondary-button,
.danger-button,
.ghost-button,
.icon-button {
  border: 0;
  border-radius: 12px;
  cursor: pointer;
  font-weight: 800;
  transition: transform .12s, opacity .12s, background .12s;
}
.primary-button:active,
.secondary-button:active,
.danger-button:active,
.ghost-button:active,
.icon-button:active { transform: translateY(1px); }
.primary-button:disabled,
.secondary-button:disabled,
.danger-button:disabled,
.ghost-button:disabled,
.icon-button:disabled { cursor: wait; opacity: .55; }

.primary-button { background: var(--wine-800); color: #fff; padding: 13px 18px; }
.primary-button:hover { background: var(--wine-700); }
.secondary-button { background: #eee7e3; color: #4c4044; padding: 12px 16px; }
.secondary-button:hover { background: #e4dad5; }
.danger-button { background: var(--danger-bg); color: var(--danger); padding: 12px 16px; }
.danger-button:hover { background: #f7d9dc; }
.ghost-button { background: transparent; color: #6f6266; padding: 10px 12px; }
.ghost-button:hover { background: rgba(255,255,255,.08); color: #fff; }
.icon-button { width: 40px; height: 40px; display: grid; place-items: center; background: #f1ebe8; color: #5d5054; font-size: 18px; }
.icon-button:hover { background: #e7ddda; }

.button-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.button-row.right { justify-content: flex-end; }
.button-row.between { justify-content: space-between; }

.form-message,
.error-banner,
.info-banner {
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  line-height: 1.45;
}
.form-message,
.info-banner { background: #f5eee8; color: #665343; }
.form-message.error,
.error-banner { background: var(--danger-bg); color: #8e2933; }
.form-message.success { background: var(--success-bg); color: var(--success); }

.app-shell { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100vh; }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 10;
  display: flex;
  flex-direction: column;
  padding: 24px 17px 18px;
  color: #fff;
  background: linear-gradient(180deg, var(--wine-900), var(--wine-950));
}
.sidebar .brand { padding: 0 8px 27px; }
.sidebar .brand-copy strong { color: #fff; }
.sidebar-nav { display: grid; gap: 8px; }
.nav-button {
  width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 13px 14px;
  display: flex;
  align-items: center;
  gap: 11px;
  background: transparent;
  color: #e7d9dd;
  text-align: left;
  cursor: pointer;
  text-decoration: none;
  font-weight: 700;
}
.nav-button:hover,
.nav-button.active { background: #6a1e31; color: #fff; }
.nav-icon { width: 22px; text-align: center; font-size: 17px; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 8px; }
.connection {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  font-size: 12px;
  color: #d7c3c9;
}
.connection-dot { width: 8px; height: 8px; border-radius: 50%; background: #b9aeb1; box-shadow: 0 0 0 3px rgba(255,255,255,.05); }
.connection.online .connection-dot { background: #63d584; }
.connection.syncing .connection-dot { background: #f0c765; }
.connection.offline .connection-dot { background: #ef777e; }
.role-chip {
  margin: 0 12px;
  padding: 8px 10px;
  border-radius: 10px;
  background: rgba(255,255,255,.08);
  font-size: 11px;
  color: #eadde0;
}

.main-content { padding: 32px; min-width: 0; }
.page-stack { width: 100%; max-width: 1480px; margin: 0 auto; display: grid; gap: 21px; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.page-heading h1 { font-size: 39px; }
.page-heading p { margin: 0; color: var(--muted); }
.heading-actions { display: flex; gap: 9px; flex-wrap: wrap; justify-content: flex-end; }

.panel { background: var(--surface); border: 1px solid var(--border); border-radius: 19px; box-shadow: var(--shadow); }
.panel-title { display: flex; align-items: center; gap: 10px; padding: 18px 20px; border-bottom: 1px solid #efe6e2; }
.panel-title h2 { margin: 0; font-size: 17px; }
.count-badge { margin-left: auto; min-width: 27px; padding: 4px 8px; border-radius: 999px; background: #f2ece9; text-align: center; font-size: 12px; }

.today-summary { display: flex; flex-wrap: wrap; gap: 9px; }
.summary-chip { display: flex; align-items: center; gap: 7px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 12px; background: #fff; font-size: 13px; }
.today-list { display: grid; }
.today-card {
  width: 100%;
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 14px;
  padding: 15px 20px;
  border: 0;
  border-bottom: 1px solid #f0e9e6;
  background: transparent;
  text-align: left;
}
.today-card:last-child { border-bottom: 0; }
.today-card-main { display: contents; }
.booking-open { cursor: pointer; }
.booking-open:hover { background: #fcf9f7; }
.room-badge { width: 58px; min-height: 46px; padding: 7px; border-radius: 12px; display: grid; place-items: center; background: #f8eee2; color: #7b4d17; font-size: 13px; font-weight: 900; text-align: center; }
.guest-info { min-width: 0; display: grid; gap: 4px; }
.guest-info strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guest-info span,
.guest-info small { color: var(--muted); }
.guest-info span { font-size: 13px; }
.guest-info small { font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.payment-view { font-size: 12px; font-weight: 800; color: #786c70; }
.payment-view.paid { color: var(--success); }
.payment-toggle { border: 0; border-radius: 999px; padding: 7px 11px 7px 7px; display: flex; align-items: center; gap: 8px; background: #eee7e4; color: #75696c; cursor: pointer; font-size: 12px; font-weight: 800; }
.payment-toggle.paid { background: var(--success-bg); color: var(--success); }
.payment-knob { width: 23px; height: 23px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.14); }
.empty-state { padding: 32px; color: #887b7f; text-align: center; }

.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.calendar-range { font-weight: 800; color: #5a4d51; }
.calendar-shell { overflow: auto; background: #fff; border: 1px solid var(--border); border-radius: 19px; box-shadow: var(--shadow); }
.calendar-grid { min-width: 1500px; display: grid; grid-template-columns: 76px repeat(14, minmax(98px, 1fr)); }
.calendar-corner,
.calendar-day,
.calendar-room,
.calendar-cell { border-right: 1px solid #eee6e2; border-bottom: 1px solid #eee6e2; }
.calendar-corner { position: sticky; left: 0; top: 0; z-index: 5; padding: 14px 10px; background: #faf7f5; font-size: 11px; color: #74686b; }
.calendar-day { position: sticky; top: 0; z-index: 4; padding: 9px 4px; background: #faf7f5; text-align: center; }
.calendar-day.today { background: #f4e8eb; color: var(--wine-800); }
.calendar-day strong,
.calendar-day span { display: block; }
.calendar-day span { margin-top: 2px; font-size: 10px; color: #8e8083; text-transform: uppercase; }
.calendar-room { position: sticky; left: 0; z-index: 3; padding: 19px 11px; background: #fff; color: #521524; font-weight: 900; }
.calendar-room.manual { color: #9b672e; }
.calendar-cell { min-height: 62px; padding: 5px; background: #fff; }
.calendar-cell.today { background: #fdf9fa; }
.booking-block { width: 100%; min-height: 50px; border: 0; border-radius: 9px; padding: 7px; color: #fff; background: #7a1d2d; text-align: left; cursor: pointer; overflow: hidden; }
.booking-block:hover { filter: brightness(1.06); }
.booking-block strong,
.booking-block span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.booking-block strong { font-size: 11px; }
.booking-block span { margin-top: 4px; font-size: 10px; opacity: .84; }
.source-whatsapp { background: #28744a; }
.source-direct { background: #96602d; }
.source-other { background: #56516f; }
.source-booking { background: #7a1d2d; }

.booking-form { padding: 24px; }
.assignment-box { margin-top: 20px; display: flex; align-items: flex-start; gap: 12px; padding: 14px; border-radius: 13px; background: #f4f0e7; color: #5e4d31; }
.assignment-box.error { background: var(--danger-bg); color: #962f36; }
.assignment-box.success { background: var(--success-bg); color: var(--success); }
.assignment-icon { font-size: 20px; }
.assignment-copy { display: grid; gap: 4px; }
.assignment-copy span { font-size: 13px; line-height: 1.45; }
.segmented { display: grid; grid-template-columns: repeat(2, 1fr); padding: 4px; border-radius: 12px; background: #f0e9e6; }
.segmented label { position: relative; }
.segmented input { position: absolute; opacity: 0; pointer-events: none; }
.segmented span { display: block; padding: 9px 10px; border-radius: 9px; text-align: center; cursor: pointer; font-size: 12px; font-weight: 800; }
.segmented input:checked + span { background: #fff; color: var(--wine-800); box-shadow: 0 2px 8px rgba(70, 40, 45, .08); }

.modal-backdrop { position: fixed; inset: 0; z-index: 40; display: grid; place-items: center; padding: 20px; background: rgba(35, 17, 22, .50); }
.modal { position: relative; width: min(680px, 100%); max-height: min(88vh, 900px); overflow: auto; padding: 27px; border-radius: 21px; background: #fff; box-shadow: 0 30px 90px rgba(0,0,0,.3); }
.modal.wide { width: min(820px, 100%); }
.modal h2 { margin-right: 48px; font-size: 30px; }
.modal-close { position: absolute; top: 17px; right: 17px; }
.detail-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-top: 18px; }
.detail-grid div { min-width: 0; display: grid; gap: 5px; padding: 12px; border-radius: 12px; background: #faf6f4; }
.detail-grid span { font-size: 11px; color: #8b7b7f; }
.detail-grid strong { overflow-wrap: anywhere; }
.notes-box { margin-top: 15px; padding: 13px; border-left: 3px solid #a16b32; background: #fbf6ed; white-space: pre-wrap; }
.modal-actions { margin-top: 20px; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; }

.settings-card { padding: 24px; }
.settings-card h2 { margin-top: 0; color: var(--wine-900); }
.settings-card p { color: var(--muted); line-height: 1.55; }
.readonly-banner { padding: 12px 14px; border: 1px solid #e6d4a9; border-radius: 12px; background: #fff8e8; color: #795820; font-size: 13px; }
.warning-banner { padding: 12px 14px; border: 1px solid #e8c98d; border-radius: 12px; background: #fff8e8; color: #795820; font-size: 12px; line-height: 1.5; }

.toast-root { position: fixed; right: 20px; bottom: 20px; z-index: 80; display: grid; gap: 8px; pointer-events: none; }
.toast { width: min(390px, calc(100vw - 40px)); padding: 13px 15px; border-radius: 13px; background: #30282a; color: #fff; box-shadow: 0 16px 45px rgba(0,0,0,.2); font-size: 13px; line-height: 1.45; animation: toast-in .18s ease-out; }
.toast.success { background: #23633a; }
.toast.error { background: #8f2e37; }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } }

.loading-overlay { position: fixed; inset: 0; z-index: 70; display: grid; place-items: center; background: rgba(245, 241, 237, .68); backdrop-filter: blur(2px); }
.loading-card { padding: 14px 18px; border-radius: 13px; background: #fff; color: var(--wine-900); box-shadow: var(--shadow); font-weight: 800; }
.hidden { display: none !important; }

@media (max-width: 860px) {
  .app-shell { grid-template-columns: 1fr; }
  .sidebar { height: auto; position: sticky; padding: 9px 11px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 8px; }
  .sidebar .brand { padding: 0; }
  .sidebar .brand-mark { width: 37px; height: 37px; border-radius: 12px; font-size: 17px; }
  .sidebar .brand-copy strong { font-size: 17px; }
  .sidebar .brand-copy span { display: none; }
  .sidebar-nav { display: flex; justify-content: flex-end; gap: 4px; overflow-x: auto; }
  .nav-button { width: auto; padding: 10px 11px; }
  .nav-button .nav-label { display: none; }
  .nav-icon { width: auto; }
  .sidebar-bottom { margin: 0; display: flex; }
  .connection, .role-chip, .sidebar-bottom .settings-label, .sidebar-bottom .logout-label { display: none; }
  .ghost-button { padding: 8px; font-size: 0; }
  .main-content { padding: 20px 14px; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  .page-heading h1 { font-size: 32px; }
  .heading-actions { width: 100%; justify-content: flex-start; }
  .today-card { grid-template-columns: 60px minmax(0, 1fr) auto; }
  .today-card .payment-toggle, .today-card .payment-view { grid-column: 2 / -1; justify-self: end; }
  .form-grid { grid-template-columns: 1fr; }
  .field.wide { grid-column: auto; }
  .detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .auth-shell { padding: 23px 19px; border-radius: 20px; }
  .auth-shell h1 { font-size: 32px; }
  .today-summary { width: 100%; }
  .summary-chip { flex: 1 1 auto; justify-content: center; }
  .booking-form, .settings-card { padding: 18px; }
  .modal { padding: 23px 18px; }
  .modal-actions, .button-row.between { flex-direction: column; align-items: stretch; }
  .modal-actions > *, .button-row.between > * { width: 100%; }
}

/* Calendar stage 2: compact cards, safe touch, temporary zone and split stays */
.overview-cards { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.overview-card.residents { background: linear-gradient(145deg, #fff 15%, #f5e9ee 100%); }
.overview-card.occupied { background: linear-gradient(145deg, #fff 15%, #edf3fa 100%); }
.overview-card.occupied .overview-icon { color: #385f87; background: rgba(56,95,135,.10); }

.booking-block[data-calendar-booking="true"] {
  min-height: 54px;
  padding: 7px 30px 7px 9px;
  border-left: 4px solid rgba(255,255,255,.72);
  touch-action: pan-x pan-y;
}
.booking-block.tone-0 { background: #74283a; }
.booking-block.tone-1 { background: #824235; }
.booking-block.tone-2 { background: #465c69; }
.booking-block.tone-3 { background: #5b4e75; }
.booking-block.source-booking { border-left-color: #77a9f6; }
.booking-block.source-whatsapp { border-left-color: #69d49a; }
.booking-block.source-direct { border-left-color: #f0bd72; }
.booking-block.source-other { border-left-color: #c5b9e8; }
.booking-block[data-calendar-booking="true"] strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  line-height: 1.2;
}
.booking-block[data-calendar-booking="true"] > span:not(.booking-drag-handle) {
  margin-top: 5px;
  font-weight: 750;
}
.calendar-search-focused { outline: 3px solid #f0c66f; outline-offset: 2px; }

.unassigned-zone { overflow: hidden; }
.unassigned-zone-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 17px 19px 12px;
}
.unassigned-zone-head h2 { margin: 2px 0 4px; font-size: 17px; }
.unassigned-zone-head p { margin: 0; }
.unassigned-zone-head > div > span { color: var(--muted); font-size: 12px; }
.unassigned-drop-zone {
  min-height: 78px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin: 0 12px 12px;
  padding: 12px;
  border: 2px dashed #dbc8ce;
  border-radius: 15px;
  background: #fcf8f9;
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.unassigned-drop-zone.calendar-drop-target,
.unassigned-drop-zone.unassigned-drop-active {
  border-color: #8b3a50;
  background: #f8e9ee;
  box-shadow: inset 0 0 0 2px rgba(123,35,58,.12);
}
.unassigned-drop-zone.calendar-drop-invalid { border-color: #b64550; background: #fff1f1; }
.unassigned-empty { display: grid; place-items: center; min-height: 48px; color: #9a858b; font-size: 12px; font-weight: 750; }
.unassigned-booking { width: 100%; min-height: 58px; }
.unassigned-booking span:not(.booking-drag-handle) { white-space: normal; line-height: 1.35; }

.stay-segments,
.split-preview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 15px;
}
.stay-segments > div,
.split-preview > div {
  display: grid;
  gap: 5px;
  padding: 13px;
  border: 1px solid #eadfdb;
  border-radius: 13px;
  background: #faf6f4;
}
.stay-segments span,
.split-preview span { color: var(--muted); font-size: 11px; }
.split-preview { grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; }
.modal-lead { color: var(--muted); }

@media (max-width: 860px) {
  .overview-cards { grid-template-columns: repeat(4, 148px); }
}

@media (max-width: 560px) {
  .calendar-shell { -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
  .calendar-cell { min-height: 70px; }
  .booking-block[data-calendar-booking="true"] { min-height: 58px; }
  .booking-drag-handle { background: rgba(255,255,255,.18); }
  .unassigned-drop-zone { grid-template-columns: 1fr; }
  .unassigned-zone-head { padding: 14px 14px 10px; }
  .unassigned-zone-head > div > span { font-size: 11px; }
  .split-preview { grid-template-columns: 1fr; }
  .split-preview > .stay-arrow { margin: 0 auto; transform: rotate(90deg); }
}

/* --------------------------------------------------------------------------
   SUNWINE STAFF REDESIGN · 2026
   A final visual layer that keeps every existing workflow and data contract.
   -------------------------------------------------------------------------- */

:root {
  font-family: Manrope, "Noto Sans Georgian", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wine-950: #321019;
  --wine-900: #4b1422;
  --wine-800: #661a2d;
  --wine-700: #81243b;
  --wine-100: #f6e9ed;
  --gold-500: #b58a52;
  --gold-200: #ead7b8;
  --surface: #ffffff;
  --surface-soft: #f7f4f0;
  --border: #e8e0db;
  --muted: #746d6a;
  --success: #347a50;
  --success-bg: #e7f3eb;
  --danger: #a9444c;
  --danger-bg: #f9e8e9;
  --warning: #b77a2b;
  --shadow: 0 12px 36px rgba(55, 28, 32, .07);
  --soft-shadow: 0 4px 18px rgba(55, 28, 32, .055);
  --app-rail: 226px;
}

html { background: var(--surface-soft); }
body {
  color: #2c2726;
  background:
    radial-gradient(circle at 88% 4%, rgba(181, 138, 82, .08), transparent 26rem),
    var(--surface-soft);
}

button,
a,
input,
select,
textarea { -webkit-tap-highlight-color: transparent; }

button:not(:disabled),
a { transition: color .18s ease, background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease, opacity .18s ease; }
button:not(:disabled):active { transform: scale(.975); }

.auth-shell h1,
.page-heading h1,
.modal h2,
.today-mobile-hero h1,
.desktop-welcome strong {
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
}

.app-shell {
  display: grid;
  grid-template-columns: var(--app-rail) minmax(0, 1fr);
  min-height: 100vh;
  background: transparent;
}

.workspace-shell {
  min-width: 0;
  min-height: 100vh;
}

.sidebar {
  position: sticky;
  inset: auto;
  top: 0;
  display: flex;
  width: auto;
  height: 100vh;
  min-height: 100vh;
  padding: 25px 15px 20px;
  border: 0;
  border-radius: 0;
  color: #fff;
  overflow: hidden;
  background:
    radial-gradient(circle at 0 2%, rgba(181, 138, 82, .17), transparent 16rem),
    linear-gradient(160deg, #571426 0%, #321019 70%, #280b13 100%);
  box-shadow: 10px 0 34px rgba(50, 16, 25, .08);
}

.sidebar::after {
  content: "";
  position: absolute;
  inset: auto -90px -95px auto;
  width: 220px;
  height: 220px;
  border: 1px solid rgba(181, 138, 82, .16);
  border-radius: 50%;
  pointer-events: none;
}

.sidebar .brand {
  position: relative;
  z-index: 1;
  gap: 11px;
  padding: 0 9px 28px;
}

.sidebar .brand-logo-wrap {
  display: grid;
  width: 42px;
  height: 48px;
  place-items: center;
}

.sidebar .brand-logo {
  width: 42px;
  height: 42px;
  object-fit: contain;
  filter: sepia(1) saturate(.85) brightness(1.52);
}

.sidebar .brand-copy strong {
  color: #dfc18f;
  font-family: "Playfair Display", Georgia, serif;
  font-size: 21px;
  letter-spacing: .08em;
}

.sidebar .brand-copy span {
  margin-top: 3px;
  color: rgba(255,255,255,.55);
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.sidebar-nav {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 5px;
  overflow: visible;
}

.sidebar-nav .nav-button,
.sidebar-nav .sw-nav-button,
.sidebar-nav .restaurant-nav-button {
  display: flex;
  width: 100%;
  min-width: 0;
  height: auto;
  min-height: 45px;
  flex: none;
  flex-direction: row;
  justify-content: flex-start;
  gap: 11px;
  padding: 11px 13px;
  border: 0;
  border-radius: 10px;
  color: rgba(255,255,255,.78);
  background: transparent;
  scroll-snap-align: none;
}

.sidebar-nav .nav-button:hover,
.sidebar-nav .sw-nav-button:hover,
.sidebar-nav .restaurant-nav-button:hover {
  color: #fff;
  background: rgba(255,255,255,.07);
}

.sidebar-nav .nav-button.active,
.sidebar-nav .sw-nav-button.active,
.sidebar-nav .restaurant-nav-button.active {
  color: #fff;
  background: linear-gradient(90deg, rgba(146, 40, 64, .78), rgba(115, 27, 46, .46));
  box-shadow: inset 3px 0 0 #d1aa70, 0 7px 18px rgba(25, 4, 10, .15);
}

.sidebar-nav .nav-icon {
  display: grid;
  width: 22px;
  place-items: center;
}

.sidebar-nav .nav-label {
  max-width: none;
  font-size: 12px !important;
  line-height: 1.3;
  white-space: normal;
}

.nav-unread-badge {
  margin-inline-start: auto;
  min-width: 21px;
  padding: 2px 6px;
  border-radius: 999px;
  color: #fff;
  background: #a9444c;
  font-size: 10px;
  text-align: center;
}

.sidebar-bottom {
  position: relative;
  z-index: 1;
  display: grid;
  width: 100%;
  min-width: 0;
  margin-top: auto;
  gap: 5px;
}

.sidebar-bottom .connection {
  padding: 7px 11px;
  font-size: 10px;
}

.sidebar-bottom .settings-button {
  display: flex;
  width: 100%;
  height: auto;
  min-height: 42px;
  align-items: center;
  justify-content: flex-start;
  gap: 11px;
  padding: 10px 13px;
  border-radius: 10px;
  color: rgba(255,255,255,.75);
}

.sidebar-bottom .settings-label {
  max-width: none;
  font-size: 12px !important;
}

.sidebar-profile {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding: 13px 10px 0;
  border-top: 1px solid rgba(255,255,255,.11);
}

.profile-avatar {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border: 1px solid rgba(181, 138, 82, .5);
  border-radius: 50%;
  color: #fff;
  background: linear-gradient(145deg, #9c3851, #5d1729);
  font-size: 12px;
  font-weight: 800;
}

.sidebar-profile > span:last-child { min-width: 0; }
.sidebar-profile strong,
.sidebar-profile small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-profile strong { color: #fff; font-size: 11px; }
.sidebar-profile small { margin-top: 2px; color: rgba(255,255,255,.52); font-size: 9px; }

.desktop-topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  display: flex;
  min-height: 74px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 12px clamp(24px, 3vw, 44px);
  border-bottom: 1px solid rgba(218, 207, 201, .72);
  background: rgba(247, 244, 240, .88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.desktop-welcome strong,
.desktop-welcome span { display: block; }
.desktop-welcome strong { color: var(--wine-950); font-size: 19px; }
.desktop-welcome span { margin-top: 3px; color: var(--muted); font-size: 11px; }

.desktop-topbar-actions { display: flex; align-items: center; gap: 10px; }
.topbar-create,
.topbar-icon-button,
.profile-button {
  border: 1px solid var(--border);
  color: var(--wine-900);
  background: rgba(255,255,255,.9);
}

.topbar-create {
  display: flex;
  min-height: 40px;
  align-items: center;
  gap: 8px;
  padding: 9px 14px;
  border-color: var(--wine-900);
  border-radius: 9px;
  color: #fff;
  background: var(--wine-900);
  font-size: 11px;
  font-weight: 800;
}

.topbar-create:hover { background: var(--wine-800); }
.topbar-icon-button {
  position: relative;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  border-radius: 50%;
}

.topbar-badge {
  position: absolute;
  top: -3px;
  right: -3px;
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  background: #a9444c;
  font-size: 8px;
  font-weight: 800;
}

.profile-button {
  display: flex;
  min-width: 172px;
  align-items: center;
  gap: 9px;
  padding: 5px 9px 5px 6px;
  border-radius: 24px;
  text-align: left;
}

.profile-button .profile-avatar { width: 34px; height: 34px; flex-basis: 34px; }
.profile-copy { flex: 1; min-width: 0; }
.profile-copy strong,
.profile-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.profile-copy strong { color: #332b2b; font-size: 10px; }
.profile-copy small { margin-top: 1px; color: var(--muted); font-size: 8px; }

.mobile-topbar,
.mobile-bottom-nav,
.mobile-panel-layer,
.today-mobile-hero { display: none; }

.main-content {
  width: 100%;
  max-width: 1660px;
  margin: 0 auto;
  padding: clamp(24px, 2.8vw, 42px);
}

.page-stack { gap: 20px; }
.page-heading {
  align-items: flex-end;
  padding: 0 2px;
  background: transparent;
  border: 0;
  box-shadow: none;
}

.page-heading h1 {
  margin: 3px 0 4px;
  color: var(--wine-950);
  font-size: clamp(34px, 3.6vw, 49px);
  line-height: 1.03;
  letter-spacing: -.025em;
}

.page-heading .heading-copy > p:last-child { max-width: 680px; color: var(--muted); }
.eyebrow { color: #9b6b34; letter-spacing: .18em; }

.panel,
.booking-form,
.date-drawer,
.guest-allocation-shortcut,
.notification-overview article,
.overview-card {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: rgba(255,255,255,.94);
  box-shadow: var(--soft-shadow);
}

.overview-cards {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 13px;
}

.overview-card {
  min-height: 112px;
  padding: 18px;
  box-shadow: var(--soft-shadow);
}

.overview-card strong { color: var(--wine-950); font-size: 31px; }
.overview-card span { font-size: 11px; }
.overview-card small { font-size: 9px; }
.overview-card.bookings .overview-icon { color: #9a6a22; background: #f9f1df; }

.guest-section { overflow: hidden; }
.panel-title { min-height: 59px; padding: 15px 18px; border-bottom: 1px solid var(--border); }
.panel-title h2 { color: #342c2c; font-size: 14px; }
.count-badge { background: var(--surface-soft); }

.today-list { display: grid; }
.today-card {
  grid-template-columns: 34px 72px minmax(180px, 1fr) minmax(245px, .72fr) auto;
  gap: 13px;
  min-height: 104px;
  padding: 15px 18px;
  border: 0;
  border-bottom: 1px solid #eee7e3;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.today-card:last-child { border-bottom: 0; }
.today-card:hover { z-index: 1; background: #fdfbf9; box-shadow: inset 3px 0 0 var(--gold-500); transform: none; }
.today-card .guest-avatar { width: 34px; height: 34px; }
.today-card .room-badge { min-width: 66px; }
.today-card .guest-info strong { color: #2d2727; font-size: 14px; }
.today-card .guest-info span,
.today-card .guest-info small { font-size: 10px; }
.today-card .stay-period { max-width: 320px; }
.today-card-actions { justify-content: flex-end; }

.calendar-page-heading { align-items: center; }
.calendar-view-switch {
  display: inline-flex;
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255,255,255,.9);
}

.calendar-view-switch button {
  display: flex;
  min-height: 36px;
  align-items: center;
  gap: 7px;
  padding: 7px 11px;
  border: 0;
  border-radius: 7px;
  color: var(--muted);
  background: transparent;
  font-size: 10px;
  font-weight: 800;
}

.calendar-view-switch button.active { color: #fff; background: var(--wine-900); box-shadow: 0 5px 14px rgba(75, 20, 34, .16); }
.calendar-search-box { min-height: 52px; border-radius: 13px; box-shadow: var(--soft-shadow); }
.calendar-shell { border: 1px solid var(--border); border-radius: 14px; background: #fff; box-shadow: var(--shadow); }
.calendar-grid { --cell-height: 82px; }
.calendar-day,
.calendar-corner { background: #fbf9f7; }
.calendar-day.today { color: #fff; background: var(--wine-900); }
.calendar-room { color: var(--wine-900); background: #fff; font-weight: 800; }
.calendar-cell { background: #fff; }
.calendar-cell.today { background: #fdf8f9; }
.booking-block { border-radius: 9px; box-shadow: 0 4px 10px rgba(40, 23, 25, .08); }

.calendar-agenda {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow);
}

.agenda-month-row {
  display: flex;
  min-height: 63px;
  align-items: center;
  justify-content: center;
  gap: 24px;
  padding: 10px 18px;
  border-bottom: 1px solid var(--border);
}

.agenda-month-row strong {
  min-width: 190px;
  color: var(--wine-950);
  font-family: "Playfair Display", Georgia, serif;
  font-size: 20px;
  text-align: center;
}

.agenda-week-strip {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px;
  padding: 13px 18px;
  border-bottom: 1px solid var(--border);
  background: #fbfaf8;
}

.agenda-day {
  display: grid;
  min-height: 60px;
  place-items: center;
  align-content: center;
  gap: 3px;
  border: 1px solid transparent;
  border-radius: 10px;
  color: #6f6664;
  background: transparent;
}

.agenda-day span { font-size: 9px; font-weight: 700; text-transform: uppercase; }
.agenda-day strong { font-size: 16px; }
.agenda-day.today { border-color: #d9c3c9; }
.agenda-day.active { color: #fff; background: var(--wine-900); box-shadow: 0 7px 17px rgba(75, 20, 34, .18); }

.agenda-filters {
  display: flex;
  gap: 7px;
  padding: 14px 18px 8px;
}

.agenda-filters button {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--muted);
  background: #fff;
  font-size: 10px;
  font-weight: 800;
}

.agenda-filters button b { min-width: 17px; padding: 1px 5px; border-radius: 999px; background: #eee9e6; font-size: 8px; }
.agenda-filters button.active { color: #fff; border-color: var(--wine-900); background: var(--wine-900); }
.agenda-filters button.active b { color: var(--wine-900); background: #fff; }
.agenda-list { padding: 6px 18px 18px; }

.agenda-event {
  position: relative;
  display: grid;
  grid-template-columns: 58px 3px minmax(0, 1fr) auto 20px;
  min-height: 82px;
  align-items: center;
  gap: 15px;
  width: 100%;
  padding: 12px 14px 12px 0;
  border: 0;
  border-bottom: 1px solid #eee8e4;
  color: #2d2827;
  background: #fff;
  text-align: left;
}

.agenda-event:hover { background: #fdfbf9; }
.agenda-event:last-child { border-bottom: 0; }
.agenda-time { color: var(--wine-900); font-size: 12px; font-weight: 800; text-align: center; }
.agenda-event-line { align-self: stretch; border-radius: 4px; background: #44925f; }
.agenda-event.event-departure .agenda-event-line { background: #5172b4; }
.agenda-event-copy { display: grid; gap: 3px; }
.agenda-event-copy strong { font-size: 13px; }
.agenda-event-copy small { color: var(--muted); font-size: 9px; }
.agenda-status { width: max-content; margin-top: 3px; padding: 3px 7px; border-radius: 999px; color: #2f6f47; background: #e8f4ec; font-size: 8px; font-style: normal; font-weight: 800; }
.event-departure .agenda-status { color: #46609a; background: #e9eef9; }
.agenda-room { min-width: 55px; color: var(--wine-900); font-size: 12px; font-weight: 800; text-align: right; }
.agenda-chevron { color: #ad9e9a; font-size: 22px; }
.agenda-empty { display: grid; min-height: 210px; place-items: center; align-content: center; gap: 7px; color: var(--muted); text-align: center; }
.agenda-empty > span { display: grid; width: 44px; height: 44px; place-items: center; border-radius: 50%; color: var(--success); background: var(--success-bg); font-size: 20px; }
.agenda-empty strong { color: #443b3a; font-size: 13px; }
.agenda-empty small { font-size: 10px; }

.mobile-panel-layer { display: none; }

/* Existing feature modules inherit the redesign without changing their logic. */
.cash-hero,
.restaurant-admin-header,
.sw-hero {
  border-radius: 16px !important;
  box-shadow: var(--shadow) !important;
}

.restaurant-admin-root,
.sw-ops-root { font-family: Manrope, "Noto Sans Georgian", sans-serif !important; }
.restaurant-summary article,
.sw-summary-card,
.cash-summary-card,
.notification-overview article,
.restaurant-editor-panel,
.restaurant-order-card,
.restaurant-reservation-card,
.sw-panel,
.sw-room-card {
  border-color: var(--border) !important;
  border-radius: 14px !important;
  box-shadow: var(--soft-shadow) !important;
}

.modal-backdrop { z-index: 1000; background: rgba(30, 14, 18, .52); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.modal { border: 1px solid rgba(255,255,255,.65); border-radius: 20px; box-shadow: 0 32px 90px rgba(36, 12, 18, .27); }
.modal-close { border-radius: 50%; }
.field input,
.field select,
.field textarea { border-radius: 10px; background: #fff; }
.primary-button { border-radius: 9px; background: var(--wine-900); }
.secondary-button,
.danger-button { border-radius: 9px; }

@keyframes sunwineFadeUp {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes sunwinePanelIn {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: translateX(0); }
}

.page-transition-in { animation: sunwineFadeUp .28s cubic-bezier(.22,.75,.25,1) both; }

@media (max-width: 1180px) and (min-width: 901px) {
  :root { --app-rail: 205px; }
  .overview-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .today-card { grid-template-columns: 30px 64px minmax(160px, 1fr) minmax(220px, .8fr); }
  .today-card-actions { grid-column: 3 / -1; justify-content: flex-end; }
  .desktop-topbar { padding-inline: 25px; }
}

@media (max-width: 900px) {
  html { min-height: 100%; }
  body {
    min-height: 100dvh;
    padding: 0 0 calc(82px + env(safe-area-inset-bottom));
    overflow-x: hidden;
    overscroll-behavior-y: auto;
    background: var(--surface-soft);
  }

  .app-shell {
    position: relative;
    display: block;
    min-height: 100dvh;
  }

  .workspace-shell { min-height: 100dvh; }
  .sidebar,
  .desktop-topbar { display: none !important; }

  .mobile-topbar {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    z-index: 60;
    display: flex;
    height: calc(76px + env(safe-area-inset-top));
    align-items: flex-end;
    justify-content: space-between;
    padding: calc(12px + env(safe-area-inset-top)) 18px 12px;
    border-bottom: 1px solid rgba(225, 216, 211, .85);
    background: rgba(247,244,240,.92);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  .mobile-brand-button {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    color: var(--wine-900);
    background: transparent;
  }

  .mobile-brand-button img { width: 33px; height: 33px; object-fit: contain; }
  .mobile-brand-button span { display: grid; justify-items: start; }
  .mobile-brand-button strong { font-family: "Playfair Display", Georgia, serif; font-size: 14px; letter-spacing: .09em; }
  .mobile-brand-button small { margin-top: -1px; font-size: 6px; letter-spacing: .22em; }
  .mobile-topbar-actions { display: flex; align-items: center; gap: 8px; }

  .mobile-topbar .topbar-icon-button,
  .mobile-avatar {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 50%;
    color: var(--wine-900);
    background: rgba(255,255,255,.72);
    box-shadow: 0 5px 15px rgba(49,20,27,.08);
  }

  .mobile-avatar {
    display: grid;
    place-items: center;
    color: #fff;
    background: linear-gradient(145deg, #9d3a52, #5d1729);
    font-size: 10px;
    font-weight: 800;
  }

  body:has(.today-page) .mobile-topbar {
    border-bottom: 0;
    color: #fff;
    background: linear-gradient(180deg, rgba(12,10,15,.45), transparent);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  body:has(.today-page) .mobile-brand-button { color: #e1bf84; }
  body:has(.today-page) .mobile-brand-button img { filter: sepia(1) saturate(.85) brightness(1.55); }
  body:has(.today-page) .mobile-topbar .topbar-icon-button { color: #fff; background: rgba(20,14,18,.27); }

  .main-content {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    padding: calc(90px + env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) 20px max(14px, env(safe-area-inset-left));
    overflow: visible;
  }

  body:has(.today-page) .main-content {
    padding-top: 0;
    padding-right: 0;
    padding-left: 0;
  }

  body:has(.today-page) .error-banner { margin: calc(82px + env(safe-area-inset-top)) 14px -60px; position: relative; z-index: 8; }
  .page-stack,
  .cash-page,
  .notification-page,
  .sw-ops-root,
  .restaurant-admin-root { gap: 14px; }

  body:has(.today-page) .today-page { gap: 14px; }
  body:has(.today-page) .today-page > :not(.today-mobile-hero) { margin-inline: max(14px, env(safe-area-inset-left)); }

  .today-mobile-hero {
    position: relative;
    display: flex;
    min-height: min(470px, 55svh);
    flex-direction: column;
    justify-content: flex-end;
    margin: 0 !important;
    padding: calc(94px + env(safe-area-inset-top)) 18px 19px;
    overflow: hidden;
    color: #fff;
    background-image:
      linear-gradient(180deg, rgba(17,12,16,.18) 0%, rgba(32,16,20,.18) 35%, rgba(35,14,21,.82) 100%),
      url('/sunwine-dashboard-hero.webp');
    background-position: center;
    background-size: cover;
    box-shadow: 0 18px 38px rgba(34,15,20,.18);
  }

  .today-mobile-hero::after {
    content: "";
    position: absolute;
    inset: auto 0 0;
    height: 45%;
    background: linear-gradient(180deg, transparent, rgba(37,13,20,.36));
    pointer-events: none;
  }

  .today-mobile-hero-copy,
  .today-mobile-hero-stats { position: relative; z-index: 1; }
  .today-mobile-hero-copy p { margin: 0 0 2px; color: rgba(255,255,255,.91); font-size: 15px; }
  .today-mobile-hero-copy h1 { margin: 0; color: #fff; font-size: clamp(29px, 8.4vw, 39px); line-height: 1.05; }
  .today-mobile-hero-copy h1 span { font-family: Manrope, sans-serif; font-size: .6em; }
  .today-mobile-hero-copy small { display: block; margin-top: 8px; color: rgba(255,255,255,.72); font-size: 10px; }

  .today-mobile-hero-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
  }

  .today-mobile-hero-stats article {
    min-width: 0;
    padding: 11px 8px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 11px;
    background: rgba(26,17,21,.31);
    text-align: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .today-mobile-hero-stats strong,
  .today-mobile-hero-stats span,
  .today-mobile-hero-stats small { display: block; }
  .today-mobile-hero-stats strong { font-family: "Playfair Display", Georgia, serif; font-size: 25px; line-height: 1; }
  .today-mobile-hero-stats span { margin-top: 4px; font-size: 9px; font-weight: 800; }
  .today-mobile-hero-stats small { margin-top: 1px; color: rgba(255,255,255,.62); font-size: 7px; }

  .today-topbar {
    display: flex;
    min-height: 66px;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--soft-shadow);
  }

  .today-topbar .heading-copy { min-width: 0; }
  .today-topbar .heading-copy .eyebrow,
  .today-topbar .heading-copy > p:last-child { display: none; }
  .today-topbar .heading-copy h1 { margin: 0; font-size: 23px; white-space: nowrap; }
  .today-date-controls { flex: 0 0 auto; }
  .today-current-date span { display: none; }
  .today-date-arrow,
  .today-calendar-button { width: 38px; height: 38px; }
  .today-current-date { min-width: 60px; }
  .staff-mobile-guest-summary,
  .today-summary { display: none !important; }

  .today-date-drawer { padding: 13px; }
  .today-date-picker-actions { grid-template-columns: 1fr; }
  .guest-allocation-shortcut { min-height: 68px; padding: 12px; border-radius: 13px; }
  .guest-allocation-shortcut > span:nth-child(2) strong { font-size: 11px; }
  .guest-allocation-shortcut > span:nth-child(2) small { font-size: 9px; }

  .guest-section { border-radius: 14px; }
  .panel-title { min-height: 54px; padding: 13px 14px; }
  .panel-title h2 { font-size: 13px; }
  .today-card {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr) auto;
    gap: 10px;
    min-height: 0;
    padding: 14px 12px;
    border-radius: 0;
  }

  .today-card .guest-avatar { display: none; }
  .today-card .room-badge { grid-row: 1 / span 2; width: 54px; min-width: 54px; min-height: 52px; border-radius: 11px; font-size: 15px; }
  .today-card .room-badge small { font-size: 8px; }
  .today-card .guest-info { grid-column: 2 / 3; min-width: 0; }
  .today-card .guest-info strong { font-size: 13px; }
  .today-card .guest-info span { display: block; margin-top: 3px; font-size: 9px; line-height: 1.45; }
  .today-card .guest-info small { font-size: 8px; }
  .today-card .stay-period { grid-column: 2 / -1; gap: 5px; max-width: none; padding: 5px; border-radius: 10px; }
  .today-card .stay-period > div { min-height: 43px; padding: 7px 8px; }
  .today-card .stay-period small { font-size: 7px; }
  .today-card .stay-period strong { font-size: 10px; }
  .today-card-actions { grid-column: 3 / 4; grid-row: 1; align-self: start; gap: 5px; }
  .today-card-actions .payment-toggle { width: 34px; min-width: 34px; height: 34px; padding: 0; border-radius: 10px; }
  .today-card-actions .payment-toggle span:not(.payment-knob) { display: none; }
  .today-card-actions .payment-knob { position: static; width: 14px; height: 14px; }
  .today-card-actions .arrival-toggle { max-width: 76px; min-height: 34px; padding: 5px 7px; font-size: 7px; }
  .today-card-actions .card-chevron { display: none; }

  .page-heading:not(.today-topbar) {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 0 2px 4px;
  }

  .page-heading:not(.today-topbar) h1 { font-size: clamp(29px, 8.4vw, 38px); }
  .page-heading:not(.today-topbar) p { font-size: 10px; }
  .heading-actions { width: 100%; justify-content: flex-start; }
  .calendar-page-heading .heading-actions { gap: 7px; }
  .calendar-view-switch { order: -1; width: 100%; }
  .calendar-view-switch button { flex: 1; justify-content: center; }
  .heading-actions .icon-text-button span { display: none; }
  .heading-actions .icon-text-button { width: 40px; min-width: 40px; height: 40px; padding: 0; justify-content: center; }
  .date-panel-toggle { margin-left: auto; }

  .calendar-search-wrap { position: relative; z-index: 5; }
  .calendar-search-box { min-height: 48px; }
  .calendar-move-hint { padding: 11px; border-radius: 12px; }
  .calendar-move-hint strong { font-size: 9px; }
  .calendar-move-hint span { font-size: 8px; }
  .unassigned-zone { border-radius: 13px; }
  .calendar-shell { margin-right: -14px; margin-left: -14px; border-right: 0; border-left: 0; border-radius: 0; }
  .calendar-grid { --cell-height: 91px; }
  .booking-block { padding: 8px; }
  .booking-block strong { font-size: 9px; }
  .booking-card-stats { font-size: 7px; }

  .calendar-agenda { border-radius: 14px; }
  .agenda-month-row { min-height: 55px; gap: 14px; padding: 8px 12px; }
  .agenda-month-row strong { min-width: 150px; font-size: 17px; }
  .agenda-week-strip { gap: 3px; padding: 9px 8px; overflow: hidden; }
  .agenda-day { min-height: 52px; padding: 5px 2px; border-radius: 9px; }
  .agenda-day span { font-size: 7px; }
  .agenda-day strong { font-size: 14px; }
  .agenda-filters { gap: 5px; padding: 11px 10px 5px; overflow-x: auto; scrollbar-width: none; }
  .agenda-filters::-webkit-scrollbar { display: none; }
  .agenda-filters button { flex: 0 0 auto; padding: 7px 9px; font-size: 9px; }
  .agenda-list { padding: 5px 10px 12px; }
  .agenda-event { grid-template-columns: 42px 3px minmax(0, 1fr) auto; min-height: 76px; gap: 9px; padding-right: 4px; }
  .agenda-time { font-size: 10px; }
  .agenda-event-copy strong { font-size: 11px; }
  .agenda-event-copy small { font-size: 8px; }
  .agenda-room { min-width: 42px; font-size: 9px; }
  .agenda-chevron { display: none; }

  .mobile-bottom-nav {
    position: fixed;
    right: max(10px, env(safe-area-inset-right));
    bottom: max(9px, env(safe-area-inset-bottom));
    left: max(10px, env(safe-area-inset-left));
    z-index: 180;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    min-height: 65px;
    align-items: center;
    padding: 6px 7px;
    border: 1px solid rgba(255,255,255,.74);
    border-radius: 21px;
    background: rgba(255,255,255,.93);
    box-shadow: 0 18px 48px rgba(48, 16, 25, .2);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  .mobile-nav-item {
    display: grid;
    min-width: 0;
    min-height: 52px;
    place-items: center;
    align-content: center;
    gap: 3px;
    padding: 5px 2px;
    border: 0;
    border-radius: 14px;
    color: #8b8180;
    background: transparent;
  }

  .mobile-nav-item span { max-width: 64px; overflow: hidden; font-size: 7px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-nav-item.active { color: var(--wine-900); background: #f5eaed; }
  .mobile-nav-action-wrap { display: grid; place-items: center; }
  .mobile-nav-action {
    display: grid;
    width: 54px;
    height: 54px;
    margin-top: -24px;
    place-items: center;
    border: 4px solid var(--surface-soft);
    border-radius: 50%;
    color: #fff;
    background: linear-gradient(145deg, #761f35, #42101d);
    box-shadow: 0 10px 22px rgba(75,20,34,.3);
  }

  .mobile-panel-layer {
    position: fixed;
    inset: 0;
    z-index: 850;
    display: block;
  }

  .mobile-panel-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    border: 0;
    background: rgba(20, 10, 13, .55);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    animation: sunwineFadeUp .2s ease both;
  }

  .mobile-nav-panel {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    display: flex;
    width: min(86vw, 350px);
    flex-direction: column;
    padding: calc(18px + env(safe-area-inset-top)) 16px calc(18px + env(safe-area-inset-bottom));
    overflow-y: auto;
    color: #fff;
    background:
      radial-gradient(circle at 0 0, rgba(181,138,82,.18), transparent 19rem),
      linear-gradient(155deg, #591426, #321019 72%);
    box-shadow: -24px 0 70px rgba(20,5,10,.3);
    animation: sunwinePanelIn .26s cubic-bezier(.22,.75,.25,1) both;
  }

  .mobile-nav-panel.quick-panel {
    top: auto;
    left: 10px;
    width: auto;
    max-height: min(520px, 78svh);
    border-radius: 24px 24px 0 0;
    animation-name: sunwineFadeUp;
  }

  .mobile-panel-head { display: flex; align-items: center; justify-content: space-between; }
  .mobile-panel-brand { display: flex; align-items: center; gap: 8px; color: #e2c18d; }
  .mobile-panel-brand img { width: 35px; height: 35px; filter: sepia(1) saturate(.85) brightness(1.55); }
  .mobile-panel-brand span { display: grid; }
  .mobile-panel-brand strong { font-family: "Playfair Display", Georgia, serif; font-size: 14px; letter-spacing: .08em; }
  .mobile-panel-brand small { font-size: 6px; letter-spacing: .22em; }
  .mobile-panel-close { display: grid; width: 38px; height: 38px; place-items: center; border: 0; border-radius: 50%; color: #fff; background: rgba(255,255,255,.09); }

  .mobile-panel-profile {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 22px 0 15px;
    padding: 14px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 13px;
    background: rgba(255,255,255,.055);
  }

  .mobile-panel-profile strong,
  .mobile-panel-profile small { display: block; }
  .mobile-panel-profile strong { font-size: 12px; }
  .mobile-panel-profile small { margin-top: 3px; color: rgba(255,255,255,.53); font-size: 9px; }
  .mobile-panel-title { display: grid; gap: 3px; margin: 21px 2px 13px; }
  .mobile-panel-title strong { font-family: "Playfair Display", Georgia, serif; font-size: 22px; }
  .mobile-panel-title span { color: rgba(255,255,255,.55); font-size: 9px; }
  .mobile-panel-nav { display: grid; gap: 4px; }

  .mobile-panel-item {
    display: flex;
    min-height: 47px;
    align-items: center;
    justify-content: space-between;
    padding: 10px 12px;
    border: 0;
    border-radius: 10px;
    color: rgba(255,255,255,.84);
    background: transparent;
    text-align: left;
  }

  .mobile-panel-item > span:first-child { display: flex; align-items: center; gap: 11px; font-size: 11px; font-weight: 700; }
  .mobile-panel-item:hover,
  .mobile-panel-item.active { color: #fff; background: rgba(139,37,60,.52); }
  .mobile-panel-item b { min-width: 22px; padding: 3px 6px; border-radius: 999px; color: #fff; background: #a9444c; font-size: 8px; text-align: center; }
  .mobile-panel-chevron { color: rgba(255,255,255,.35); font-size: 19px; }
  .mobile-panel-footer { display: grid; gap: 10px; margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(255,255,255,.1); }
  .mobile-panel-footer .language-switcher { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border-radius: 11px; background: rgba(255,255,255,.08); }
  .mobile-panel-footer .language-option { min-height: 36px; padding: 7px; border: 0; border-radius: 8px; color: rgba(255,255,255,.64); background: transparent; }
  .mobile-panel-footer .language-option.active { color: var(--wine-900); background: #fff; }
  .mobile-panel-footer .language-full { display: none; }
  .mobile-panel-logout { display: flex; min-height: 44px; align-items: center; gap: 10px; padding: 10px 12px; border: 0; border-radius: 10px; color: #fff; background: rgba(255,255,255,.07); font-size: 11px; font-weight: 800; }

  body:has(.mobile-panel-layer) { overflow: hidden; }
  body:has(.modal-backdrop) .mobile-bottom-nav { opacity: 0; transform: translateY(110%); pointer-events: none; }

  .modal-backdrop {
    align-items: flex-end;
    height: 100dvh;
    min-height: 100svh;
    padding: max(8px, env(safe-area-inset-top)) 0 0;
    overflow: hidden;
  }

  .modal {
    width: 100%;
    max-width: none;
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top)));
    padding: 21px 15px calc(18px + env(safe-area-inset-bottom));
    overflow-y: auto;
    border: 0;
    border-radius: 24px 24px 0 0;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal::before {
    content: "";
    display: block;
    width: 42px;
    height: 4px;
    margin: -9px auto 12px;
    border-radius: 999px;
    background: #ddd4d0;
  }

  .modal h2 { font-size: clamp(25px, 7.4vw, 32px); }
  .modal-actions { position: sticky; bottom: calc(-18px - env(safe-area-inset-bottom)); z-index: 3; margin: 17px -15px calc(-18px - env(safe-area-inset-bottom)); padding: 11px 15px calc(11px + env(safe-area-inset-bottom)); border-top: 1px solid var(--border); background: rgba(255,255,255,.94); backdrop-filter: blur(16px); }
  .modal-actions button { min-height: 44px; }
  .field input,
  .field select,
  .field textarea,
  .modal input,
  .modal select,
  .modal textarea { font-size: 16px; }

  .cash-hero,
  .restaurant-admin-header,
  .sw-hero { border-radius: 14px !important; }
  .restaurant-summary { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .notification-overview { grid-template-columns: repeat(3, minmax(150px, 1fr)); overflow-x: auto; padding-bottom: 4px; }
  .notification-overview article { min-width: 150px; }

  .toast-root,
  .sw-toast-root,
  .restaurant-toast-root { right: 12px; bottom: calc(88px + env(safe-area-inset-bottom)); left: 12px; z-index: 1200; }
}

@media (max-width: 520px) {
  .main-content { padding-inline: max(11px, env(safe-area-inset-left)) max(11px, env(safe-area-inset-right)); }
  body:has(.today-page) .today-page > :not(.today-mobile-hero) { margin-inline: max(11px, env(safe-area-inset-left)); }
  .today-mobile-hero { min-height: min(440px, 54svh); padding-inline: 15px; }
  .today-mobile-hero-stats { gap: 6px; }
  .today-mobile-hero-stats article { padding-inline: 5px; }
  .today-topbar { padding-inline: 10px; }
  .today-topbar .heading-copy h1 { font-size: 20px; }
  .today-date-arrow,
  .today-calendar-button { width: 35px; height: 35px; }
  .today-current-date { min-width: 51px; font-size: 9px; }
  .calendar-shell { margin-right: -11px; margin-left: -11px; }
  .mobile-bottom-nav { right: 7px; left: 7px; border-radius: 19px; }
  .mobile-nav-action { width: 51px; height: 51px; }
  .mobile-nav-item span { font-size: 6.5px; }
  .agenda-week-strip { padding-inline: 5px; }
  .agenda-day { min-height: 49px; }
  .restaurant-admin-root,
  .sw-ops-root { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}


/* 2026-08-15 mobile localization and control fixes */
@media (max-width: 900px) {
  .mobile-panel-brand img,
  body:has(.today-page) .mobile-brand-button img {
    filter: contrast(1.28) saturate(1.18) !important;
  }

  .mobile-panel-brand img {
    width: 42px;
    height: 42px;
    padding: 2px;
    border: 1px solid rgba(226,193,141,.46);
    border-radius: 9px;
    background: #fbf1e4;
    object-fit: cover;
  }

  .mobile-panel-brand strong {
    color: #f0cf98;
    text-shadow: 0 1px 10px rgba(0,0,0,.22);
  }

  .mobile-panel-footer .language-switcher {
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    color: #fff !important;
    box-shadow: none !important;
  }

  .mobile-panel-footer .language-option {
    display: grid !important;
    min-width: 0 !important;
    place-items: center;
    color: rgba(255,255,255,.78) !important;
    font-size: 10px !important;
    line-height: 1 !important;
  }

  .mobile-panel-footer .language-option.active {
    color: var(--wine-900) !important;
  }

  .mobile-panel-footer .language-short {
    display: inline !important;
    color: inherit !important;
    opacity: 1 !important;
  }

  .mobile-panel-footer .language-full {
    display: none !important;
  }

  .today-date-picker-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: stretch !important;
    gap: 9px !important;
    width: 100%;
  }

  .today-date-picker-actions .date-picker,
  .today-date-picker-actions .date-picker input,
  .today-date-picker-actions .day-today {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }

  .today-date-picker-actions .day-today {
    min-height: 43px;
    padding: 9px 11px !important;
    white-space: normal;
    line-height: 1.25;
  }

  .today-mobile-hero-stats article {
    display: grid;
    align-content: center;
    min-height: 77px;
    padding: 10px 5px;
  }

  .today-mobile-hero-stats strong { font-size: 23px; }
  .today-mobile-hero-stats span { font-size: 8px; line-height: 1.25; }
  .today-mobile-hero-stats small { font-size: 7px; line-height: 1.25; }

  html[data-language="ka"] .today-mobile-hero-copy p {
    font-size: 12px;
  }

  html[data-language="ka"] .today-mobile-hero-copy h1 {
    max-width: calc(100vw - 36px);
    font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
    font-size: clamp(23px, 6.5vw, 29px);
    line-height: 1.18;
    letter-spacing: -.035em;
    overflow-wrap: anywhere;
  }

  html[data-language="ka"] .today-mobile-hero-copy small {
    font-size: 9px;
  }

  html[data-language="ka"] .today-mobile-hero-stats strong {
    font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
    font-size: 22px;
  }

  html[data-language="ka"] .today-mobile-hero-stats span {
    font-size: 7.5px;
  }

  html[data-language="ka"] .today-mobile-hero-stats small {
    font-size: 6.7px;
  }

  html[data-language="ka"] .today-topbar h1 {
    font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
    font-size: 21px;
    letter-spacing: -.025em;
  }

  html[data-language="ka"] .today-date-picker-actions .day-today {
    font-size: 10px;
  }

  html[data-language="ka"] .date-drawer-copy strong {
    font-size: 12px;
    line-height: 1.35;
  }
}

/* SUNWINE staff dashboard refinements */
.day-page-heading { align-items: center; }
.date-navigator {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.78);
  box-shadow: 0 8px 24px rgba(65, 35, 40, .05);
}
.date-picker {
  display: grid;
  gap: 4px;
  min-width: 158px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.date-picker input {
  width: 100%;
  height: 40px;
  border: 1px solid #d9ccc8;
  border-radius: 11px;
  padding: 7px 10px;
  color: #3f3236;
  background: #fff;
  font-weight: 750;
  outline: none;
}
.date-picker input:focus { border-color: #8f3649; box-shadow: 0 0 0 3px rgba(143,54,73,.10); }
.calendar-picker { min-width: 175px; }

.overview-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.overview-card {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 88px;
  padding: 17px 19px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 30px rgba(65,35,40,.045);
}
.overview-card.arrivals { background: linear-gradient(145deg, #fff, #f3faf5); }
.overview-card.departures { background: linear-gradient(145deg, #fff, #fff8ef); }
.overview-card.staying { background: linear-gradient(145deg, #fff, #f8f1f4); }
.overview-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 14px;
  background: var(--wine-100);
  color: var(--wine-800);
  font-size: 20px;
}
.overview-card > div { display: grid; gap: 1px; }
.overview-card strong { color: var(--wine-900); font-size: 26px; line-height: 1; }
.overview-card > div > span { color: var(--muted); font-size: 12px; font-weight: 750; }

.guest-section { overflow: hidden; }
.panel-title-icon {
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  border-radius: 9px;
  background: var(--wine-100);
  color: var(--wine-800);
  font-size: 14px;
}
.today-card {
  grid-template-columns: 46px 64px minmax(190px, 1fr) minmax(210px, auto) auto;
  gap: 13px;
  min-height: 92px;
  padding: 15px 18px;
  transition: background .15s, transform .15s;
}
.today-card:hover { background: #fcf8f6; }
.guest-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: linear-gradient(145deg, #f7ecef, #f2e2e6);
  font-size: 19px;
}
.room-badge {
  width: 58px;
  min-height: 50px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1px;
}
.room-badge small { font-size: 9px; opacity: .68; }
.guest-info strong { color: #34292c; font-size: 15px; }
.guest-info small { max-width: 540px; }
.stay-period {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 9px;
  padding: 9px 12px;
  border: 1px solid #eee5e1;
  border-radius: 13px;
  background: #fbf8f6;
}
.stay-period > div { display: grid; gap: 2px; min-width: 66px; }
.stay-period small { color: #8b7e82; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.stay-period strong { color: #54474b; font-size: 12px; }
.stay-arrow { color: #af9ea3; font-size: 14px; }
.today-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.card-chevron {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: #f1ebe8;
  color: #6a5d61;
  font-size: 20px;
}
.empty-state { display: grid; justify-items: center; gap: 7px; }
.empty-state > span { color: #b7a9ad; font-size: 22px; }

.calendar-toolbar {
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: rgba(255,255,255,.72);
}
.calendar-day {
  appearance: none;
  border-top: 0;
  border-left: 0;
  border-right: 1px solid #eee6e2;
  border-bottom: 1px solid #eee6e2;
  cursor: pointer;
  font-family: inherit;
}
.calendar-day:hover { background: #f2e9ec; color: var(--wine-800); }
.calendar-day:focus-visible { outline: 3px solid rgba(125,38,56,.18); outline-offset: -3px; }
.calendar-room { font-variant-numeric: tabular-nums; }
.booking-block span { opacity: .9; }

@media (max-width: 1100px) {
  .today-card { grid-template-columns: 46px 62px minmax(180px, 1fr) auto; }
  .stay-period { grid-column: 3 / 4; justify-self: start; }
  .today-card-actions { grid-column: 4; grid-row: 1 / span 2; }
}

@media (max-width: 860px) {
  .date-navigator { width: 100%; }
  .overview-cards { grid-template-columns: repeat(3, minmax(110px, 1fr)); overflow-x: auto; }
  .overview-card { min-width: 130px; padding: 14px; }
  .today-card { grid-template-columns: 42px 58px minmax(0, 1fr) auto; }
  .guest-avatar { width: 38px; height: 38px; border-radius: 12px; }
  .stay-period { grid-column: 2 / 4; justify-self: stretch; justify-content: flex-start; }
  .today-card-actions { grid-column: 4; grid-row: 1 / span 2; flex-direction: column-reverse; }
  .calendar-toolbar { align-items: flex-end; }
}

@media (max-width: 560px) {
  .date-navigator { display: grid; grid-template-columns: 40px minmax(0, 1fr) 40px; }
  .date-navigator .day-today { grid-column: 1 / -1; }
  .date-picker { min-width: 0; }
  .overview-cards { grid-template-columns: repeat(3, 132px); }
  .overview-card { min-height: 76px; }
  .overview-icon { width: 38px; height: 38px; }
  .today-card {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 10px;
    padding: 14px;
  }
  .guest-avatar { grid-row: 1; }
  .room-badge { grid-column: 1; grid-row: 2; width: 40px; min-height: 38px; border-radius: 10px; }
  .guest-info { grid-column: 2; grid-row: 1; }
  .stay-period { grid-column: 2 / 4; grid-row: 2; padding: 8px 10px; }
  .today-card-actions { grid-column: 3; grid-row: 1; flex-direction: column-reverse; }
  .today-card .payment-toggle { grid-column: auto; }
  .payment-toggle { padding-right: 7px; }
  .payment-toggle > span:last-child { display: none; }
  .calendar-picker { width: 100%; }
  .calendar-range { width: 100%; text-align: center; }
}

/* ============================================================
   SUNWINE — PREMIUM RECEPTION UI · 2026-07-25
   ============================================================ */
:root {
  font-family: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --wine-950: #2b0b14;
  --wine-900: #43111f;
  --wine-800: #611b2d;
  --wine-700: #7d2a3e;
  --wine-100: #f7eaee;
  --gold-500: #b98235;
  --surface-soft: #fbf8f6;
  --border: #eadfdb;
  --muted: #796d71;
  --shadow: 0 18px 55px rgba(67, 17, 31, .075);
}

body {
  background:
    radial-gradient(circle at 90% 0%, rgba(185,130,53,.075), transparent 27rem),
    linear-gradient(180deg, #f8f4f1 0%, #f5f1ed 100%);
  color: #2f2528;
  letter-spacing: -.005em;
}

.ui-icon { display: block; flex: 0 0 auto; }
button { transition: transform .15s ease, background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease; }
button:active { transform: scale(.97); }

.brand { display: flex; align-items: center; gap: 12px; }
.brand-logo-wrap {
  width: 43px;
  height: 43px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 15px;
  background: linear-gradient(145deg, #f7e5b8, #e8c47d);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.65), 0 8px 24px rgba(34,7,14,.18);
}
.brand-logo { width: 35px; height: 35px; object-fit: contain; }
.brand-copy { display: grid; gap: 1px; min-width: 0; }
.brand-copy strong { font-size: 17px; font-weight: 800; letter-spacing: .11em; }
.brand-copy span { color: rgba(255,255,255,.58); font-size: 9px; font-weight: 700; letter-spacing: .11em; text-transform: uppercase; }
.auth-shell .brand-copy span { color: #9b858b; }

.sidebar {
  padding: 25px 17px 18px;
  background:
    radial-gradient(circle at 20% 0%, rgba(190,126,57,.17), transparent 18rem),
    linear-gradient(180deg, #4a1323 0%, #2c0b15 100%);
  box-shadow: 10px 0 45px rgba(50,10,21,.10);
}
.sidebar .brand { padding: 0 8px 29px; }
.sidebar-nav { gap: 7px; }
.nav-button,
.sidebar-bottom .ghost-button {
  min-height: 48px;
  border: 1px solid transparent;
  border-radius: 15px;
  font-weight: 720;
}
.nav-button { color: rgba(255,255,255,.72); }
.nav-button:hover,
.nav-button.active {
  background: rgba(255,255,255,.105);
  border-color: rgba(255,255,255,.075);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.nav-button.active { color: #fff; }
.nav-button.active .nav-icon { color: #f1c979; }
.nav-icon { display: grid; place-items: center; color: currentColor; }
.sidebar-bottom .ghost-button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 11px;
  color: rgba(255,255,255,.72);
}
.sidebar-bottom .ghost-button:hover { background: rgba(255,255,255,.10); color: #fff; }
.role-chip { border: 1px solid rgba(255,255,255,.07); background: rgba(255,255,255,.055); }

.main-content { padding: 34px clamp(20px, 3vw, 46px); }
.page-stack { gap: 22px; }
.page-heading { align-items: center; }
.heading-copy { min-width: 0; }
.page-heading h1 {
  margin: 4px 0 5px;
  color: #3a1020;
  font-size: clamp(32px, 3vw, 43px);
  font-weight: 800;
  letter-spacing: -.045em;
  line-height: 1.05;
}
.page-heading p { font-size: 13px; line-height: 1.55; }
.eyebrow { color: #9a6a38 !important; font-size: 10px !important; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.heading-actions { align-items: center; }

.date-panel-toggle,
.icon-text-button {
  min-height: 44px;
  border: 1px solid #dfd2ce;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px 13px;
  color: #59484e;
  background: rgba(255,255,255,.82);
  box-shadow: 0 8px 25px rgba(67,17,31,.045);
  cursor: pointer;
  font-size: 12px;
  font-weight: 760;
  white-space: nowrap;
}
.date-panel-toggle:hover,
.date-panel-toggle.active,
.icon-text-button:hover {
  border-color: #b9939d;
  color: var(--wine-800);
  background: #fff;
  box-shadow: 0 10px 30px rgba(67,17,31,.08);
}
.date-panel-toggle > .ui-icon:last-child { transition: transform .2s ease; }
.date-panel-toggle.active > .ui-icon:last-child { transform: rotate(180deg); }

.date-drawer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 17px;
  border: 1px solid #e4d8d4;
  border-radius: 19px;
  background: rgba(255,255,255,.88);
  box-shadow: 0 14px 42px rgba(67,17,31,.055);
  animation: date-drawer-in .18s ease-out;
}
@keyframes date-drawer-in { from { opacity: 0; transform: translateY(-5px); } }
.date-drawer-copy { display: grid; gap: 4px; min-width: 180px; }
.date-drawer-copy strong { color: #4a333a; font-size: 14px; }
.date-drawer-copy span { color: var(--muted); font-size: 11px; }
.date-navigator,
.calendar-toolbar {
  border: 0;
  padding: 0;
  background: transparent;
  box-shadow: none;
}
.date-navigator { justify-content: flex-end; }
.date-picker span { font-size: 9px; }
.date-picker input { height: 42px; border-radius: 12px; }

.panel { border-color: rgba(219,204,199,.78); box-shadow: var(--shadow); }
.overview-cards { gap: 14px; }
.overview-card {
  min-height: 96px;
  padding: 18px 20px;
  border-radius: 21px;
  border-color: rgba(225,211,207,.78);
  box-shadow: 0 14px 40px rgba(67,17,31,.045);
}
.overview-card.arrivals { background: linear-gradient(145deg, #fff 15%, #edf8f1 100%); }
.overview-card.departures { background: linear-gradient(145deg, #fff 15%, #fff4e8 100%); }
.overview-card.staying { background: linear-gradient(145deg, #fff 15%, #f7eaf0 100%); }
.overview-icon {
  width: 47px;
  height: 47px;
  border-radius: 16px;
  background: rgba(97,27,45,.08);
}
.overview-card.arrivals .overview-icon { color: #28754b; background: rgba(40,117,75,.10); }
.overview-card.departures .overview-icon { color: #9c662b; background: rgba(156,102,43,.11); }
.overview-card strong { font-size: 29px; font-weight: 800; letter-spacing: -.04em; }
.overview-card > div > span { font-size: 11px; font-weight: 700; letter-spacing: .01em; }

.panel-title { min-height: 62px; padding: 17px 20px; }
.panel-title h2 { font-size: 16px; font-weight: 790; letter-spacing: -.015em; }
.panel-title-icon { width: 32px; height: 32px; border-radius: 11px; }

.today-card {
  grid-template-columns: 46px 66px minmax(210px, 1fr) minmax(270px, auto) auto;
  min-height: 104px;
  gap: 16px;
  padding: 17px 20px;
}
.guest-avatar {
  color: var(--wine-700);
  background: linear-gradient(145deg, #f8ecef, #f1dfe4);
}
.room-badge {
  width: 62px;
  min-height: 54px;
  border: 1px solid #ead8bd;
  background: linear-gradient(145deg, #fff9ed, #f7e8ce);
  color: #7b511f;
  font-size: 14px;
}
.guest-info { gap: 6px; }
.guest-info strong { font-size: 16px; font-weight: 780; letter-spacing: -.015em; }
.guest-info span { font-size: 12px; }
.guest-info small { font-size: 11px; }
.stay-period {
  gap: 12px;
  padding: 7px;
  border: 1px solid #eadfdb;
  border-radius: 17px;
  background: #f8f4f2;
}
.stay-period > div {
  min-width: 100px;
  gap: 4px;
  padding: 10px 12px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 12px rgba(67,17,31,.035);
}
.stay-period > div:first-child { border-left: 3px solid #4b9a69; }
.stay-period > div:last-child { border-left: 3px solid #c48a43; }
.stay-period small { font-size: 8px; letter-spacing: .11em; }
.stay-period strong { color: #44363a; font-size: 13px; font-weight: 780; }
.stay-arrow {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #eee5e2;
  color: #8f7e83;
  font-size: 12px;
}
.card-chevron { border-radius: 12px; }

.calendar-shell { border-radius: 22px; }
.calendar-grid { grid-template-columns: 82px repeat(14, minmax(100px, 1fr)); }
.calendar-corner,
.calendar-day { background: #fbf8f6; }
.calendar-day { min-height: 58px; }
.calendar-day strong { color: #4c3940; font-size: 15px; }
.calendar-day span { font-size: 9px; font-weight: 750; }
.calendar-day.today { background: #f5e6eb; }
.calendar-room { padding: 20px 12px; font-size: 13px; }
.calendar-cell { min-height: 67px; }
.booking-block { min-height: 54px; border-radius: 11px; padding: 8px; box-shadow: 0 5px 14px rgba(67,17,31,.12); }
.booking-block strong { font-size: 11px; }
.booking-block span { font-size: 9px; }

.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.settings-card-featured {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 17px;
  padding: 24px;
}
.settings-card-featured > div { flex: 1; }
.settings-card-icon {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  color: var(--wine-800);
  background: var(--wine-100);
}
.settings-card h2 { margin: 0 0 8px; font-size: 19px; }
.settings-card p { margin: 0; font-size: 13px; }

.auth-shell { border-radius: 28px; box-shadow: 0 28px 90px rgba(50,10,21,.14); }
.auth-shell h1 { font-weight: 800; letter-spacing: -.045em; }

@media (max-width: 1100px) {
  .today-card { grid-template-columns: 44px 62px minmax(170px, 1fr) auto; }
  .stay-period { grid-column: 3 / 4; justify-self: start; }
}

@media (max-width: 860px) {
  body { padding-bottom: 94px; }
  .app-shell { display: block; }
  .sidebar {
    position: fixed;
    inset: auto 10px 10px 10px;
    z-index: 60;
    width: auto;
    height: 74px;
    padding: 7px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 23px;
    display: flex;
    align-items: stretch;
    gap: 4px;
    background: rgba(53,12,23,.96);
    box-shadow: 0 18px 55px rgba(35,7,14,.32);
    backdrop-filter: blur(18px);
  }
  .sidebar .brand,
  .connection,
  .role-chip { display: none; }
  .sidebar-nav {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    justify-content: space-around;
    gap: 3px;
    overflow: visible;
  }
  .sidebar-bottom {
    margin: 0;
    flex: 0 0 auto;
    display: flex;
    gap: 3px;
  }
  .nav-button,
  .sidebar-bottom .ghost-button {
    width: auto;
    min-width: 52px;
    height: 60px;
    min-height: 60px;
    margin: 0;
    padding: 6px 7px;
    border-radius: 17px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    color: rgba(255,255,255,.72);
    font-size: 10px;
    line-height: 1;
  }
  .nav-button.active { background: rgba(255,255,255,.12); color: #fff; }
  .nav-label,
  .sidebar-bottom .settings-label,
  .sidebar-bottom .logout-label {
    display: block !important;
    max-width: 58px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: inherit;
    font-size: 8.5px;
    font-weight: 700;
  }
  .sidebar-bottom .ghost-button { font-size: 10px; }
  .sidebar-bottom .logout-button { color: #f1c5cc; }
  .main-content { padding: 22px 14px 10px; }
  .page-heading { align-items: flex-start; flex-direction: column; gap: 13px; }
  .heading-actions { width: 100%; justify-content: flex-start; }
  .date-panel-toggle { max-width: 100%; }
  .date-panel-toggle span { overflow: hidden; text-overflow: ellipsis; }
  .date-drawer { align-items: stretch; flex-direction: column; }
  .date-drawer-copy { min-width: 0; }
  .date-navigator,
  .calendar-toolbar { width: 100%; justify-content: flex-start; }
  .overview-cards { grid-template-columns: repeat(3, minmax(132px, 1fr)); overflow-x: auto; padding-bottom: 4px; }
  .overview-card { min-width: 132px; }
  .today-card { grid-template-columns: 42px 58px minmax(0,1fr) auto; }
  .stay-period { grid-column: 2 / 4; justify-self: stretch; }
  .today-card-actions { grid-column: 4; grid-row: 1 / span 2; }
  .settings-grid { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .page-heading h1 { font-size: 34px; }
  .heading-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .heading-actions .date-panel-toggle { width: 100%; }
  .heading-actions .icon-text-button { width: 44px; padding: 10px; }
  .heading-actions .icon-text-button span { display: none; }
  .date-navigator,
  .calendar-toolbar { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; gap: 8px; }
  .date-navigator .secondary-button,
  .calendar-toolbar .secondary-button { grid-column: 1 / -1; }
  .date-picker { min-width: 0; }
  .overview-cards { grid-template-columns: repeat(3, 138px); }
  .overview-card { min-height: 82px; padding: 14px; border-radius: 18px; }
  .overview-icon { width: 39px; height: 39px; border-radius: 13px; }
  .overview-card strong { font-size: 25px; }
  .today-card {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    min-height: 0;
    gap: 10px;
    padding: 15px 13px;
  }
  .guest-avatar { grid-column: 1; grid-row: 1; }
  .room-badge { grid-column: 1; grid-row: 2; width: 40px; min-height: 40px; font-size: 11px; }
  .guest-info { grid-column: 2; grid-row: 1; }
  .guest-info strong { font-size: 14px; }
  .guest-info span { font-size: 11px; }
  .stay-period { grid-column: 2 / 4; grid-row: 2; gap: 7px; padding: 6px; }
  .stay-period > div { min-width: 0; flex: 1 1 0; padding: 8px 9px; }
  .stay-period strong { font-size: 11px; }
  .stay-arrow { width: 22px; height: 22px; }
  .today-card-actions { grid-column: 3; grid-row: 1; }
  .payment-toggle > span:last-child { display: none; }
  .calendar-picker { width: auto; }
  .settings-card-featured { min-height: 0; }
  .modal { border-radius: 24px 24px 0 0; width: 100%; max-height: 92vh; align-self: end; }
  .modal-backdrop { align-items: end; padding: 0; }
}

@media (max-width: 360px) {
  .sidebar { inset-inline: 6px; bottom: 6px; }
  .nav-button,
  .sidebar-bottom .ghost-button { min-width: 48px; padding-inline: 5px; }
  .nav-label,
  .sidebar-bottom .settings-label,
  .sidebar-bottom .logout-label { font-size: 8px; max-width: 50px; }
}


/* Official SunWine Hotel logo */
.auth-brand {
  display: grid;
  place-items: center;
  padding: 2px 0 8px;
}
.auth-brand-logo {
  display: block;
  width: min(285px, 82vw);
  height: auto;
  border-radius: 22px;
  filter: drop-shadow(0 16px 30px rgba(72, 36, 12, .10));
}
.brand-logo-wrap {
  overflow: hidden;
  background: #fcf4e7;
  border: 1px solid rgba(207, 150, 59, .42);
}
.brand-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
}
.sidebar .brand-logo-wrap {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75), 0 8px 22px rgba(28,5,11,.20);
}
.auth-shell .eyebrow { text-align: center; }
.auth-shell > div:not(.auth-brand) { text-align: center; }
.auth-shell .form-stack { text-align: left; }

@media (max-width: 560px) {
  .auth-shell { padding: 24px 20px; }
  .auth-brand-logo { width: min(245px, 78vw); border-radius: 18px; }
}

/* Calendar drag-and-drop */
.calendar-move-hint {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 13px 15px;
  border: 1px solid rgba(122, 29, 45, .14);
  border-radius: 16px;
  background: linear-gradient(135deg, #fffaf8, #f8eef1);
  color: var(--wine-800);
}
.calendar-move-hint > .ui-icon {
  flex: 0 0 auto;
  margin-top: 2px;
}
.calendar-move-hint div {
  display: grid;
  gap: 3px;
}
.calendar-move-hint strong {
  font-size: 13px;
}
.calendar-move-hint span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}
.calendar-cell {
  position: relative;
  transition: background-color .14s ease, box-shadow .14s ease;
}
.calendar-cell.calendar-drop-target {
  z-index: 2;
  background: #e8f6ee;
  box-shadow: inset 0 0 0 3px rgba(35, 128, 78, .42);
}
.calendar-cell.calendar-drop-target::after {
  content: attr(data-drop-message);
  position: absolute;
  inset: 5px;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(35, 128, 78, .54);
  border-radius: 9px;
  color: #236b47;
  background: rgba(232, 246, 238, .88);
  font-size: 10px;
  font-weight: 900;
  text-align: center;
  pointer-events: none;
}
.calendar-cell.calendar-drop-invalid {
  z-index: 2;
  background: #fff0f0;
  box-shadow: inset 0 0 0 3px rgba(170, 54, 62, .42);
}
.calendar-cell.calendar-drop-invalid::after {
  content: attr(data-drop-message);
  position: absolute;
  inset: 5px;
  display: grid;
  place-items: center;
  border: 1px dashed rgba(170, 54, 62, .52);
  border-radius: 9px;
  color: #9a2f37;
  background: rgba(255, 240, 240, .9);
  padding: 4px;
  font-size: 9px;
  line-height: 1.15;
  font-weight: 900;
  text-align: center;
  overflow-wrap: anywhere;
  pointer-events: none;
}
.booking-block[data-calendar-booking="true"] {
  position: relative;
  padding-right: 28px;
  user-select: none;
  -webkit-user-select: none;
}
.booking-block[data-calendar-booking="true"] {
  cursor: grab;
}
.booking-block[draggable="true"]:active,
body.calendar-dragging .booking-block[data-calendar-booking="true"] {
  cursor: grabbing;
}
.booking-block.is-dragging {
  opacity: .34;
  filter: saturate(.55);
}
.booking-drag-handle {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 21px;
  height: 21px;
  display: grid !important;
  place-items: center;
  margin: 0 !important;
  border-radius: 7px;
  background: rgba(255, 255, 255, .18);
  color: #fff;
  opacity: .82 !important;
  touch-action: none;
  cursor: grab;
}
.booking-block:hover .booking-drag-handle {
  background: rgba(255, 255, 255, .28);
  opacity: 1 !important;
}
.calendar-drag-ghost {
  position: fixed !important;
  top: 0;
  left: 0;
  z-index: 200;
  min-height: 52px;
  margin: 0;
  pointer-events: none;
  opacity: .94;
  box-shadow: 0 18px 38px rgba(31, 8, 15, .30);
  transform-origin: top left;
}
body.calendar-dragging {
  cursor: grabbing;
  user-select: none;
  -webkit-user-select: none;
}
body.calendar-dragging .calendar-shell {
  scroll-behavior: auto;
}
.calendar-undo {
  border-color: rgba(122, 29, 45, .18);
  background: #fff7f8;
  color: var(--wine-800);
}

@media (max-width: 760px) {
  .calendar-move-hint {
    padding: 11px 12px;
  }
  .calendar-move-hint strong {
    font-size: 12px;
  }
  .calendar-move-hint span {
    font-size: 11px;
  }
  .booking-drag-handle {
    width: 25px;
    height: 25px;
    top: 4px;
    right: 4px;
    background: rgba(255, 255, 255, .25);
    opacity: 1 !important;
  }
  .booking-block[data-calendar-booking="true"] {
    padding-right: 34px;
  }
}


/* Calendar guest search */
.calendar-search-wrap {
  position: relative;
  z-index: 12;
}
.calendar-search-box {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 13px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  box-shadow: var(--shadow);
  color: var(--muted);
}
.calendar-search-box:focus-within {
  border-color: rgba(122, 29, 45, .42);
  box-shadow: 0 0 0 4px rgba(122, 29, 45, .08), var(--shadow);
  color: var(--wine-800);
}
.calendar-search-input {
  min-width: 0;
  flex: 1;
  height: 50px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 14px;
  font-weight: 700;
}
.calendar-search-input::placeholder {
  color: #9a8d91;
  font-weight: 600;
}
.calendar-search-input::-webkit-search-cancel-button {
  display: none;
}
.calendar-search-clear {
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border: 0;
  border-radius: 50%;
  background: #f4edef;
  color: var(--wine-800);
  cursor: pointer;
  font-size: 21px;
  line-height: 1;
}
.calendar-search-results {
  position: absolute;
  top: calc(100% + 7px);
  left: 0;
  right: 0;
  max-height: 360px;
  overflow: auto;
  padding: 7px;
  border: 1px solid var(--border);
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(54, 16, 27, .18);
}
.calendar-search-result {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 12px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  text-align: left;
}
.calendar-search-result:hover,
.calendar-search-result:focus-visible {
  background: #f8f0f2;
  outline: none;
}
.calendar-search-result-main {
  min-width: 0;
  display: grid;
  gap: 3px;
}
.calendar-search-result-main strong,
.calendar-search-result-main small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.calendar-search-result-main strong {
  font-size: 13px;
}
.calendar-search-result-main small {
  color: var(--muted);
  font-size: 11px;
}
.calendar-search-result-source {
  flex: 0 0 auto;
  padding: 5px 8px;
  border-radius: 999px;
  background: #f4edef;
  color: var(--wine-800);
  font-size: 10px;
  font-weight: 800;
}
.calendar-search-empty {
  padding: 18px 14px;
  color: var(--muted);
  font-size: 13px;
  text-align: center;
}
.calendar-search-active .booking-block.calendar-search-dim {
  opacity: .18;
  filter: grayscale(.75);
}
.booking-block.calendar-search-match {
  position: relative;
  z-index: 2;
  box-shadow: 0 0 0 3px #fff, 0 0 0 6px rgba(212, 164, 61, .95), 0 8px 20px rgba(73, 17, 31, .28);
}
.booking-block.calendar-search-focused {
  animation: calendar-search-pulse 1.15s ease-in-out 3;
}
@keyframes calendar-search-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.055); }
}

@media (max-width: 760px) {
  .calendar-search-results {
    max-height: 300px;
  }
  .calendar-search-result-source {
    display: none;
  }
}


/* ============================================================
   SUNWINE — language switcher (RU / EN / KA)
   ============================================================ */
.language-switcher {
  display: flex;
  align-items: center;
  gap: 3px;
  padding: 4px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 13px;
  background: rgba(255,255,255,.08);
}

.language-option {
  min-width: 0;
  border: 0;
  border-radius: 9px;
  padding: 7px 8px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}

.language-option:hover {
  background: rgba(255,255,255,.09);
}

.language-option.active {
  background: #fff;
  color: var(--wine-900);
  box-shadow: 0 3px 10px rgba(0,0,0,.14);
}

.language-short { display: none; }
.language-full { display: inline; white-space: nowrap; }

.language-switcher-sidebar {
  margin: 0 12px 2px;
  color: #eadde0;
}

.mobile-language-control { display: none; }
.mobile-session-control { display: none; }
.language-current-button { display: none; }
.language-popover { display: flex; align-items: center; gap: 3px; width: 100%; }

.language-switcher-sidebar .language-popover .language-option {
  flex: 1 1 0;
}

.language-switcher-auth {
  justify-self: center;
  border-color: var(--border);
  background: #f7f1ee;
  color: #6a5b60;
}

.language-switcher-auth .language-option:hover {
  background: rgba(122,29,45,.07);
}

html[data-language="ka"] body,
html[data-language="ka"] button,
html[data-language="ka"] input,
html[data-language="ka"] select,
html[data-language="ka"] textarea {
  font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
}

html[data-language="ka"] .auth-shell h1,
html[data-language="ka"] .page-heading h1,
html[data-language="ka"] .modal h2,
html[data-language="ka"] .brand-copy strong {
  font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
  letter-spacing: -.02em;
}

@media (max-width: 860px) {
  .sidebar .language-switcher-sidebar { display: none; }
  .sidebar-bottom .logout-button { display: none; }
  .mobile-language-control {
    position: fixed;
    right: 13px;
    bottom: 96px;
    z-index: 96;
    display: block;
  }
  .mobile-session-control {
    position: fixed;
    left: 13px;
    bottom: 96px;
    z-index: 96;
    display: block;
  }
  .mobile-logout-button {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 14px;
    border: 1px solid rgba(122,29,45,.16);
    border-radius: 13px;
    background: rgba(255,255,255,.98);
    color: var(--wine-900);
    box-shadow: 0 9px 28px rgba(53,12,23,.20);
    font: inherit;
    font-size: 11px;
    font-weight: 850;
    cursor: pointer;
  }
  .language-switcher-sidebar {
    position: relative;
    top: auto;
    right: auto;
    z-index: 90;
    margin: 0;
    width: 48px;
    height: 48px;
    padding: 0;
    border-color: rgba(122,29,45,.16);
    background: rgba(255,255,255,.98);
    color: var(--wine-900);
    box-shadow: 0 9px 28px rgba(53,12,23,.20);
  }

  .language-current-button {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    border: 0;
    border-radius: 12px;
    background: #fff;
    color: var(--wine-900);
    font: inherit;
    font-size: 11px;
    font-weight: 900;
    cursor: pointer;
  }

  .language-switcher-sidebar .language-popover {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: auto;
    display: none;
    padding: 4px;
    border: 1px solid rgba(122,29,45,.15);
    border-radius: 13px;
    background: rgba(255,255,255,.98);
    color: var(--wine-900);
    box-shadow: 0 10px 30px rgba(53,12,23,.20);
    backdrop-filter: blur(14px);
  }

  .language-switcher-sidebar.open .language-popover { display: flex; }

  .language-switcher-sidebar .language-popover .language-option {
    flex: 0 0 auto;
    min-width: 35px;
    padding: 8px 7px;
  }

  .language-switcher-sidebar .language-option.active {
    background: var(--wine-800);
    color: #fff;
  }

  .language-switcher-sidebar .language-full { display: none; }
  .language-switcher-sidebar .language-short { display: inline; }
}

@media (max-width: 520px) {
  .language-switcher-auth {
    width: 100%;
  }

  .language-switcher-auth .language-option {
    flex: 1 1 0;
    padding: 9px 6px;
  }

  .language-switcher-auth .language-full { display: none; }
  .language-switcher-auth .language-short { display: inline; }
}

/* Stage 2 overrides kept last so the compact calendar wins over legacy rules. */
.overview-cards { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
.overview-card.residents { background: linear-gradient(145deg, #fff 15%, #f5e9ee 100%); }
.overview-card.occupied { background: linear-gradient(145deg, #fff 15%, #edf3fa 100%); }
.overview-card.occupied .overview-icon { color: #385f87; background: rgba(56,95,135,.10); }
.booking-block[data-calendar-booking="true"] {
  min-height: 54px;
  padding: 7px 30px 7px 9px;
  border-left: 4px solid rgba(255,255,255,.72);
  touch-action: pan-x pan-y;
}
.booking-block.tone-0 { background: #74283a; }
.booking-block.tone-1 { background: #824235; }
.booking-block.tone-2 { background: #465c69; }
.booking-block.tone-3 { background: #5b4e75; }
.booking-block.source-booking { border-left-color: #77a9f6; }
.booking-block.source-whatsapp { border-left-color: #69d49a; }
.booking-block.source-direct { border-left-color: #f0bd72; }
.booking-block.source-other { border-left-color: #c5b9e8; }
.booking-block[data-calendar-booking="true"] strong {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  white-space: normal;
  line-height: 1.2;
}
.booking-block[data-calendar-booking="true"] > span:not(.booking-drag-handle) { margin-top: 5px; font-weight: 750; }

@media (max-width: 860px) {
  .overview-cards { grid-template-columns: repeat(4, 148px); }
}
@media (max-width: 560px) {
  .calendar-shell { -webkit-overflow-scrolling: touch; overscroll-behavior-inline: contain; }
  .calendar-cell { min-height: 70px; }
  .booking-block[data-calendar-booking="true"] { min-height: 58px; }
}

/* Multi-room booking allocations */
.allocation-room-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 18px;
  margin-top: 16px;
  padding: 18px;
  border: 1px solid #e5d5da;
  border-radius: 18px;
  background: linear-gradient(145deg, #fff9fa, #f5e8ec);
}
.allocation-room-hero > span { color: var(--wine-700); font-size: 11px; font-weight: 850; text-transform: uppercase; letter-spacing: .07em; }
.allocation-room-hero > strong { grid-row: 1 / span 2; grid-column: 2; color: var(--wine-900); font-size: 28px; }
.allocation-room-hero > small { color: var(--muted); font-size: 13px; font-weight: 750; }
.allocation-related { display: grid; gap: 8px; margin-top: 16px; }
.allocation-related > span { color: var(--muted); font-size: 11px; font-weight: 800; }
.allocation-related > div { display: grid; grid-template-columns: repeat(auto-fit, minmax(145px, 1fr)); gap: 8px; }
.allocation-switch {
  display: grid;
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid #e4d8d4;
  border-radius: 12px;
  background: #faf7f5;
  color: #49383e;
  text-align: left;
  cursor: pointer;
}
.allocation-switch:hover { border-color: #b98997; background: #fff; }
.allocation-switch small { color: var(--muted); font-size: 10px; }
.allocation-night-actions { display: flex; gap: 10px; margin: 14px 0; }
.allocation-night-actions .secondary-button { flex: 1; }
.booking-room-editor {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid #ead8dc;
  border-radius: 16px;
  background: #fffafb;
}
.booking-room-editor-heading { display: grid; gap: 4px; }
.booking-room-editor-heading > span { color: #403237; font-size: 13px; font-weight: 850; }
.booking-room-editor-heading > small { color: var(--muted); font-size: 11px; line-height: 1.45; }
.booking-room-editor-list { display: grid; gap: 8px; }
.booking-room-editor-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 11px;
  border: 1px solid #eadfdb;
  border-radius: 12px;
  background: #fff;
}
.booking-room-editor-row > div { min-width: 0; display: grid; gap: 3px; }
.booking-room-editor-row strong { color: var(--wine-900); font-size: 14px; }
.booking-room-editor-row small { color: var(--muted); font-size: 10px; line-height: 1.35; }
.booking-room-editor-row .danger-button { flex: 0 0 auto; padding: 9px 11px; font-size: 11px; }

@media (max-width: 560px) {
  .allocation-room-hero { grid-template-columns: 1fr auto; padding: 15px; }
  .allocation-room-hero > strong { font-size: 23px; }
  .allocation-modal .modal-actions .button-row { width: 100%; display: grid; }
  .allocation-night-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .booking-room-editor-row { align-items: stretch; flex-direction: column; }
  .booking-room-editor-row .danger-button { width: 100%; }
}

/* Today: compact date navigation and lighter operational cards */
.today-topbar { align-items: center; }
.today-date-controls {
  display: grid;
  grid-template-columns: 38px minmax(88px, auto) 38px 40px;
  align-items: center;
  gap: 7px;
}
.today-date-arrow,
.today-calendar-button {
  width: 38px;
  height: 38px;
  border: 1px solid #dfd2ce;
  border-radius: 12px;
  display: grid;
  place-items: center;
  padding: 0;
  color: #66545a;
  background: rgba(255,255,255,.88);
  cursor: pointer;
}
.today-calendar-button { width: 40px; color: var(--wine-700); }
.today-date-arrow:hover,
.today-calendar-button:hover,
.today-calendar-button.active {
  border-color: #b9939d;
  color: var(--wine-800);
  background: #fff;
  box-shadow: 0 7px 20px rgba(67,17,31,.08);
}
.today-current-date {
  min-width: 88px;
  display: grid;
  justify-items: center;
  gap: 1px;
  color: #3f3035;
  font-variant-numeric: tabular-nums;
}
.today-current-date strong { font-size: 13px; line-height: 1.1; white-space: nowrap; }
.today-current-date span { color: var(--muted); font-size: 9px; font-weight: 750; }
.today-date-picker-actions { display: flex; align-items: flex-end; gap: 10px; }
.today-page .overview-card { min-height: 82px; padding: 14px 16px; border-radius: 18px; }
.today-page .overview-icon { width: 38px; height: 38px; border-radius: 13px; }
.today-page .overview-icon .ui-icon { width: 18px; height: 18px; }
.today-page .overview-card strong { font-size: 25px; }
.today-page .panel-title { min-height: 54px; padding: 13px 16px; }
.today-page .panel-title-icon { width: 29px; height: 29px; }
.today-page .today-card { min-height: 90px; padding-block: 13px; }
.nights-left {
  display: inline-flex;
  align-items: center;
  margin-left: 4px;
  color: var(--wine-700);
  font-size: inherit;
  font-weight: 900;
  letter-spacing: 0;
}
.staff-mobile-guest-summary { display: none; }

@media (max-width: 860px) {
  .today-page { gap: 13px; }
  .today-topbar {
    position: sticky;
    top: 7px;
    z-index: 12;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin: -8px -5px 0;
    padding: 9px 8px;
    border: 1px solid rgba(224,210,206,.82);
    border-radius: 17px;
    background: rgba(251,248,246,.92);
    box-shadow: 0 9px 28px rgba(67,17,31,.07);
    backdrop-filter: blur(14px);
  }
  .today-topbar .heading-copy { min-width: 0; }
  .today-topbar .eyebrow,
  .today-topbar .heading-copy > p:last-child { display: none; }
  .today-topbar h1 {
    overflow: hidden;
    margin: 0;
    font-size: 26px;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .today-date-controls {
    grid-template-columns: 32px minmax(62px, auto) 32px 34px;
    gap: 4px;
  }
  .today-date-arrow,
  .today-calendar-button { width: 32px; height: 32px; border-radius: 10px; }
  .today-calendar-button { width: 34px; }
  .today-current-date { min-width: 62px; }
  .today-current-date strong { font-size: 11px; }
  .today-current-date span { display: none; }
  .today-date-drawer { gap: 10px; padding: 12px; border-radius: 16px; }
  .today-date-drawer .date-drawer-copy span { display: none; }
  .today-date-picker-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .today-date-picker-actions .date-picker { min-width: 0; }
  .today-date-picker-actions .day-today { min-height: 42px; padding: 10px 12px; }
  .today-page .today-summary {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    overflow: visible;
    padding: 0;
  }
  .staff-mobile-guest-summary {
    min-height: 54px;
    display: grid;
    grid-template-columns: auto auto minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid rgba(122,29,45,.15);
    border-radius: 15px;
    background: linear-gradient(135deg, #fff, #f7eaf0);
    color: var(--wine-900);
    box-shadow: 0 7px 22px rgba(67,17,31,.06);
  }
  .staff-mobile-guest-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: rgba(122,29,45,.09);
  }
  .staff-mobile-guest-summary > span:nth-child(2) { display: grid; gap: 1px; }
  .staff-mobile-guest-summary strong { font-size: 22px; line-height: 1; }
  .staff-mobile-guest-summary small { color: var(--muted); font-size: 9px; font-weight: 750; }
  .staff-mobile-guest-summary > small { justify-self: end; text-align: right; }
  .today-page .overview-card {
    min-width: 0;
    min-height: 66px;
    gap: 9px;
    padding: 10px 11px;
    border-radius: 15px;
  }
  .today-page .overview-icon { width: 32px; height: 32px; border-radius: 10px; }
  .today-page .overview-icon .ui-icon { width: 16px; height: 16px; }
  .today-page .overview-card strong { font-size: 21px; }
  .today-page .overview-card > div > span { font-size: 9px; line-height: 1.2; }
  .today-page .guest-section { border-radius: 16px; }
  .today-page .panel-title { min-height: 46px; padding: 9px 11px; }
  .today-page .panel-title h2 { font-size: 14px; }
  .today-page .panel-title-icon { width: 26px; height: 26px; border-radius: 9px; }
  .today-page .panel-title-icon .ui-icon { width: 15px; height: 15px; }
  .today-page .count-badge { min-width: 24px; padding: 3px 7px; font-size: 10px; }
  .today-page .today-card {
    grid-template-columns: 44px minmax(0, 1fr) auto;
    min-height: 0;
    gap: 8px 10px;
    padding: 10px 10px;
  }
  .today-page .guest-avatar { display: none; }
  .today-page .room-badge {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 44px;
    min-height: 44px;
    align-self: start;
    padding: 5px;
    border-radius: 11px;
    font-size: 11px;
  }
  .today-page .guest-info { grid-column: 2; grid-row: 1; gap: 3px; }
  .today-page .guest-info strong { font-size: 13px; }
  .today-page .guest-info span { font-size: 10px; line-height: 1.3; }
  .today-page .guest-info small { font-size: 9px; }
  .today-page .stay-period {
    grid-column: 2 / 4;
    grid-row: 2;
    gap: 5px;
    padding: 4px;
    border-radius: 11px;
  }
  .today-page .stay-period > div { min-width: 0; padding: 6px 7px; border-radius: 8px; }
  .today-page .stay-period small { font-size: 7px; }
  .today-page .nights-left { margin-left: 2px; }
  .today-page .stay-period strong { font-size: 10px; }
  .today-page .stay-arrow { width: 19px; height: 19px; font-size: 10px; }
  .today-page .today-card-actions { grid-column: 3; grid-row: 1; flex-direction: row; gap: 4px; }
  .today-page .payment-toggle { padding: 4px; }
  .today-page .payment-knob { width: 20px; height: 20px; }
  .today-page .payment-toggle > span:last-child,
  .today-page .card-chevron { display: none; }
  .today-page .empty-state { padding: 18px 12px; font-size: 11px; }
  .today-page .empty-state > span { font-size: 17px; }
}

@media (max-width: 370px) {
  .today-topbar h1 { font-size: 23px; }
  .today-date-controls { grid-template-columns: 29px 56px 29px 31px; gap: 3px; }
  .today-date-arrow,
  .today-calendar-button { width: 29px; height: 29px; }
  .today-calendar-button { width: 31px; }
  .today-current-date { min-width: 56px; }
  .today-current-date strong { font-size: 10px; }
}

/* Multi-room guest allocation */
.stay-segments > div small {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 750;
}
.guest-allocation-queue { overflow: hidden; }
.guest-allocation-head,
.guest-allocation-booking {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.guest-allocation-head { padding: 22px 24px; border-bottom: 1px solid var(--border); }
.guest-allocation-head h2 { margin: 2px 0 5px; font-size: 20px; }
.guest-allocation-head p { margin: 0; color: var(--muted); font-size: 12px; }
.guest-allocation-list { display: grid; }
.guest-allocation-form { display: grid; gap: 16px; padding: 20px 24px; }
.guest-allocation-form + .guest-allocation-form { border-top: 1px solid var(--border); }
.guest-allocation-booking strong,
.guest-allocation-booking div { display: grid; gap: 4px; }
.guest-allocation-booking span { color: var(--muted); font-size: 12px; }
.guest-allocation-rooms { display: grid; gap: 10px; }
.guest-allocation-room {
  display: grid;
  grid-template-columns: minmax(170px, 1fr) minmax(110px, .45fr) minmax(110px, .45fr);
  align-items: end;
  gap: 12px;
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: 15px;
  background: #fcf9f7;
}
.guest-allocation-room-title { display: grid; gap: 3px; align-self: center; }
.guest-allocation-room-title span,
.guest-allocation-room-title small { color: var(--muted); font-size: 11px; }
.guest-allocation-room-title small { color: #8d672e; }
.guest-allocation-complete { padding: 24px; color: #287047; font-weight: 800; }
.guest-allocation-completed { border-top: 1px solid var(--border); }
.guest-allocation-completed > summary {
  padding: 16px 24px;
  color: var(--wine-800);
  background: #faf6f4;
  cursor: pointer;
  font-size: 12px;
  font-weight: 850;
}
.today-page .overview-card > div > small {
  margin-top: 3px;
  color: var(--wine-700);
  font-size: 10px;
  font-weight: 800;
}
.guest-allocation-shortcut {
  width: 100%;
  min-height: 54px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border: 1px solid rgba(122,29,45,.14);
  border-radius: 16px;
  background: linear-gradient(135deg, #fff, #f8eff2);
  color: var(--wine-800);
  text-align: left;
  cursor: pointer;
}
.guest-allocation-shortcut.needs-attention {
  border-color: rgba(167,107,39,.28);
  background: linear-gradient(135deg, #fff, #fff8eb);
}
.guest-allocation-shortcut > span:first-child {
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: rgba(122,29,45,.08);
}
.guest-allocation-shortcut > span:nth-child(2) { display: grid; gap: 3px; }
.guest-allocation-shortcut strong { font-size: 12px; }
.guest-allocation-shortcut small { color: var(--muted); font-size: 10px; }
.guest-allocation-shortcut > span:last-child { font-size: 20px; }

@media (max-width: 680px) {
  .guest-allocation-head,
  .guest-allocation-booking { align-items: stretch; flex-direction: column; }
  .guest-allocation-form,
  .guest-allocation-head { padding: 17px; }
  .guest-allocation-room { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guest-allocation-room-title { grid-column: 1 / -1; }
  .guest-allocation-completed > summary { padding: 14px 17px; }
  .today-page .overview-card.residents { min-height: 78px; }
  .today-page .overview-card > div > small { font-size: 8px; line-height: 1.25; }
}

/* Push notifications */
.push-settings-card {
  background: linear-gradient(145deg, #fff 25%, #f6ebef 100%);
}
.push-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.push-card-heading h2 { margin: 0; }
.push-status {
  flex: 0 0 auto;
  max-width: 180px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #725f65;
  background: #eee7e4;
  font-size: 9px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
}
.push-status.enabled { color: #226942; background: #dff3e6; }
.push-status.ready { color: #76511e; background: #fff0d6; }
.push-status.blocked,
.push-status.error { color: #8e2933; background: var(--danger-bg); }
.push-settings-card .button-row { width: 100%; }

@media (max-width: 560px) {
  .push-card-heading { display: grid; }
  .push-status { max-width: none; justify-self: start; }
  .push-settings-card .button-row { display: grid; }
}

/* Staff calendar stats and stay duration */
.booking-block[data-calendar-booking="true"] {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-content: stretch;
}
.booking-card-stats {
  min-width: 0;
  display: flex !important;
  align-items: center;
  gap: 7px;
  margin-top: 5px !important;
  color: rgba(255,255,255,.94);
  font-size: 9px !important;
  font-weight: 850 !important;
  line-height: 1;
  opacity: 1 !important;
}
.booking-card-stats > span {
  display: inline-flex !important;
  align-items: center;
  margin: 0 !important;
  overflow: visible;
  white-space: nowrap;
}
.today-total-nights {
  color: var(--wine-700) !important;
  font-size: 10px !important;
  font-weight: 800;
}
.today-total-nights b { font-weight: 900; }

@media (max-width: 560px) {
  .role-staff .booking-block[data-calendar-booking="true"] {
    min-height: 66px;
    padding-right: 9px;
  }
  .role-staff .booking-block[data-calendar-booking="true"] strong {
    -webkit-line-clamp: 2;
  }
  .role-staff .booking-card-stats { font-size: 9px !important; }
  .role-staff .today-total-nights { display: block; }
}

/* Guaranteed mobile staff stats: keep counters visible with large phone text. */
.calendar-shell {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
@media (max-width: 860px) {
  .role-staff .booking-block[data-calendar-booking="true"] {
    position: relative;
    min-height: 70px;
    display: block;
    padding: 8px 9px 25px !important;
  }
  .role-staff .booking-block[data-calendar-booking="true"] > strong {
    max-height: 2.45em;
    -webkit-line-clamp: 2;
  }
  .role-staff .booking-card-stats { display: none !important; }
  .role-staff .booking-block[data-calendar-booking="true"]::after {
    content: "👥 " attr(data-guests) "   🌙 " attr(data-nights);
    position: absolute;
    left: 9px;
    right: 9px;
    bottom: 7px;
    z-index: 3;
    display: block;
    overflow: hidden;
    color: rgba(255,255,255,.96);
    font-size: 9px;
    font-weight: 850;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
  }
}

/* Reception cashier and arrival workflow */
.cash-page { max-width: 1260px; }
.cash-heading { align-items: flex-end; }
.cash-date-picker { min-width: 190px; }
.cash-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.cash-summary-card {
  min-height: 112px;
  display: grid;
  align-content: center;
  gap: 6px;
  padding: 19px;
  border: 1px solid var(--border);
  border-radius: 20px;
  background: #fff;
  box-shadow: var(--shadow);
}
.cash-summary-card span { color: var(--muted); font-size: 11px; font-weight: 800; }
.cash-summary-card strong { color: var(--wine-900); font-size: clamp(22px, 2.4vw, 31px); line-height: 1; }
.cash-summary-card small { color: var(--muted); font-size: 9px; }
.cash-summary-card.positive { background: linear-gradient(145deg, #fff, #eef8f1); }
.cash-summary-card.bank { background: linear-gradient(145deg, #fff, #eef4fb); }
.cash-summary-card.expected { background: linear-gradient(145deg, #6b1c31, #3c0e1b); border-color: transparent; }
.cash-summary-card.expected span,
.cash-summary-card.expected strong { color: #fff; }
.cash-day-status {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 20px;
  padding: 21px;
}
.cash-day-status > div:first-child { display: grid; gap: 4px; }
.cash-day-status > div:first-child > small { color: var(--muted); font-size: 10px; }
.cash-status-label { display: inline-flex; align-items: center; gap: 6px; color: #28724a; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: .07em; }
.cash-day-status.closed .cash-status-label { color: var(--wine-700); }
.cash-close-result { min-width: 155px; display: grid; gap: 3px; padding: 12px 16px; border-radius: 14px; background: #f8f3f1; }
.cash-close-result span,
.cash-close-result small { color: var(--muted); font-size: 10px; }
.cash-close-result .balanced { color: #28724a; }
.cash-close-result .difference { color: #a62b3a; font-weight: 850; }
.cash-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.cash-empty-day { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 25px; }
.cash-empty-day h2,
.cash-empty-day p { margin: 0; }
.cash-empty-day p { margin-top: 5px; color: var(--muted); font-size: 12px; }
.cash-empty-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 17px; background: var(--wine-100); color: var(--wine-800); }
.cash-setup-error { display: grid; gap: 5px; padding: 18px 20px; border: 1px solid #efc2c7; border-radius: 18px; background: #fff0f1; color: #8e2933; }
.cash-setup-error small { color: #775e63; }
.cash-loading { padding: 25px; color: var(--muted); text-align: center; }
.cash-journal,
.cash-history,
.cash-events { overflow: hidden; }
.cash-transaction-list { display: grid; }
.cash-transaction { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 13px; padding: 15px 18px; border-bottom: 1px solid var(--border); }
.cash-transaction:last-child { border-bottom: 0; }
.cash-transaction-sign { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 12px; background: #edf8f0; color: #27714a; font-size: 20px; font-weight: 900; }
.cash-transaction.outgoing .cash-transaction-sign { background: #fff0f1; color: #a52b3a; }
.cash-transaction-copy { min-width: 0; display: grid; gap: 3px; }
.cash-transaction-copy strong { color: #382d30; font-size: 13px; }
.cash-transaction-copy span,
.cash-transaction-copy small { overflow-wrap: anywhere; color: var(--muted); font-size: 10px; }
.cash-transaction-amount { color: #27714a; white-space: nowrap; font-size: 15px; }
.cash-transaction.outgoing .cash-transaction-amount { color: #a52b3a; }
.cash-history-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; padding: 13px; }
.cash-history-row { display: grid; gap: 3px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: #fff; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.cash-history-row.active { border-color: var(--wine-700); background: var(--wine-100); }
.cash-history-row span,
.cash-history-row small { color: var(--muted); font-size: 9px; }
.cash-history-row strong { font-size: 13px; }
.cash-events > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 18px; cursor: pointer; list-style: none; }
.cash-events > summary::-webkit-details-marker { display: none; }
.cash-events > div { border-top: 1px solid var(--border); }
.cash-events article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 8px; padding: 11px 17px; border-bottom: 1px solid var(--border); }
.cash-events article:last-child { border-bottom: 0; }
.cash-events article span { font-size: 11px; font-weight: 800; }
.cash-events article strong,
.cash-events article small { color: var(--muted); font-size: 9px; }
.cash-events article p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: 10px; }
.readonly-badge { padding: 8px 11px; border-radius: 10px; background: #f3eeec; color: var(--muted); font-size: 10px; font-weight: 800; }
.payment-booking-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.payment-booking-summary > div { display: grid; gap: 4px; padding: 12px; border: 1px solid var(--border); border-radius: 13px; background: #fbf8f6; }
.payment-booking-summary span { color: var(--muted); font-size: 9px; }
.payment-readonly { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding: 13px; border: 1px solid var(--border); border-radius: 14px; background: #fbf8f6; }
.payment-readonly > span { color: var(--muted); font-size: 11px; font-weight: 750; }
.payment-note-box { display: grid; gap: 4px; margin-top: 13px; padding: 13px 15px; border-left: 3px solid #b78335; border-radius: 0 12px 12px 0; background: #fff8e9; }
.payment-note-box strong { color: var(--wine-900); font-size: 11px; }
.payment-note-box span,
.payment-note-box small { color: #665d55; font-size: 10px; }
.payment-note-inline { color: #8a6129 !important; }
.cash-close-expected { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 16px; border-radius: 15px; background: var(--wine-100); }
.cash-close-expected span { color: var(--muted); font-size: 11px; }
.cash-close-expected strong { color: var(--wine-900); font-size: 24px; }

.arrival-toggle {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 7px 10px;
  border: 1px solid rgba(40,114,74,.28);
  border-radius: 10px;
  background: #f1faf4;
  color: #246541;
  white-space: nowrap;
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 850;
}
.arrival-toggle.checked { border-color: rgba(122,29,45,.18); background: #f2edeb; color: var(--wine-700); }
.today-card.checked-in { background: #f8f6f4; }
.today-card.checked-in .room-badge { box-shadow: inset 4px 0 0 #4f8a68; }
.checked-arrivals > summary { min-height: 54px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 12px 16px; cursor: pointer; list-style: none; }
.checked-arrivals > summary::-webkit-details-marker { display: none; }
.checked-arrivals-chevron { color: var(--muted); transition: transform .18s; }
.checked-arrivals[open] .checked-arrivals-chevron { transform: rotate(180deg); }
.reception-booking-actions { flex-wrap: wrap; }
.payment-toggle.partial { background: #fff5df; color: #8a6129; }

@media (max-width: 1020px) {
  .cash-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cash-day-status { grid-template-columns: 1fr auto; }
  .cash-actions { grid-column: 1 / -1; justify-content: flex-start; }
}

@media (max-width: 860px) {
  .sidebar-nav {
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }
  .sidebar-nav::-webkit-scrollbar { display: none; }
  .sidebar-nav .nav-button { flex: 0 0 50px; min-width: 50px; padding-inline: 4px; }
  .cash-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
  .cash-heading .heading-copy p:last-child { display: none; }
  .cash-heading h1 { font-size: 28px; }
  .cash-date-picker { min-width: 145px; }
  .cash-summary-card { min-height: 85px; padding: 14px; border-radius: 16px; }
  .cash-summary-card strong { font-size: 22px; }
  .cash-day-status { grid-template-columns: 1fr; gap: 13px; padding: 16px; }
  .cash-close-result { min-width: 0; }
  .cash-actions { grid-column: auto; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cash-actions > * { min-width: 0; }
  .cash-empty-day { grid-template-columns: auto 1fr; padding: 18px; }
  .cash-empty-day .primary-button { grid-column: 1 / -1; width: 100%; }
  .cash-transaction { grid-template-columns: 32px minmax(0, 1fr) auto; gap: 9px; padding: 12px; }
  .cash-transaction-sign { width: 30px; height: 30px; }
  .cash-transaction-amount { font-size: 12px; }
  .today-page .arrival-toggle { width: 29px; min-width: 29px; height: 29px; min-height: 29px; padding: 0; overflow: hidden; font-size: 0; }
  .today-page .arrival-toggle::after { content: "↪"; font-size: 13px; }
  .today-page .arrival-toggle.checked::after { content: "✓"; }
  .today-page .arrival-toggle .ui-icon { display: none; }
  .checked-arrivals > summary { min-height: 46px; padding: 9px 11px; }
}

@media (max-width: 520px) {
  .cash-page { gap: 13px; }
  .cash-heading { grid-template-columns: 1fr; }
  .cash-date-picker { width: 100%; }
  .cash-summary-grid { gap: 8px; }
  .cash-summary-card { min-height: 78px; padding: 12px; }
  .cash-summary-card span { font-size: 9px; }
  .cash-summary-card strong { font-size: 18px; }
  .cash-actions { grid-template-columns: 1fr; }
  .cash-history-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .payment-booking-summary { grid-template-columns: 1fr; }
  .cash-modal .form-grid { grid-template-columns: 1fr; }
  .cash-transaction-copy span { font-size: 9px; }
}

/* Notification centre and audit history */
.nav-button { position: relative; }
.nav-unread-badge {
  min-width: 19px;
  height: 19px;
  margin-left: auto;
  display: inline-grid;
  place-items: center;
  padding: 0 5px;
  border: 2px solid var(--wine-900);
  border-radius: 999px;
  background: #efc45e;
  color: #4b1422;
  font-size: 8px;
  font-weight: 950;
  line-height: 1;
}
.notification-page { max-width: 1180px; }
.notification-heading { align-items: flex-end; }
.notification-heading .secondary-button { display: inline-flex; align-items: center; gap: 7px; }
.notification-setup-error {
  display: grid;
  gap: 5px;
  padding: 18px 20px;
  border: 1px solid #efc2c7;
  border-radius: 18px;
  background: #fff0f1;
  color: #8e2933;
}
.notification-setup-error small { color: #775e63; }
.notification-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}
.notification-overview article {
  min-height: 82px;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 18px;
  background: #fff;
  box-shadow: var(--shadow);
}
.notification-overview article > span {
  width: 39px;
  height: 39px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: var(--wine-100);
  color: var(--wine-800);
}
.notification-overview article > div { min-width: 0; display: grid; gap: 3px; }
.notification-overview strong { color: var(--wine-900); font-size: 20px; line-height: 1; }
.notification-overview small { color: var(--muted); font-size: 10px; }
.notification-filters {
  display: flex;
  gap: 7px;
  overflow-x: auto;
  padding-bottom: 3px;
  scrollbar-width: none;
}
.notification-filters::-webkit-scrollbar { display: none; }
.notification-filters button {
  flex: 0 0 auto;
  min-height: 35px;
  padding: 8px 13px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: #fff;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  font-size: 10px;
  font-weight: 850;
}
.notification-filters button.active { border-color: var(--wine-700); background: var(--wine-800); color: #fff; }
.notification-list { overflow: hidden; }
.notification-event {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 36px;
  align-items: center;
  gap: 13px;
  padding: 16px 17px;
  border-bottom: 1px solid var(--border);
  background: #fff;
}
.notification-event:last-child { border-bottom: 0; }
.notification-event.unread { background: linear-gradient(90deg, #fff8f9, #fff); }
.notification-event.unread::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--wine-700);
}
.notification-event.unread.priority-high::before { background: #c6862e; }
.notification-event.unread.priority-urgent { background: linear-gradient(90deg, #fff0f1, #fff); }
.notification-event.priority-urgent::before { background: #d43d47; }
.notification-event-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 13px;
  background: #f2ece9;
  color: var(--wine-800);
}
.notification-event-icon.category-cash { background: #fff2dd; color: #8a6129; }
.notification-event-icon.category-checkin { background: #e7f5ec; color: #28724a; }
.notification-event-icon.category-housekeeping { background: #eaf2fa; color: #35668e; }
.notification-event-icon.category-restaurant { background: #f5eaf0; color: #7b2844; }
.notification-event-copy { min-width: 0; display: grid; gap: 4px; }
.notification-event-copy > div { display: flex; align-items: center; gap: 7px; }
.notification-category,
.notification-new {
  color: var(--muted);
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.notification-new { padding: 3px 6px; border-radius: 999px; background: var(--wine-100); color: var(--wine-700); }
.notification-event-copy > strong { color: #3b2b30; font-size: 13px; }
.notification-event-copy p { margin: 0; color: #665a5e; font-size: 11px; line-height: 1.45; }
.notification-event-copy small { color: #96898d; font-size: 9px; }
.notification-open {
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 11px;
  background: #f2ece9;
  color: var(--wine-700);
  cursor: pointer;
  font-size: 22px;
}
.notification-preferences-card { grid-column: 1 / -1; }
.notification-preference-form { width: 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.notification-preference-form label {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 13px;
  background: #fff;
  cursor: pointer;
}
.notification-preference-form input { width: 17px; height: 17px; accent-color: var(--wine-700); }
.notification-preference-form label > span { min-width: 0; display: grid; gap: 2px; }
.notification-preference-form strong { color: #493a3e; font-size: 11px; }
.notification-preference-form small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.notification-preference-form .primary-button { grid-column: 1 / -1; justify-self: end; }

@media (max-width: 860px) {
  .nav-unread-badge {
    position: absolute;
    top: 4px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    border-color: var(--wine-950);
    padding-inline: 3px;
    font-size: 7px;
  }
  .notification-heading { align-items: stretch; }
}

@media (max-width: 560px) {
  .notification-page { gap: 13px; }
  .notification-heading .heading-copy p:last-child { display: none; }
  .notification-heading h1 { font-size: 29px; }
  .notification-heading .button-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); width: 100%; }
  .notification-heading .button-row > * { min-width: 0; padding-inline: 9px; font-size: 10px; }
  .notification-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .notification-overview article { min-height: 67px; gap: 9px; padding: 11px; border-radius: 15px; }
  .notification-overview article:last-child { grid-column: 1 / -1; }
  .notification-overview article > span { width: 33px; height: 33px; border-radius: 10px; }
  .notification-overview strong { font-size: 16px; }
  .notification-event { grid-template-columns: 35px minmax(0, 1fr) 30px; gap: 9px; padding: 12px 11px; }
  .notification-event-icon { width: 34px; height: 34px; border-radius: 11px; }
  .notification-event-copy > strong { font-size: 12px; }
  .notification-event-copy p { font-size: 10px; }
  .notification-open { width: 29px; height: 29px; font-size: 18px; }
  .notification-preference-form { grid-template-columns: 1fr; }
  .notification-preference-form .primary-button { grid-column: auto; width: 100%; }
}

/* Mobile shell repair: keep the navigation horizontal and every dialog above it. */
@media (max-width: 860px) {
  body {
    padding-bottom: calc(98px + env(safe-area-inset-bottom));
  }

  .sidebar {
    bottom: max(10px, env(safe-area-inset-bottom));
    flex-direction: row !important;
    overflow: hidden;
  }

  .sidebar-nav {
    min-width: 0;
    max-width: 100%;
    flex: 1 1 0;
    justify-content: flex-start !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-x: contain;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }

  .sidebar-nav .nav-button {
    flex: 0 0 50px;
    scroll-snap-align: start;
  }

  .sidebar-bottom {
    min-width: 52px;
    flex: 0 0 auto;
    flex-direction: row;
  }

  .modal-backdrop {
    z-index: 200;
    height: 100dvh;
    min-height: 100svh;
    overscroll-behavior: contain;
  }

  body:has(.modal-backdrop) {
    overflow: hidden;
    overscroll-behavior: none;
  }
}

@media (max-width: 560px) {
  .modal-backdrop {
    padding-top: max(8px, env(safe-area-inset-top));
  }

  .modal {
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top)));
    padding-bottom: calc(18px + env(safe-area-inset-bottom));
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  .modal-actions {
    position: sticky;
    bottom: 0;
    z-index: 3;
    margin: 20px -6px 0;
    padding: 12px;
    border: 1px solid rgba(231, 221, 216, .92);
    border-radius: 16px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 -10px 28px rgba(53, 12, 23, .09);
    backdrop-filter: blur(14px);
  }
}

/* 2026-08-15: smoother mobile shell without changing the established design. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

.main-content,
.page-stack,
.calendar-shell {
  min-width: 0;
}

button,
a,
input,
select,
textarea,
[role="button"] {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.page-transition-in > * {
  animation: sunwine-page-in .22s cubic-bezier(.2, .72, .24, 1) both;
}

@keyframes sunwine-page-in {
  from {
    opacity: .35;
    transform: translateY(7px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

@media (max-width: 860px) {
  body {
    min-height: 100dvh;
    padding-bottom: calc(92px + env(safe-area-inset-bottom));
    overscroll-behavior-y: none;
  }

  .app-shell {
    min-height: 100dvh;
  }

  .main-content {
    width: 100%;
    padding: 17px max(11px, env(safe-area-inset-left)) 12px max(11px, env(safe-area-inset-right));
    overflow-x: clip;
  }

  .page-stack,
  .cash-page,
  .notification-page,
  .sw-ops-root,
  .restaurant-admin-root {
    gap: 14px;
  }

  .page-heading {
    gap: 10px;
  }

  .page-heading h1 {
    font-size: clamp(28px, 8.5vw, 35px);
    line-height: 1.02;
  }

  .page-heading p,
  .heading-copy p {
    font-size: 12px;
    line-height: 1.45;
  }

  .sidebar {
    inset-inline: max(8px, env(safe-area-inset-left)) max(8px, env(safe-area-inset-right));
    bottom: max(8px, env(safe-area-inset-bottom));
    height: 72px;
    min-height: 72px;
    padding: 6px;
    border-radius: 21px;
    transform: translateZ(0);
  }

  .sidebar-nav {
    min-width: 0;
    max-width: 100%;
    flex: 1 1 0;
    justify-content: flex-start !important;
    gap: 2px;
    padding-inline: 2px;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scroll-padding-inline: 10px;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .sidebar-nav::-webkit-scrollbar {
    display: none;
  }

  .sidebar-nav .nav-button,
  .sidebar-nav .sw-nav-button,
  .sidebar-nav .restaurant-nav-button {
    flex: 0 0 54px;
    width: 54px;
    min-width: 54px !important;
    height: 58px;
    min-height: 58px;
    padding: 5px 3px;
    border-radius: 16px;
    scroll-snap-align: center;
  }

  .sidebar-bottom {
    min-width: 54px;
    flex: 0 0 auto;
    gap: 2px;
  }

  .sidebar-bottom .ghost-button {
    width: 54px;
    min-width: 54px;
    height: 58px;
    min-height: 58px;
    padding: 5px 3px;
    border-radius: 16px;
  }

  .nav-label,
  .sidebar-bottom .settings-label,
  .sidebar-bottom .logout-label {
    max-width: 52px;
    font-size: 8px !important;
    line-height: 1.1;
  }

  .nav-icon,
  .nav-icon .ui-icon {
    flex: 0 0 auto;
  }

  .mobile-language-control,
  .mobile-session-control {
    bottom: calc(88px + env(safe-area-inset-bottom));
    transition: opacity .16s ease, transform .16s ease;
  }

  .mobile-language-control {
    right: max(11px, env(safe-area-inset-right));
  }

  .mobile-session-control {
    left: max(11px, env(safe-area-inset-left));
  }

  body:has(.modal-backdrop) .mobile-language-control,
  body:has(.modal-backdrop) .mobile-session-control {
    opacity: 0;
    pointer-events: none;
    transform: translateY(8px);
  }

  .calendar-shell,
  .overview-cards,
  .notification-filters,
  .restaurant-admin-tabs {
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  .calendar-shell {
    touch-action: pan-x pan-y;
  }

  .modal-backdrop {
    z-index: 300;
    height: 100dvh;
    min-height: 100svh;
    overflow: hidden;
  }

  .modal {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - max(8px, env(safe-area-inset-top)));
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    -webkit-overflow-scrolling: touch;
  }

  .modal h2 {
    font-size: clamp(24px, 7.5vw, 30px);
    line-height: 1.08;
  }

  .field input,
  .field select,
  .field textarea,
  .modal input,
  .modal select,
  .modal textarea {
    font-size: 16px;
  }

  .toast-root,
  .sw-toast-root,
  .restaurant-toast-root {
    right: 10px;
    bottom: calc(88px + env(safe-area-inset-bottom));
    left: 10px;
  }
}

@media (max-width: 560px) {
  .main-content {
    padding-top: 13px;
    padding-inline: max(9px, env(safe-area-inset-left)) max(9px, env(safe-area-inset-right));
  }

  .card,
  .settings-card,
  .today-section,
  .date-panel,
  .notification-panel {
    border-radius: 18px;
  }

  .modal {
    padding: 20px 15px calc(16px + env(safe-area-inset-bottom));
    border-radius: 22px 22px 0 0;
  }

  .modal-actions {
    margin-top: 16px;
    padding: 10px;
    gap: 8px;
  }

  .modal-actions > button,
  .modal-actions > .primary-button,
  .modal-actions > .secondary-button,
  .modal-actions > .danger-button {
    min-height: 44px;
  }

  .date-navigator,
  .calendar-toolbar,
  .sw-date-controls {
    gap: 6px;
  }
}

/* 2026-08-16: photo, mobile heading clearance and desktop rail continuity. */
.sidebar-home-link,
.sidebar-profile-button {
  appearance: none;
  width: 100%;
  border: 0;
  color: inherit;
  background: transparent;
  text-align: left;
  cursor: pointer;
}

.sidebar-home-link {
  border-radius: 14px;
}

.sidebar-home-link:hover,
.sidebar-profile-button:hover {
  background: rgba(255,255,255,.075);
}

.sidebar-home-link:focus-visible,
.sidebar-profile-button:focus-visible {
  outline: 2px solid #e2c18d;
  outline-offset: 2px;
}

.sidebar-profile-button {
  padding-inline: 10px;
  padding-bottom: 10px;
  border-radius: 13px;
}

@media (min-width: 901px) {
  .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: var(--app-rail) !important;
    height: 100dvh !important;
    min-height: 100dvh !important;
    overflow-x: hidden;
    overflow-y: auto;
    scrollbar-width: none;
  }

  .sidebar::-webkit-scrollbar {
    display: none;
  }

  .workspace-shell {
    grid-column: 2;
    min-height: 100dvh;
  }
}

@media (max-width: 900px) {
  .main-content {
    padding-top: calc(90px + env(safe-area-inset-top)) !important;
  }

  body:has(.today-page) .main-content {
    padding-top: 0 !important;
  }

  .today-mobile-hero {
    background-position: 58% center;
  }

  .page-heading:not(.today-topbar),
  .page-heading:not(.today-topbar) .heading-copy {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  .page-heading:not(.today-topbar) h1 {
    max-width: 100%;
    line-height: 1.16;
    overflow-wrap: anywhere;
  }

  html[data-language="ka"] .page-heading:not(.today-topbar) h1 {
    margin-block: 5px 7px;
    font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
    font-size: clamp(23px, 6.8vw, 30px) !important;
    line-height: 1.3 !important;
    letter-spacing: -.025em;
  }

html[data-language="ka"] .notification-heading .heading-copy {
    padding-top: 2px;
  }
}

/* 2026-08-16: unified Today navigator, section jumps and softer mobile hero. */
.today-hero-stat {
  appearance: none;
  min-width: 0;
  display: grid;
  align-content: center;
  padding: 11px 8px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 13px;
  color: inherit;
  background: rgba(26,17,21,.34);
  text-align: center;
  cursor: pointer;
  font: inherit;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
}

.today-hero-stat:hover,
.today-hero-stat:focus-visible {
  border-color: rgba(255,255,255,.48);
  background: rgba(44,22,29,.5);
}

.today-hero-stat:active {
  transform: scale(.975);
}

.today-hero-stat:focus-visible {
  outline: 2px solid #e7c68d;
  outline-offset: 2px;
}

.today-hero-stat strong,
.today-hero-stat span,
.today-hero-stat small {
  display: block;
}

.today-hero-stat strong {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 25px;
  line-height: 1;
}

.today-hero-stat span {
  margin-top: 4px;
  font-size: 9px;
  font-weight: 800;
}

.today-hero-stat small {
  margin-top: 1px;
  color: rgba(255,255,255,.68);
  font-size: 7px;
}

[data-today-section] {
  scroll-margin-top: 86px;
}

.today-section-focus {
  animation: today-section-focus .85s ease both;
}

@keyframes today-section-focus {
  0%, 100% { box-shadow: var(--soft-shadow); }
  38% { box-shadow: 0 0 0 3px rgba(122,29,45,.2), 0 16px 38px rgba(67,17,31,.12); }
}

@media (max-width: 900px) {
  body:has(.today-page) .today-page {
    padding-top: 8px;
  }

  body:has(.today-page) .today-page > .today-mobile-hero {
    width: calc(100% - 16px);
    margin: 0 8px !important;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 26px;
    background-position: 58% center;
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.08),
      inset 0 0 54px rgba(34,13,20,.24),
      0 18px 38px rgba(34,15,20,.18);
  }

  .today-mobile-hero::after {
    inset: 0;
    height: auto;
    border-radius: inherit;
    background:
      radial-gradient(ellipse at center, transparent 43%, rgba(26,10,16,.22) 100%),
      linear-gradient(180deg, transparent 45%, rgba(37,13,20,.4) 100%);
  }

  .today-mobile-hero-stats .today-hero-stat {
    min-height: 77px;
    padding: 10px 5px;
  }

  .today-mobile-hero-stats .today-hero-stat strong {
    font-size: 23px;
  }

  .today-mobile-hero-stats .today-hero-stat span {
    font-size: 8px;
    line-height: 1.25;
  }

  .today-mobile-hero-stats .today-hero-stat small {
    font-size: 7px;
    line-height: 1.25;
  }

  html[data-language="ka"] .today-mobile-hero-stats .today-hero-stat strong {
    font-family: "Noto Sans Georgian", Manrope, Arial, sans-serif;
    font-size: 22px;
  }

  html[data-language="ka"] .today-mobile-hero-stats .today-hero-stat span {
    font-size: 7.5px;
  }

  html[data-language="ka"] .today-mobile-hero-stats .today-hero-stat small {
    font-size: 6.7px;
  }

  .today-topbar {
    display: grid !important;
    min-height: 60px;
    grid-template-columns: minmax(0, 1fr) !important;
    justify-items: center;
    padding: 8px 10px !important;
  }

  .today-topbar .heading-copy {
    display: none !important;
  }

  .today-date-controls {
    width: min(100%, 326px);
    grid-template-columns: 38px minmax(116px, 1fr) 38px 40px !important;
    gap: 6px !important;
  }

  .today-date-arrow,
  .today-calendar-button {
    width: 38px !important;
    height: 38px !important;
  }

  .today-calendar-button {
    width: 40px !important;
  }

  .today-current-date {
    min-width: 0 !important;
  }

  .today-current-date strong {
    max-width: 100%;
    overflow: hidden;
    font-size: 12px !important;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .today-page .today-card {
    grid-template-columns: 46px minmax(0, 1fr) auto;
    gap: 8px 14px;
    padding: 11px 12px 11px 14px;
  }

  .today-page .room-badge {
    width: 46px;
  }

  .today-page .guest-info {
    padding-left: 2px;
  }

  .today-page .calendar-move-hint,
  .calendar-page .calendar-move-hint {
    display: none !important;
  }
}

@media (max-width: 370px) {
  .today-date-controls {
    grid-template-columns: 34px minmax(104px, 1fr) 34px 36px !important;
    gap: 4px !important;
  }

  .today-date-arrow,
  .today-calendar-button {
    width: 34px !important;
    height: 34px !important;
  }

  .today-calendar-button {
    width: 36px !important;
  }

  .today-current-date strong {
    font-size: 11px !important;
  }
}

/* 2026-08-16 v5: tactile navigation, animated drawer and resilient sync controls. */
@keyframes sunwineBackdropOut {
  from { opacity: 1; }
  to { opacity: 0; }
}

@keyframes sunwinePanelOut {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: .25; transform: translateX(102%); }
}

.connection.degraded .connection-dot {
  background: #efb353;
  box-shadow: 0 0 0 3px rgba(239,179,83,.12);
}

.connection.reconnecting .connection-dot,
.connection.cached .connection-dot {
  background: #efc45f;
  box-shadow: 0 0 0 3px rgba(239,196,95,.14);
}

.data-sync-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.data-sync-banner > span {
  min-width: 0;
}

.data-sync-banner > button {
  display: inline-flex;
  min-height: 36px;
  flex: 0 0 auto;
  align-items: center;
  gap: 7px;
  padding: 8px 12px;
  border: 1px solid rgba(142,41,51,.18);
  border-radius: 10px;
  color: #842534;
  background: rgba(255,255,255,.68);
  font: inherit;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
  transition: transform .14s ease, background .14s ease;
}

.data-sync-banner > button:hover {
  background: #fff;
}

.data-sync-banner > button:active {
  transform: scale(.97);
}

.data-sync-banner.is-reconnecting {
  border: 1px solid rgba(177,124,36,.18);
  color: #79531d;
  background: #fff8e8;
}

.data-sync-banner.is-reconnecting > button {
  border-color: rgba(177,124,36,.2);
  color: #704b17;
}

@media (min-width: 901px) {
  .desktop-sidebar-logout {
    display: flex !important;
    margin-top: 2px;
    color: rgba(255,225,230,.82) !important;
  }

  .desktop-sidebar-logout:hover {
    color: #fff !important;
    background: rgba(169,68,76,.22) !important;
  }
}

@media (max-width: 900px) {
  .mobile-avatar,
  .mobile-nav-item,
  .mobile-nav-action,
  .mobile-panel-item,
  .mobile-panel-close,
  .mobile-panel-logout {
    transform: translateZ(0);
    transition:
      color .16s ease,
      background-color .16s ease,
      border-color .16s ease,
      box-shadow .16s ease,
      opacity .16s ease,
      transform .16s cubic-bezier(.2,.72,.24,1);
  }

  .mobile-avatar:active,
  .mobile-nav-action:active,
  .mobile-panel-close:active,
  .mobile-panel-logout:active {
    transform: scale(.94);
  }

  .mobile-avatar.active {
    color: #fff;
    border-color: rgba(255,255,255,.38);
    background: linear-gradient(145deg, #8f2942, #5b1428);
    box-shadow: 0 8px 22px rgba(66,16,29,.25);
  }

  .mobile-panel-layer {
    isolation: isolate;
  }

  .mobile-panel-backdrop,
  .mobile-nav-panel {
    will-change: opacity, transform;
  }

  .mobile-panel-layer.closing {
    pointer-events: none;
  }

  .mobile-panel-layer.closing .mobile-panel-backdrop {
    animation: sunwineBackdropOut .22s ease both !important;
  }

  .mobile-panel-layer.closing .mobile-nav-panel {
    animation: sunwinePanelOut .25s cubic-bezier(.55,.05,.72,.38) both !important;
  }

  .mobile-panel-layer.closing .mobile-nav-panel.quick-panel {
    animation-name: sunwineFadeDownOut !important;
  }

  .mobile-panel-item.navigation-pressed,
  .mobile-panel-item:active {
    color: #fff;
    background: rgba(181,138,82,.24);
    transform: translateX(-4px) scale(.985);
  }

  .mobile-panel-item.active {
    color: #fff;
    background: rgba(139,37,60,.52);
  }

  .mobile-nav-item.navigation-pressed,
  .mobile-nav-item:active {
    color: var(--wine-900);
    background: #f4e7eb;
    transform: scale(.94);
  }

  .mobile-nav-item.active {
    transform: scale(1);
  }

  .page-transition-in {
    animation-duration: .3s !important;
    animation-timing-function: cubic-bezier(.2,.72,.24,1) !important;
  }

  .data-sync-banner {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
    font-size: 11px;
  }

  .data-sync-banner > button {
    align-self: flex-start;
  }
}

@keyframes sunwineFadeDownOut {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(24px); }
}

/* 2026-08-16: performance v7 — lazy modules and a low-cost mode for older phones. */
.module-loading {
  min-height: min(62vh, 520px);
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 13px;
  color: var(--wine-800);
  text-align: center;
}

.module-loading .spinner {
  width: 30px;
  height: 30px;
  border: 3px solid rgba(122, 29, 45, .14);
  border-top-color: var(--wine-700);
  border-radius: 50%;
  animation: sunwine-module-spin .8s linear infinite;
}

@keyframes sunwine-module-spin {
  to { transform: rotate(1turn); }
}

html.performance-lite {
  scroll-behavior: auto;
}

html.performance-lite .mobile-panel-backdrop,
html.performance-lite .mobile-nav-panel,
html.performance-lite .mobile-bottom-nav,
html.performance-lite .mobile-topbar,
html.performance-lite .desktop-topbar,
html.performance-lite .modal-backdrop,
html.performance-lite .modal-actions,
html.performance-lite .loading-overlay,
html.performance-lite .today-hero-stat {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}

html.performance-lite .panel,
html.performance-lite .today-card,
html.performance-lite .calendar-shell,
html.performance-lite .mobile-bottom-nav,
html.performance-lite .mobile-nav-panel,
html.performance-lite .modal,
html.performance-lite .settings-card,
html.performance-lite .notification-card {
  box-shadow: 0 3px 12px rgba(67, 17, 31, .045) !important;
}

html.performance-lite .page-transition-in,
html.performance-lite .today-section-focus,
html.performance-lite .mobile-panel-layer .mobile-panel-backdrop,
html.performance-lite .mobile-panel-layer .mobile-nav-panel,
html.performance-lite .navigation-pressed {
  animation: none !important;
  transition-duration: .01ms !important;
}

html.performance-lite .mobile-panel-backdrop,
html.performance-lite .mobile-nav-panel {
  will-change: auto !important;
}

html.performance-lite .today-mobile-hero {
  background-image:
    linear-gradient(180deg, rgba(17,12,16,.18) 0%, rgba(32,16,20,.18) 35%, rgba(35,14,21,.82) 100%),
    url('/sunwine-dashboard-hero-mobile.webp');
}

@media (max-width: 900px) {
  @supports (content-visibility: auto) {
    .today-section,
    .settings-card,
    .notification-card,
    .cash-panel,
    .sw-room-card,
    .sw-laundry-room,
    .restaurant-admin-root > section {
      content-visibility: auto;
      contain-intrinsic-size: auto 280px;
    }
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* 2026-08-17 v9: live Batumi weather and higher-contrast responsive dashboard. */
.weather-widget {
  position: relative;
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  overflow: hidden;
  border: 1px solid rgba(132, 82, 70, .2);
  color: var(--wine-950);
  background: rgba(255, 252, 248, .96);
  box-shadow: 0 8px 24px rgba(57, 18, 28, .09);
  text-decoration: none;
}

.weather-widget:hover,
.weather-widget:focus-visible {
  border-color: rgba(125, 38, 56, .44);
  color: var(--wine-800);
  box-shadow: 0 11px 30px rgba(57, 18, 28, .14);
  transform: translateY(-1px);
}

.weather-widget:focus-visible {
  outline: 2px solid rgba(182, 125, 49, .78);
  outline-offset: 2px;
}

.weather-widget-icon {
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  font-family: "Apple Color Emoji", "Segoe UI Emoji", sans-serif;
  line-height: 1;
}

.weather-widget-copy {
  display: grid;
  min-width: 0;
  align-content: center;
  line-height: 1.05;
}

.weather-widget-copy strong,
.weather-widget-copy small,
.weather-widget-copy em {
  display: block;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.weather-widget-copy strong {
  font-family: "Playfair Display", Georgia, serif;
  font-variant-numeric: tabular-nums;
}

.weather-widget-copy small { font-weight: 850; }
.weather-widget-copy em { color: var(--muted); font-style: normal; }
.weather-widget-source {
  position: absolute;
  right: 6px;
  bottom: 3px;
  color: rgba(91, 69, 74, .46);
  font-size: 5px;
  font-weight: 750;
  letter-spacing: .02em;
}

.weather-loading .weather-widget-icon,
.weather-refreshing .weather-widget-icon { animation: weather-soft-pulse 1.4s ease-in-out infinite; }
.weather-stale::after {
  content: "";
  position: absolute;
  top: 6px;
  right: 6px;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c68a3c;
}

@keyframes weather-soft-pulse {
  0%, 100% { opacity: .58; transform: scale(.94); }
  50% { opacity: 1; transform: scale(1.04); }
}

.weather-widget-desktop {
  width: 122px;
  min-height: 44px;
  padding: 6px 10px 7px;
  border-radius: 14px;
}
.weather-widget-desktop .weather-widget-icon { width: 28px; font-size: 21px; }
.weather-widget-desktop .weather-widget-copy strong { font-size: 17px; }
.weather-widget-desktop .weather-widget-copy small { margin-top: 1px; font-size: 8px; }
.weather-widget-desktop .weather-widget-copy em { display: none; }

.today-date-controls {
  grid-template-columns: 38px minmax(118px, auto) 38px;
}

.today-current-date {
  min-width: 118px;
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 4px 9px;
  border: 1px solid #dfd2ce;
  border-radius: 12px;
  color: #44363a;
  background: rgba(255, 255, 255, .9);
  cursor: pointer;
}
.today-current-date > .ui-icon { color: var(--wine-700); }
.today-current-date:hover,
.today-current-date.active {
  border-color: #b9939d;
  color: var(--wine-800);
  background: #fff;
  box-shadow: 0 7px 20px rgba(67, 17, 31, .08);
}
.today-current-date-copy { display: grid; justify-items: start; gap: 1px; }
.today-current-date-copy > strong { font-size: 12px; line-height: 1.1; white-space: nowrap; }
.today-current-date-copy > span { color: var(--muted); font-size: 8px; font-weight: 750; }
.today-quick-booking { display: none; }

@media (min-width: 901px) {
  :root {
    --surface-soft: #f1eae5;
    --border: #dfd0ca;
    --muted: #675b5f;
    --soft-shadow: 0 7px 24px rgba(65, 22, 33, .075);
    --shadow: 0 15px 38px rgba(65, 22, 33, .09);
  }

  body {
    color: #241d20;
    background:
      radial-gradient(circle at 86% 5%, rgba(182, 125, 49, .13), transparent 27rem),
      linear-gradient(150deg, #f5efeb 0%, #eee4df 100%);
  }

  .workspace-shell {
    background:
      linear-gradient(rgba(255,255,255,.2), rgba(255,255,255,0)),
      transparent;
  }

  .sidebar {
    border-right: 1px solid rgba(224, 177, 108, .2);
    background:
      radial-gradient(circle at 12% 0%, rgba(213, 161, 88, .22), transparent 18rem),
      radial-gradient(circle at 92% 78%, rgba(142, 34, 61, .24), transparent 21rem),
      linear-gradient(165deg, #64172d 0%, #3a0d1b 54%, #250912 100%);
    box-shadow: 14px 0 40px rgba(42, 9, 18, .16);
  }

  .sidebar .brand-logo-wrap {
    width: 46px;
    height: 46px;
    border-color: rgba(224, 181, 112, .82);
    border-radius: 14px;
    background: #fff7e9;
    box-shadow: inset 0 1px 0 #fff, 0 8px 24px rgba(22, 3, 9, .3);
  }

  .sidebar .brand-logo {
    filter: contrast(1.16) saturate(1.24) !important;
  }

  .sidebar .brand-copy strong {
    color: #f1cf91;
    text-shadow: 0 1px 14px rgba(239, 194, 117, .18);
  }

  .sidebar .brand-copy span { color: rgba(255, 255, 255, .67); }
  .sidebar-nav .nav-button,
  .sidebar-nav .sw-nav-button,
  .sidebar-nav .restaurant-nav-button { color: rgba(255, 255, 255, .84); }
  .sidebar-nav .nav-button:hover,
  .sidebar-nav .sw-nav-button:hover,
  .sidebar-nav .restaurant-nav-button:hover {
    color: #fff;
    background: rgba(255, 255, 255, .105);
  }
  .sidebar-nav .nav-button.active,
  .sidebar-nav .sw-nav-button.active,
  .sidebar-nav .restaurant-nav-button.active {
    background: linear-gradient(90deg, rgba(164, 48, 76, .94), rgba(117, 27, 49, .65));
    box-shadow: inset 3px 0 0 #edc67f, 0 9px 22px rgba(20, 3, 8, .24);
  }

  .desktop-topbar {
    border-bottom-color: rgba(191, 166, 157, .64);
    background: rgba(250, 246, 242, .96);
    box-shadow: 0 5px 22px rgba(69, 26, 37, .07);
  }

  .desktop-welcome strong { color: #351019; font-size: 20px; }
  .desktop-welcome span { color: #62565a; }
  .main-content { max-width: 1720px; }
  .page-heading h1 { color: #3e0f20; text-shadow: 0 1px 0 rgba(255,255,255,.55); }

  .panel,
  .booking-form,
  .date-drawer,
  .guest-allocation-shortcut,
  .notification-overview article,
  .overview-card {
    border-color: rgba(202, 180, 172, .76);
    background: #fff;
    box-shadow: var(--soft-shadow);
  }

  .overview-card {
    box-shadow: 0 12px 32px rgba(65, 22, 33, .075);
  }
  .overview-card.residents { background: linear-gradient(145deg, #fff 12%, #f8e9ee 100%); }
  .overview-card.occupied { background: linear-gradient(145deg, #fff 12%, #eaf2fb 100%); }
  .overview-card.arrivals { background: linear-gradient(145deg, #fff 12%, #e7f5ec 100%); }
  .overview-card.departures { background: linear-gradient(145deg, #fff 12%, #fff0df 100%); }
  .overview-card.bookings { background: linear-gradient(145deg, #fff 12%, #f8efd9 100%); }
  .overview-card strong { color: #351019; }
  .panel-title { background: linear-gradient(180deg, #fff, #fcf9f7); }
  .panel-title h2 { color: #2d2226; }
  .today-card { color: #241d20; background: #fff; }
  .today-card:hover { background: #fffaf7; box-shadow: inset 4px 0 0 #b67d31; }
  .guest-info strong { color: #271f22; }
  .guest-info span,
  .guest-info small { color: #65595d; }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .weather-widget-desktop { width: 106px; }
  .weather-widget-desktop .weather-widget-copy em,
  .weather-widget-desktop .weather-widget-source { display: none; }
  .profile-button { min-width: 148px; }
}

@media (max-width: 900px) {
  body:has(.today-page) .today-page { padding-top: 7px; }

  body:has(.today-page) .today-page > .today-mobile-hero {
    min-height: clamp(398px, 51svh, 452px);
    padding: calc(94px + env(safe-area-inset-top)) 14px 15px;
    border-color: rgba(255, 255, 255, .46);
    border-radius: 24px;
    background-image:
      linear-gradient(180deg, rgba(20, 12, 17, .18) 0%, rgba(35, 15, 22, .12) 37%, rgba(35, 12, 20, .8) 100%),
      url('/sunwine-dashboard-hero-mobile.webp');
    background-position: 57% center;
    box-shadow:
      inset 0 0 0 1px rgba(255,255,255,.08),
      inset 0 -80px 90px rgba(37, 11, 20, .18),
      0 15px 32px rgba(45, 14, 23, .19);
  }

  body:has(.today-page) .mobile-brand-button img {
    width: 35px;
    height: 35px;
    border: 1px solid rgba(238, 201, 141, .68);
    border-radius: 10px;
    filter: contrast(1.13) saturate(1.16) !important;
    box-shadow: 0 5px 18px rgba(20, 5, 11, .24);
  }

  body:has(.today-page) .mobile-brand-button {
    color: #f0ce90;
    text-shadow: 0 1px 11px rgba(24, 5, 11, .55);
  }

  .weather-widget-hero {
    position: absolute;
    top: calc(82px + env(safe-area-inset-top));
    right: 14px;
    z-index: 3;
    width: 111px;
    min-height: 62px;
    padding: 8px 9px 9px;
    border-color: rgba(255, 255, 255, .74);
    border-radius: 15px;
    background: rgba(255, 250, 245, .95);
    box-shadow: 0 10px 28px rgba(31, 8, 15, .22);
  }
  .weather-widget-hero .weather-widget-icon { width: 26px; font-size: 22px; }
  .weather-widget-hero .weather-widget-copy strong { font-size: 19px; }
  .weather-widget-hero .weather-widget-copy small { margin-top: 1px; font-size: 8px; }
  .weather-widget-hero .weather-widget-copy em { display: none; }
  .weather-widget-hero .weather-widget-source { right: 7px; bottom: 3px; font-size: 4.5px; }

  .today-mobile-hero-copy p { font-size: 14px; text-shadow: 0 1px 8px rgba(20,5,11,.5); }
  .today-mobile-hero-copy h1 {
    max-width: calc(100% - 4px);
    font-size: clamp(28px, 8.1vw, 37px);
    text-shadow: 0 2px 13px rgba(20,5,11,.42);
  }
  .today-mobile-hero-copy small { color: rgba(255,255,255,.82); font-size: 9px; }

  .today-mobile-hero-stats {
    gap: 7px;
    margin-top: 15px;
  }

  .today-mobile-hero-stats .today-hero-stat {
    position: relative;
    min-height: 74px;
    display: grid;
    place-items: center;
    padding: 8px 5px 7px;
    border: 1px solid rgba(233, 208, 175, .86);
    border-radius: 15px;
    color: #4b1422;
    background: rgba(255, 250, 245, .96);
    box-shadow: 0 8px 23px rgba(29, 7, 13, .16);
    text-align: center;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .today-mobile-hero-stats .today-hero-stat:hover,
  .today-mobile-hero-stats .today-hero-stat:focus-visible {
    border-color: rgba(182, 125, 49, .82);
    color: #4b1422;
    background: #fffaf5;
  }

  .today-hero-stat-icon {
    position: absolute;
    top: 7px;
    left: 7px;
    width: 22px;
    height: 22px;
    display: grid !important;
    place-items: center;
    margin: 0 !important;
    border-radius: 8px;
    color: #8a2b42;
    background: #f7e9ed;
  }
  .today-hero-stat-icon .ui-icon { width: 13px; height: 13px; }
  .today-hero-stat-copy {
    display: grid !important;
    justify-items: center;
    margin: 0 !important;
  }
  .today-mobile-hero-stats .today-hero-stat-copy strong {
    color: #3f101e;
    font-size: 24px;
    line-height: .98;
  }
  .today-mobile-hero-stats .today-hero-stat-copy > span {
    display: block !important;
    margin-top: 4px !important;
    color: #4f3e43;
    font-size: 8px;
    font-weight: 850;
    line-height: 1.05;
  }
  .today-mobile-hero-stats .today-hero-stat-copy > small {
    margin-top: 2px;
    color: #8a7a7e;
    font-size: 6.5px;
    line-height: 1;
  }

  .today-topbar {
    min-height: 58px;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    justify-items: stretch;
    gap: 7px;
    padding: 7px 8px !important;
    border-radius: 18px;
    background: rgba(255, 255, 255, .96);
  }
  .role-staff .today-topbar { grid-template-columns: minmax(0, 1fr) !important; }

  .today-date-controls {
    width: 100%;
    max-width: none;
    grid-template-columns: 36px minmax(112px, 1fr) 36px !important;
    gap: 5px !important;
  }
  .today-date-arrow { width: 36px !important; height: 40px !important; border-radius: 12px; }
  .today-current-date {
    min-width: 0 !important;
    min-height: 40px;
    gap: 6px;
    padding: 4px 7px;
    border-radius: 12px;
  }
  .today-current-date > .ui-icon { width: 15px; height: 15px; }
  .today-current-date .today-current-date-copy { display: grid !important; }
  .today-current-date .today-current-date-copy > strong {
    max-width: 100%;
    overflow: hidden;
    font-size: 11px !important;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .today-current-date .today-current-date-copy > span { display: block !important; font-size: 7px; }

  .today-quick-booking {
    min-width: 118px;
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 11px;
    border: 1px solid #4b1422;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(145deg, #7d2638, #4b1422);
    box-shadow: 0 7px 18px rgba(75, 20, 34, .18);
    font-size: 9px;
    font-weight: 850;
  }

  .today-page .panel,
  .today-page .guest-section,
  .today-page .date-drawer {
    border-color: rgba(207, 186, 178, .8);
    background: #fff;
    box-shadow: 0 8px 25px rgba(65, 22, 33, .065);
  }

  .today-page .today-card { background: #fff; }
  .today-page .today-card:active { background: #fff8f5; }
  .today-page .guest-info strong { color: #251d20; }
  .today-page .guest-info span,
  .today-page .guest-info small { color: #6a5e62; }
}

@media (max-width: 400px) {
  .today-quick-booking { min-width: 42px; width: 42px; padding-inline: 0; }
  .today-quick-booking span { display: none; }
  .today-date-controls { grid-template-columns: 34px minmax(108px, 1fr) 34px !important; gap: 4px !important; }
  .today-date-arrow { width: 34px !important; }
}

@media (max-width: 350px) {
  .weather-widget-hero { width: 104px; right: 11px; }
  .today-mobile-hero-stats { gap: 5px; }
  .today-hero-stat-icon { top: 6px; left: 6px; width: 20px; height: 20px; }
  .today-mobile-hero-stats .today-hero-stat-copy strong { font-size: 22px; }
}

html.performance-lite .weather-widget {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 4px 13px rgba(57, 18, 28, .08);
}

html.performance-lite .weather-loading .weather-widget-icon,
html.performance-lite .weather-refreshing .weather-widget-icon { animation: none; }

/* ========================================================================== */
/* SUNWINE v10 · Mobile UX, operational Today, global search                  */
/* ========================================================================== */

.sidebar-section-label {
  display: block;
  padding: 4px 13px 5px;
  color: rgba(255,255,255,.38);
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.sidebar-section-spacer { margin-top: 9px; }

/* Operational center */
.today-action-center { overflow: hidden; }
.today-action-center-head {
  display: flex;
  min-height: 65px;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, #fff, #fcf9f7);
}
.today-action-center-head .eyebrow { margin: 0 0 2px; }
.today-action-center-head h2 { margin: 0; color: #2d2226; font-size: 16px; }
.today-action-center-head > small { color: var(--muted); font-size: 10px; font-weight: 800; }
.today-action-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 1px;
  background: var(--border);
}
.today-action-grid > button {
  min-width: 0;
  min-height: 78px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border: 0;
  background: #fff;
  color: #32272b;
  text-align: left;
}
.today-action-grid > button:hover { background: #fff9f6; }
.today-action-grid .action-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 11px;
  color: var(--wine-800);
  background: var(--wine-100);
}
.today-action-grid > button > span:last-child { min-width: 0; display: grid; gap: 2px; }
.today-action-grid strong { color: #39111d; font-size: 17px; line-height: 1; }
.today-action-grid small { overflow: hidden; color: #756a6d; font-size: 9px; font-weight: 750; line-height: 1.25; text-overflow: ellipsis; }

/* Global search */
.global-search-layer {
  position: fixed;
  inset: 0;
  z-index: 920;
  display: grid;
  place-items: start center;
  padding: min(12vh, 110px) 20px 30px;
}
.global-search-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  border: 0;
  background: rgba(28, 14, 19, .52);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}
.global-search-panel {
  position: relative;
  z-index: 1;
  width: min(720px, 100%);
  max-height: min(720px, 76vh);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(214, 194, 187, .9);
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(35, 9, 17, .3);
}
.global-search-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px 12px;
}
.global-search-head .eyebrow { margin: 0 0 2px; }
.global-search-head h2 { margin: 0; color: var(--wine-950); font-family: "Playfair Display", Georgia, serif; font-size: 27px; }
.global-search-head > div > span { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.global-search-close {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 38px;
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--wine-900);
  background: #fbf7f5;
}
.global-search-box {
  position: relative;
  display: flex;
  min-height: 54px;
  align-items: center;
  gap: 10px;
  margin: 0 20px 13px;
  padding: 0 14px;
  border: 1px solid #cdbdb7;
  border-radius: 15px;
  color: var(--wine-800);
  background: #fcfaf8;
  box-shadow: inset 0 1px 2px rgba(55, 28, 32, .025);
}
.global-search-box:focus-within { border-color: #8f3649; box-shadow: 0 0 0 3px rgba(143, 54, 73, .09); }
.global-search-box input {
  min-width: 0;
  flex: 1;
  border: 0;
  outline: 0;
  color: #2e2628;
  background: transparent;
  font: inherit;
  font-size: 13px;
}
.global-search-clear {
  width: 31px;
  height: 31px;
  border: 0;
  border-radius: 50%;
  color: #786c70;
  background: #eee8e5;
  font-size: 20px;
}
.global-search-results { min-height: 170px; overflow-y: auto; border-top: 1px solid #eee6e2; }
.global-search-result {
  width: 100%;
  min-height: 72px;
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr) auto 24px;
  align-items: center;
  gap: 12px;
  padding: 11px 18px;
  border: 0;
  border-bottom: 1px solid #eee6e2;
  color: #33292c;
  background: #fff;
  text-align: left;
}
.global-search-result:hover { background: #fff9f6; }
.global-search-room {
  display: grid;
  min-height: 39px;
  place-items: center;
  padding: 5px 8px;
  border-radius: 11px;
  color: var(--wine-800);
  background: var(--wine-100);
  font-size: 11px;
  font-weight: 850;
}
.global-search-result-copy { min-width: 0; display: grid; gap: 3px; }
.global-search-result-copy strong { overflow: hidden; color: #2d2427; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.global-search-result-copy small { overflow: hidden; color: #786d70; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.global-search-meta { display: grid; justify-items: end; gap: 4px; }
.global-search-meta b { color: #6d5960; font-size: 9px; }
.global-search-meta small { color: #8a6129; font-size: 9px; font-weight: 800; white-space: nowrap; }
.global-search-meta small.paid { color: var(--success); }
.global-search-chevron { color: #a49499; font-size: 21px; }
.global-search-empty {
  min-height: 190px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 7px;
  padding: 24px;
  color: #8b7e82;
  text-align: center;
}
.global-search-empty > span { color: #aa8290; }
.global-search-empty strong { color: #4b3e42; font-size: 13px; }
.global-search-empty small { max-width: 430px; font-size: 10px; line-height: 1.55; }

/* New booking: clearer groups without changing the form contract. */
.new-booking-page { max-width: 1120px; }
.booking-form { display: grid; gap: 14px; }
.booking-form-section {
  padding: 18px;
  border: 1px solid #eadfda;
  border-radius: 17px;
  background: #fff;
}
.booking-form-section-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
  padding-bottom: 13px;
  border-bottom: 1px solid #eee6e2;
}
.booking-form-section-head > span {
  width: 31px;
  height: 31px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  color: #fff;
  background: var(--wine-800);
  font-size: 9px;
  font-weight: 900;
}
.booking-form-section-head > div { display: grid; gap: 1px; }
.booking-form-section-head strong { color: #392e31; font-size: 13px; }
.booking-form-section-head small { color: var(--muted); font-size: 9px; }
.booking-submit-bar .primary-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }

@media (max-width: 1180px) and (min-width: 901px) {
  .today-action-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  /* Hero now gives useful content room above the fold. */
  body:has(.today-page) .today-page { padding-top: 5px; }
  body:has(.today-page) .today-page > .today-mobile-hero {
    min-height: clamp(330px, 42svh, 378px);
    padding: calc(84px + env(safe-area-inset-top)) 14px 13px;
    border-radius: 21px;
  }
  .weather-widget-hero {
    top: calc(72px + env(safe-area-inset-top));
    width: 106px;
    min-height: 57px;
    padding: 7px 8px 8px;
  }
  .weather-widget-hero .weather-widget-copy small { font-size: 10px; }
  .weather-widget-hero .weather-widget-source { display: none; }
  .today-mobile-hero-copy p { font-size: 14px; }
  .today-mobile-hero-copy h1 { font-size: clamp(27px, 7.8vw, 35px); }
  .today-mobile-hero-copy small { margin-top: 6px; font-size: 10px; }
  .today-mobile-hero-stats { gap: 6px; margin-top: 12px; }
  .today-mobile-hero-stats .today-hero-stat { min-height: 64px; padding: 7px 4px 6px; border-radius: 13px; }
  .today-hero-stat-icon { top: 6px; left: 6px; width: 20px; height: 20px; border-radius: 7px; }
  .today-mobile-hero-stats .today-hero-stat-copy strong { font-size: 22px; }
  .today-mobile-hero-stats .today-hero-stat-copy > span { margin-top: 3px !important; font-size: 10px; }
  .today-mobile-hero-stats .today-hero-stat-copy > small { display: none; }

  /* Readable mobile typography. */
  .mobile-brand-button small { font-size: 8px; }
  .mobile-nav-item span { max-width: 68px; font-size: 11px; font-weight: 800; }
  .mobile-panel-brand small { font-size: 8px; }
  .mobile-panel-profile small,
  .mobile-panel-title span { font-size: 10px; }
  .today-current-date .today-current-date-copy > span { font-size: 10px; }
  .guest-allocation-shortcut > span:nth-child(2) strong { font-size: 12px; }
  .guest-allocation-shortcut > span:nth-child(2) small { font-size: 10px; }
  .panel-title h2 { font-size: 14px; }
  .today-card .room-badge small { font-size: 10px; }
  .today-card .guest-info strong { font-size: 14px; }
  .today-card .guest-info span { font-size: 10px; line-height: 1.4; }
  .today-card .guest-info small { font-size: 10px; line-height: 1.4; }
  .today-card .stay-period small { font-size: 9px; }
  .today-card .stay-period strong { font-size: 11px; }
  .page-heading:not(.today-topbar) p { font-size: 11px; }
  .calendar-move-hint strong { font-size: 10px; }
  .calendar-move-hint span { font-size: 10px; }
  .booking-block strong { font-size: 10px; }
  .booking-card-stats { font-size: 10px; }
  .agenda-day span { font-size: 10px; }
  .agenda-filters button { font-size: 10px; }
  .agenda-event-copy strong { font-size: 12px; }
  .agenda-event-copy small { font-size: 10px; }
  .agenda-room { font-size: 10px; }

  /* Bottom navigation: Today / Calendar / + / Housekeeping / More. */
  .mobile-bottom-nav { min-height: 68px; padding: 5px 6px; }
  .mobile-nav-item { min-height: 55px; gap: 2px; padding: 4px 2px; }
  .mobile-nav-item .ui-icon { width: 20px; height: 20px; }
  .mobile-nav-item.active { color: var(--wine-900); background: #f5e9ed; }

  /* Mobile Today cards prioritize the actions a receptionist actually needs. */
  .today-card {
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 9px 10px;
    padding: 13px 12px;
  }
  .today-card .room-badge { grid-row: 1 / span 2; }
  .today-card .guest-info { grid-column: 2; }
  .today-card .stay-period { grid-column: 2; padding: 5px; }
  .today-card-actions {
    grid-column: 1 / -1;
    grid-row: auto;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    align-self: stretch;
  }
  .today-card-actions:has(.payment-toggle:only-child) { grid-template-columns: 1fr; }
  .today-page .arrival-toggle,
  .today-card-actions .arrival-toggle {
    width: auto;
    max-width: none;
    min-height: 39px;
    height: auto;
    padding: 8px 11px;
    overflow: visible;
    border-radius: 11px;
    font-size: 10px;
    font-weight: 850;
  }
  .today-page .arrival-toggle::after { content: none; }
  .today-page .arrival-toggle .ui-icon { display: inline; }
  .today-card-actions .payment-toggle,
  .today-page .payment-toggle {
    width: auto;
    min-width: 0;
    min-height: 39px;
    height: auto;
    justify-content: center;
    gap: 7px;
    padding: 8px 10px;
    border-radius: 11px;
    font-size: 10px;
  }
  .today-card-actions .payment-toggle span:not(.payment-knob),
  .today-page .payment-toggle > span:last-child { display: inline; }
  .today-card-actions .payment-knob { width: 12px; height: 12px; }

  /* Operational center is compact and scrollable on a phone. */
  .today-action-center { border-radius: 16px; }
  .today-action-center-head { min-height: 57px; padding: 10px 12px; }
  .today-action-center-head h2 { font-size: 14px; }
  .today-action-center-head > small { font-size: 10px; }
  .today-action-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
  }
  .today-action-grid > button {
    min-height: 72px;
    gap: 7px;
    padding: 10px 8px;
  }
  .today-action-grid .action-icon { width: 29px; height: 29px; flex-basis: 29px; border-radius: 9px; }
  .today-action-grid strong { font-size: 15px; }
  .today-action-grid small { font-size: 9px; white-space: normal; }

  /* Global search becomes a comfortable bottom sheet. */
  .global-search-layer { place-items: end center; padding: 0; }
  .global-search-panel {
    width: 100%;
    max-height: min(78svh, 680px);
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 23px 23px 0 0;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .global-search-head { padding: 15px 15px 10px; }
  .global-search-head h2 { font-size: 24px; }
  .global-search-head > div > span { font-size: 10px; }
  .global-search-box { min-height: 51px; margin: 0 14px 11px; padding: 0 12px; }
  .global-search-box input { font-size: 12px; }
  .global-search-result {
    min-height: 70px;
    grid-template-columns: 58px minmax(0, 1fr) 18px;
    gap: 9px;
    padding: 10px 13px;
  }
  .global-search-room { min-height: 37px; padding: 4px; font-size: 10px; }
  .global-search-result-copy strong { font-size: 12px; }
  .global-search-result-copy small { font-size: 10px; }
  .global-search-meta { display: none; }
  .global-search-empty strong { font-size: 13px; }
  .global-search-empty small { font-size: 10px; }

  /* New booking is visually split into three easy sections with a sticky submit. */
  .new-booking-page { padding-bottom: 72px; }
  .booking-form { gap: 10px; padding: 0; border: 0; background: transparent; box-shadow: none; }
  .booking-form-section { padding: 13px; border-radius: 15px; box-shadow: 0 7px 22px rgba(65,22,33,.055); }
  .booking-form-section-head { margin-bottom: 13px; padding-bottom: 10px; }
  .booking-form-section-head strong { font-size: 13px; }
  .booking-form-section-head small { font-size: 10px; }
  .booking-form-section .form-grid { grid-template-columns: 1fr; gap: 12px; }
  .booking-form-section .field.wide { grid-column: auto; }
  .booking-submit-bar {
    position: fixed;
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(82px + env(safe-area-inset-bottom));
    left: max(12px, env(safe-area-inset-left));
    z-index: 170;
    margin: 0;
    padding: 7px;
    border: 1px solid rgba(211, 190, 183, .82);
    border-radius: 16px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 14px 34px rgba(48,16,25,.18);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
  }
  .booking-submit-bar .primary-button { width: 100%; min-height: 46px; border-radius: 12px; }

  /* Calendar agenda first-run experience gets more breathing room. */
  .calendar-view-agenda .calendar-search-wrap { order: initial; }
  .calendar-agenda { overflow: hidden; }
}

@media (max-width: 380px) {
  .today-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-mobile-hero-stats .today-hero-stat-copy > span { font-size: 9px; }
  .mobile-nav-item span { font-size: 10px; }
}

@media (max-width: 900px) {
  .today-card-actions:not(:has(.arrival-toggle)) .payment-toggle { grid-column: 1 / -1; }
}

/* ========================================================================== */
/* SUNWINE v11 · Georgian localization polish + mobile overflow fixes         */
/* ========================================================================== */

@media (max-width: 900px) {
  /* Keep the Today date label and Georgian hero labels inside their controls. */
  .today-current-date,
  .today-current-date-copy,
  .today-current-date-copy > strong,
  .today-current-date-copy > span {
    min-width: 0;
    max-width: 100%;
  }

  .today-current-date-copy > strong {
    overflow: hidden;
    text-overflow: ellipsis;
  }

  html[data-language="ka"] .today-current-date-copy > strong {
    font-size: 10px;
    letter-spacing: -.025em;
  }

  html[data-language="ka"] .today-mobile-hero-stats .today-hero-stat-copy > span {
    max-width: 100%;
    padding-inline: 2px;
    font-size: 8.5px;
    line-height: 1.18;
    letter-spacing: -.02em;
    overflow-wrap: anywhere;
  }

  /* Give guest names more room: actions use a narrow vertical rail. */
  .today-page .today-card {
    grid-template-columns: 54px minmax(0, 1fr) 108px;
    align-items: start;
  }

  .today-page .guest-info {
    min-width: 0;
  }

  .today-page .guest-info > strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .today-page .today-card-actions {
    grid-column: 3;
    grid-row: 1;
    width: 108px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    align-self: start;
  }

  .today-page .today-card-actions:has(.payment-toggle:only-child) {
    grid-template-columns: minmax(0, 1fr);
  }

  .today-page .arrival-toggle,
  .today-page .payment-toggle,
  .today-card-actions .arrival-toggle,
  .today-card-actions .payment-toggle {
    width: 100%;
    min-width: 0;
    min-height: 32px;
    height: 32px;
    padding: 5px 7px;
    border-radius: 10px;
    font-size: 9px;
    line-height: 1.05;
    white-space: nowrap;
  }

  .today-page .payment-toggle,
  .today-card-actions .payment-toggle {
    gap: 5px;
  }

  .today-page .payment-knob,
  .today-card-actions .payment-knob {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
  }

  .today-page .stay-period {
    grid-column: 2 / -1;
    grid-row: 2;
  }

  html[data-language="ka"] .today-page .arrival-toggle,
  html[data-language="ka"] .today-page .payment-toggle {
    font-size: 8.5px;
    letter-spacing: -.015em;
  }

  html[data-language="ka"] .today-action-center-head h2 {
    font-size: 13px;
    line-height: 1.24;
  }

  html[data-language="ka"] .today-action-grid small {
    font-size: 8.5px;
    line-height: 1.2;
  }

  /* Calendar period picker must never exceed the mobile card width. */
  .calendar-date-drawer,
  .calendar-date-drawer .calendar-toolbar,
  .calendar-date-drawer .calendar-picker,
  .calendar-date-drawer .calendar-picker input {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  .calendar-date-drawer {
    width: 100%;
    overflow: hidden;
  }

  .calendar-date-drawer .calendar-toolbar {
    width: 100%;
  }

  .calendar-date-drawer .calendar-picker {
    width: 100%;
    overflow: hidden;
  }

  .calendar-date-drawer .calendar-picker input {
    width: 100%;
  }
}

@media (max-width: 560px) {
  .calendar-date-drawer .calendar-toolbar {
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 40px;
    gap: 7px;
  }

  .calendar-date-drawer .calendar-toolbar .icon-button {
    width: 40px;
    min-width: 40px;
    height: 42px;
    padding: 0;
  }

  .calendar-date-drawer .calendar-picker input {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    font-size: 16px;
  }

  .calendar-date-drawer .calendar-toolbar .secondary-button {
    width: 100%;
    min-width: 0;
    grid-column: 1 / -1;
    white-space: normal;
  }

  html[data-language="ka"] .calendar-search-input {
    font-size: 11px;
  }
}

@media (max-width: 380px) {
  .today-page .today-card {
    grid-template-columns: 50px minmax(0, 1fr) 100px;
    gap: 8px;
  }

  .today-page .today-card-actions {
    width: 100px;
  }

  .today-page .arrival-toggle,
  .today-page .payment-toggle {
    padding-inline: 5px;
    font-size: 8.5px;
  }
}
