:root {
  --ink: #183047;
  --muted: #6c7b89;
  --line: #dce4ea;
  --canvas: #f3f6f8;
  --panel: #ffffff;
  --brand: #173b60;
  --booking: #718294;
  --booking-dark: #5e6f80;
  --free: #f8fbfc;
  --today: #fff8d8;
  --sidebar: 270px;
  --day: 44px;
  --stats: 258px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-width: 960px;
  color: var(--ink);
  background: var(--canvas);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button { font: inherit; }

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

.topbar {
  min-height: 68px;
  padding: 0 28px;
  color: white;
  background: var(--brand);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.brand { display: flex; align-items: center; gap: 12px; }
.brand-logo-wrap { width: 92px; height: 46px; padding: 3px 6px; display: grid; place-items: center; overflow: hidden; border-radius: 6px; background: #fff; }
.brand-logo { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand h1 { font-size: 20px; margin: 0; letter-spacing: .2px; }
.brand p { margin: 2px 0 0; font-size: 12px; opacity: .74; }

.month-nav { display: flex; align-items: center; gap: 10px; }
.month-title { min-width: 152px; text-align: center; font-size: 17px; font-weight: 700; text-transform: capitalize; }
.icon-button, .today-button, .home-button {
  border: 0;
  color: white;
  background: rgba(255,255,255,.13);
  cursor: pointer;
  border-radius: 8px;
  height: 36px;
  padding: 0 12px;
}
.home-button { display: inline-flex; align-items: center; text-decoration: none; }
.icon-button { width: 36px; padding: 0; font-size: 22px; }
.icon-button:hover, .today-button:hover, .home-button:hover { background: rgba(255,255,255,.23); }

.internal-panel { width: min(700px, calc(100vw - 32px)); }
.internal-content { max-height: min(68vh, 720px); overflow: auto; padding: 4px 0 10px; }
.internal-section { margin: 16px 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.internal-section header { min-height: auto; padding: 13px 15px; display: flex; align-items: center; justify-content: space-between; color: var(--ink); background: #f6f9fb; border-bottom: 1px solid var(--line); }
.internal-section header div { display: grid; gap: 3px; }
.internal-section header span, .internal-section header em { color: var(--muted); font-size: 12px; font-style: normal; }
.internal-price-list, .internal-listings { margin: 0; padding: 0; list-style: none; }
.internal-price-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(128px, 1fr)); }
.internal-price-list li { min-height: 52px; padding: 9px 12px; display: grid; gap: 3px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.internal-price-list span { color: var(--muted); font-size: 11px; text-transform: capitalize; }
.internal-price-list strong { color: #8a6510; font-size: 15px; }
.internal-listings li { padding: 12px 15px; display: grid; gap: 4px; border-bottom: 1px solid var(--line); }
.internal-listings li:last-child { border-bottom: 0; }
.internal-listings span { color: var(--muted); font-size: 12px; }
.internal-empty { margin: 22px; padding: 24px; color: var(--muted); background: #f6f9fb; border: 1px solid var(--line); border-radius: 12px; text-align: center; }
.internal-empty strong { display: block; color: var(--ink); }
.internal-empty p { margin: 8px 0 0; font-size: 13px; line-height: 1.45; }

.statusbar {
  margin: 18px auto 14px;
  width: min(1840px, calc(100% - 48px));
  min-height: 62px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 3px 14px rgba(25, 48, 71, .06);
}

.building-summary { display: flex; align-items: stretch; border-right: 1px solid var(--line); }
.building-summary > div { min-width: 142px; padding: 0 16px 0 8px; border-right: 1px solid var(--line); }
.building-summary > div:last-child { border-right: 0; }
.building-summary strong { display: block; font-size: 12px; }
.building-summary span { color: var(--muted); font-size: 11px; }
.metric { min-width: 105px; padding: 0 12px; border-right: 1px solid var(--line); }
.metric:last-of-type { border-right: 0; }
.metric-value { font-size: 19px; font-weight: 750; }
.metric-label { margin-top: 1px; color: var(--muted); font-size: 12px; }
.metric-free .metric-value { color: #25805c; }
.metric-busy .metric-value { color: #c14a4a; }
.metric-nights-busy .metric-value { color: #2f9366; }
.metric-nights-free .metric-value { color: #b68616; }
.metric-potential .metric-value { color: #b44b39; }
.sync-note { margin-left: auto; padding: 0 8px; display: flex; align-items: center; gap: 12px; color: var(--muted); font-size: 12px; }
.legend-item { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.refresh-button { border: 0; border-radius: 7px; padding: 8px 12px; color: white; background: #2f9366; cursor: pointer; font-size: 12px; font-weight: 750; white-space: nowrap; }
.refresh-button:hover { background: #21805a; }
.refresh-button:disabled { cursor: wait; opacity: .72; }
.strategy-button, .opportunities-button, .daily-button, .summary-button, .history-button { border: 1px solid #d3dce3; border-radius: 7px; padding: 8px 12px; color: #294257; background: #f8fafb; cursor: pointer; font-size: 12px; font-weight: 750; white-space: nowrap; }
.strategy-button:hover, .opportunities-button:hover, .daily-button:hover, .summary-button:hover, .history-button:hover { background: #edf3f7; }
.summary-button { color: #654e9d; background: #f2edff; border-color: #d6c9f2; }
.summary-button:hover { background: #e9e0ff; }
.history-button { color: #24616b; background: #e8f6f7; border-color: #b8dde0; }
.history-button:hover { background: #d8eff1; }
.daily-button { color: #245b84; background: #edf6fb; border-color: #bfd7e7; }
.daily-button:hover { background: #dceef8; }
.opportunities-button { color: #8a6510; background: #fff8df; border-color: #ead18a; }
.opportunities-button:hover { background: #fff0bc; }

.calendar-workspace { position: relative; width: min(1840px, calc(100% - 48px)); margin: 0 auto 36px; }
.calendar-actions { position: absolute; z-index: 2; top: 0; right: calc(100% + 18px); width: 168px; display: grid; gap: 10px; }
.calendar-actions .strategy-button, .calendar-actions .opportunities-button, .calendar-actions .daily-button, .calendar-actions .summary-button, .calendar-actions .history-button { width: 100%; min-height: 62px; padding: 11px 13px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; border-radius: 10px; box-shadow: 0 3px 14px rgba(25, 48, 71, .08); text-align: left; white-space: normal; }
.calendar-actions button span { font-size: 13px; font-weight: 850; }
.calendar-actions button small { margin-top: 3px; color: #6c7b89; font-size: 10px; font-weight: 650; }
.calendar-actions .opportunities-button small { color: #9a7618; }
.calendar-actions .daily-button small { color: #477998; }
.calendar-actions .summary-button small { color: #735caa; }
.calendar-actions .history-button small { color: #397985; }

.calendar-frame {
  width: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 0 3px 14px rgba(25, 48, 71, .06);
}
.calendar-scroll {
  /* Las habitaciones se desplazan dentro del calendario; los días permanecen visibles. */
  max-height: calc(100vh - 185px);
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}
.calendar-grid { min-width: max-content; }
.building-divider { width: calc(var(--sidebar) + var(--days) * var(--day) + var(--stats)); min-height: 32px; padding: 8px 14px 8px 0; display: flex; align-items: center; justify-content: space-between; color: #fff; background: #526f89; font-size: 11px; font-weight: 850; letter-spacing: .8px; }
.building-divider span { position: sticky; left: 18px; z-index: 12; display: inline-block; padding-left: 18px; }
.building-divider-stats { position: sticky; right: 14px; z-index: 11; padding: 4px 0 4px 14px; background: #526f89; white-space: nowrap; font-size: 11px; }

.date-header, .room-row {
  display: grid;
  grid-template-columns: var(--sidebar) repeat(var(--days), var(--day)) var(--stats);
  position: relative;
}
.date-header { position: sticky; top: 0; z-index: 4; background: #f8fafb; border-bottom: 1px solid var(--line); }
.corner, .room-name {
  position: sticky;
  left: 0;
  z-index: 3;
  background: var(--panel);
  border-right: 1px solid var(--line);
}
.corner { padding: 16px 18px; color: var(--ink); font-size: 13px; font-weight: 800; letter-spacing: .8px; }
.day-head { padding: 10px 0 9px; text-align: center; border-right: 1px solid #edf1f3; color: var(--muted); font-size: 11px; }
.day-head strong { display: block; margin-top: 3px; color: var(--ink); font-size: 15px; }
.day-head.today { background: #ffe0ae; color: #97510d; box-shadow: inset 0 -4px 0 #f28c28; }
.room-stats-header { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 14px 10px; color: var(--ink); background: #f8fafb; border-left: 1px solid var(--line); text-align: center; font-size: 9px; font-weight: 850; letter-spacing: .35px; white-space: nowrap; }

.room-row { min-height: 68px; border-bottom: 1px solid var(--line); }
.room-row:last-child { border-bottom: 0; }
.room-name { grid-column: 1; grid-row: 1; z-index: 12; display: flex; flex-direction: column; justify-content: center; min-width: 0; padding: 8px 18px; background: #fff; box-shadow: 5px 0 12px rgba(28, 51, 72, .08); isolation: isolate; }
.room-code { color: #6c7b89; font-size: 12px; font-weight: 750; letter-spacing: .2px; }
.room-title { display: block; margin-top: 2px; overflow: hidden; color: #173b60; font-size: 15px; font-weight: 800; text-overflow: ellipsis; white-space: nowrap; }
.room-label { display: block; margin-top: 2px; color: #9aa7b2; font-size: 9px; font-weight: 750; letter-spacing: .8px; }
.room-stats { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 0 10px; color: var(--muted); background: #fff; border-left: 1px solid var(--line); font-size: 11px; white-space: nowrap; }
.room-stats span { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.room-stats strong { color: var(--ink); font-size: 15px; }
.room-stats .occupied-stat strong { color: #2f9366; }
.room-stats .free-stat strong { color: #b68616; }
.day-cell { position: relative; grid-row: 1; background: #fff2bd; border-right: 1px solid #eadc9a; }
.day-cell.weekend { background: #ffedab; }
.day-cell.free-day { background: #fff2bd; }
.airbnb-price { position: absolute; right: 3px; bottom: 3px; color: #74550d; font-size: 10px; font-weight: 850; letter-spacing: -.2px; }
.day-cell.occupied { background: var(--occupied-color); border-right-color: rgba(255,255,255,.30); }
.day-cell.occupied.weekend { background: var(--occupied-color); }
.day-cell.occupied.today { background: var(--occupied-color); }
.day-cell.checkout { position: relative; box-shadow: inset 4px 0 0 #4188d4; }
.day-cell.occupied.turnover {
  overflow: hidden;
  background: linear-gradient(to bottom right, var(--checkout-color) 0 47%, #ffffff 47% 53%, var(--checkin-color) 53% 100%);
  box-shadow: none;
}
.day-cell.checkout-free {
  overflow: hidden;
  background: linear-gradient(to bottom right, var(--checkout-color) 0 47%, #ffffff 47% 53%, #fff2bd 53% 100%);
  box-shadow: none;
}
.day-cell.occupied.checkin-free {
  overflow: hidden;
  background: linear-gradient(to bottom right, #fff2bd 0 47%, #ffffff 47% 53%, var(--checkin-color) 53% 100%);
  box-shadow: none;
}
.checkout-marker { position: absolute; right: 3px; bottom: 4px; color: #2567ad; font-size: 8px; font-weight: 800; letter-spacing: .1px; }
.turnover-marker { right: 2px; bottom: 3px; max-width: calc(100% - 4px); overflow: hidden; color: #1c639c; font-size: 7px; white-space: nowrap; }

.reservation-bar {
  grid-row: 1;
  align-self: stretch;
  z-index: 1;
  height: 100%;
  margin: 0;
  padding: 0 10px;
  display: flex;
  align-items: center;
  gap: 7px;
  overflow: hidden;
  color: #ffffff;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
  --label-color: #718294;
}
.reservation-bar:hover { box-shadow: inset 0 0 0 2px rgba(255,255,255,.82); }
.reservation-bar.channel-booking { background: transparent; --label-color: #4f83c6; }
.reservation-bar.channel-airbnb { background: transparent; --label-color: #df766f; }
.reservation-bar.channel-direct { background: transparent; --label-color: #718294; }
.reservation-bar .guest { position: relative; z-index: 2; max-width: calc(100% - 44px); padding: 4px 7px; overflow: hidden; color: white; background: var(--label-color); border-radius: 4px; text-overflow: ellipsis; white-space: nowrap; font-weight: 800; font-size: 12px; }
.reservation-bar .nights { position: relative; z-index: 2; margin-left: auto; padding: 4px 6px; color: rgba(255,255,255,.95); background: var(--label-color); border-radius: 4px; opacity: 1; font-size: 11px; white-space: nowrap; }
.reservation-bar .guest-count { position: relative; z-index: 2; padding: 4px 3px; color: rgba(255,255,255,.9); background: var(--label-color); font-size: 10px; white-space: nowrap; }
.reservation-bar.diagonal-start .guest { margin-left: calc(var(--day) * .56); }

.legend { display: inline-block; width: 9px; height: 9px; margin: 0; border-radius: 50%; }
.legend.reservation, .legend.direct { background: #718294; }
.legend.booking { background: #4f83c6; }
.legend.airbnb { background: #df766f; }
.legend.later { background: #e2b63e; }

.empty, .loading { padding: 44px; text-align: center; color: var(--muted); }
.error { padding: 18px; color: #9f3030; background: #fff0f0; border-radius: 10px; }

.modal-backdrop { position: fixed; inset: 0; z-index: 10; display: grid; place-items: center; background: rgba(17, 32, 47, .38); }
.reservation-panel { width: min(420px, calc(100vw - 40px)); padding: 24px; background: white; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.24); }
.reservation-panel header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; }
.reservation-panel h2 { margin: 0; font-size: 20px; }
.reservation-panel p { margin: 5px 0 0; color: var(--muted); }
.close-button { color: var(--ink); background: #edf2f5; border: 0; width: 32px; height: 32px; cursor: pointer; border-radius: 50%; font-size: 18px; }
.details { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 24px; }
.detail { padding: 12px; background: #f6f8fa; border-radius: 9px; }
.detail span { display: block; color: var(--muted); font-size: 11px; }
.detail strong { display: block; margin-top: 4px; font-size: 14px; }
.strategy-panel { width: min(600px, calc(100vw - 40px)); }
.strategy-section { margin-top: 18px; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.strategy-section.urgent { border-left: 5px solid #df766f; }
.strategy-section.attention { border-left: 5px solid #e2b63e; }
.strategy-section h3 { margin: 0; font-size: 16px; }
.strategy-date { margin: 4px 0 10px; font-weight: 750; text-transform: capitalize; }
.strategy-section ul { margin: 0; padding-left: 18px; }
.strategy-section li { margin: 5px 0; font-size: 13px; }
.strategy-section li span, .strategy-action span { color: var(--muted); }
.price-list { list-style: none; padding-left: 0 !important; }
.price-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid #edf0f2; }
.price-list li:last-child { border-bottom: 0; }
.price-list li div { display: grid; gap: 2px; }
.price-list li span { font-size: 12px; color: var(--muted); }
.price-list li b { flex: 0 0 auto; padding: 5px 8px; border-radius: 7px; background: #fff2bd; color: #705314; }
.strategy-action { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.5; }
.strategy-ok { margin: 0; color: #2f9366; font-weight: 700; }
.opportunities-panel { width: min(720px, calc(100vw - 40px)); max-height: calc(100vh - 48px); overflow: auto; }
.opportunity-list { display: grid; gap: 9px; margin-top: 18px; }
.opportunity-building { display: grid; gap: 8px; }
.opportunity-building > header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 9px 11px; color: #fff; background: #526f89; border-radius: 8px; }
.opportunity-building > header strong { font-size: 12px; letter-spacing: .55px; }
.opportunity-building > header span { font-size: 11px; font-weight: 700; white-space: nowrap; }
.opportunity { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 14px; background: #fff9e4; border: 1px solid #f0dda0; border-left: 5px solid #e2b63e; border-radius: 9px; }
.opportunity strong { display: block; color: var(--ink); font-size: 14px; }
.opportunity span { display: block; margin-top: 4px; color: var(--muted); font-size: 12px; }
.opportunity b { color: #9a6c0a; font-size: 16px; white-space: nowrap; }
.daily-panel { width: min(980px, calc(100vw - 40px)); max-height: calc(100vh - 48px); overflow: auto; }
.daily-list { display: grid; gap: 14px; margin-top: 18px; }
.daily-building { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.daily-building > header { display: flex; justify-content: space-between; gap: 12px; padding: 10px 13px; color: #fff; background: #526f89; }
.daily-building > header strong { font-size: 12px; letter-spacing: .55px; }
.daily-building > header span { font-size: 11px; font-weight: 700; white-space: nowrap; }
.daily-columns { display: grid; grid-template-columns: repeat(3, 1fr); }
.daily-section { min-height: 104px; padding: 12px; border-right: 1px solid var(--line); }
.daily-section:last-child { border-right: 0; }
.daily-section h3 { margin: 0 0 8px; font-size: 13px; }
.daily-section.arrival h3 { color: #2f9366; }
.daily-section.departure h3 { color: #df766f; }
.daily-section.cleaning h3 { color: #a47a14; }
.daily-section ul { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.daily-section li { display: grid; gap: 2px; font-size: 12px; }
.daily-section li strong { color: var(--ink); }
.daily-section li span, .daily-empty { color: var(--muted); font-size: 11px; }
.daily-empty { margin: 0; }
.operation-state { justify-self: start; margin-top: 4px; padding: 5px 7px; color: #245b84; background: #edf6fb; border: 1px solid #bfd7e7; border-radius: 5px; cursor: pointer; font-size: 10px; font-weight: 750; }
.operation-state.is-done { color: #22744f; background: #e7f5ed; border-color: #a9d7bd; }
.incident-form { margin-top: 14px; padding: 13px; background: #f8fafb; border: 1px solid var(--line); border-radius: 10px; }
.incident-form h3 { margin: 0 0 10px; font-size: 13px; }
.incident-form > div { display: grid; grid-template-columns: 210px 1fr auto; gap: 8px; }
.incident-form select, .incident-form input { min-width: 0; padding: 8px 9px; color: var(--ink); border: 1px solid #ccd8e1; border-radius: 6px; font: inherit; font-size: 12px; }
.incident-form button { padding: 8px 11px; color: #fff; background: #526f89; border: 0; border-radius: 6px; cursor: pointer; font-size: 12px; font-weight: 750; }
.weekly-panel { width: min(820px, calc(100vw - 40px)); max-height: calc(100vh - 48px); overflow: auto; }
.weekly-list { display: grid; gap: 12px; margin-top: 18px; }
.weekly-building { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.weekly-building > header { display: flex; justify-content: space-between; gap: 12px; padding: 10px 13px; color: #fff; background: #526f89; }
.weekly-building > header strong { font-size: 12px; letter-spacing: .55px; }
.weekly-building > header span { font-size: 12px; font-weight: 750; }
.weekly-metrics { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--line); }
.weekly-metrics div { padding: 11px; border-right: 1px solid var(--line); text-align: center; }
.weekly-metrics div:last-child { border-right: 0; }
.weekly-metrics b, .weekly-metrics span { display: block; }
.weekly-metrics b { color: var(--ink); font-size: 17px; }
.weekly-metrics span { margin-top: 2px; color: var(--muted); font-size: 10px; }
.weekly-building p, .weekly-rooms { margin: 0; padding: 10px 12px; color: #52606c; font-size: 12px; line-height: 1.4; }
.weekly-rooms { padding-top: 0; color: var(--muted); }
.payment-note { display: grid; gap: 4px; margin-top: 14px; padding: 13px; background: #f8fafb; border: 1px solid var(--line); border-radius: 10px; }
.payment-note strong { font-size: 13px; }
.payment-note span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.history-panel { width: min(860px, calc(100vw - 40px)); max-height: calc(100vh - 48px); overflow: auto; }
.history-list { display: grid; gap: 13px; margin-top: 18px; }
.history-building { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.history-building > header { display: flex; justify-content: space-between; gap: 12px; padding: 10px 13px; color: #fff; background: #526f89; }
.history-building > header strong { font-size: 12px; letter-spacing: .55px; }
.history-building > header span { font-size: 11px; font-weight: 700; }
.history-building table { width: 100%; border-collapse: collapse; }
.history-building th, .history-building td { padding: 10px 12px; border-bottom: 1px solid var(--line); text-align: left; font-size: 12px; }
.history-building th { color: var(--muted); background: #f8fafb; font-size: 10px; letter-spacing: .3px; text-transform: uppercase; }
.history-building td:nth-child(n+2), .history-building th:nth-child(n+2) { text-align: right; }
.history-building tbody tr:last-child td { border-bottom: 0; }

@media (max-width: 1100px) {
  :root { --sidebar: 230px; --day: 40px; }
  .topbar { padding: 0 18px; }
  .statusbar { overflow-x: auto; }
  .sync-note { display: none; }
}

@media (max-width: 2100px) {
  .calendar-actions { position: static; width: auto; margin: 0 0 10px; display: flex; gap: 10px; }
  .calendar-actions .strategy-button, .calendar-actions .opportunities-button, .calendar-actions .daily-button, .calendar-actions .summary-button, .calendar-actions .history-button { width: auto; min-width: 166px; }
}

@media (max-width: 700px) {
  :root { --sidebar: 170px; --day: 36px; --stats: 198px; }

  body { min-width: 0; }
  .topbar { min-height: auto; padding: 12px 14px; flex-wrap: wrap; gap: 10px; }
  .brand h1 { font-size: 18px; }
  .brand-logo-wrap { width: 76px; height: 40px; }
  .month-nav { width: 100%; justify-content: space-between; }
  .month-title { min-width: 0; font-size: 16px; }
  .statusbar { width: calc(100% - 20px); margin-top: 10px; padding: 10px 6px; gap: 0; border-radius: 10px; }
  .building-summary > div { min-width: 138px; padding: 0 10px; }
  .metric { min-width: 82px; padding: 0 8px; }
  .metric-value { font-size: 17px; }
  .metric-label { font-size: 10px; }
  .refresh-button { margin: 0 8px; }
  .calendar-workspace { width: calc(100% - 20px); margin-bottom: 18px; }
  .calendar-actions { overflow-x: auto; }
  .calendar-actions .strategy-button, .calendar-actions .opportunities-button, .calendar-actions .daily-button, .calendar-actions .summary-button, .calendar-actions .history-button { min-width: 150px; }
  .daily-columns { grid-template-columns: 1fr; }
  .daily-section { border-right: 0; border-bottom: 1px solid var(--line); }
  .daily-section:last-child { border-bottom: 0; }
  .incident-form > div { grid-template-columns: 1fr; }
  .weekly-metrics { grid-template-columns: 1fr; }
  .weekly-metrics div { border-right: 0; border-bottom: 1px solid var(--line); }
  .weekly-metrics div:last-child { border-bottom: 0; }
  .calendar-frame { border-radius: 10px; }
  .calendar-scroll { max-height: calc(100vh - 200px); }
  .corner { padding: 14px 12px; font-size: 11px; }
  .day-head { padding: 8px 0; font-size: 10px; }
  .day-head strong { font-size: 13px; }
  .room-name { padding: 7px 10px; }
  .room-title { font-size: 13px; }
  .room-code { font-size: 10px; }
  .room-stats { gap: 6px; padding: 0 4px; font-size: 8px; }
  .room-stats strong { font-size: 11px; }
  .room-stats-header { gap: 6px; padding: 10px 3px; font-size: 7px; }
  .reservation-bar { height: 100%; margin: 0; padding: 0 6px; gap: 3px; }
  .reservation-bar .guest { font-size: 10px; }
  .reservation-bar .nights { font-size: 9px; }
  .reservation-bar .guest-count { display: none; }

  .mobile-calendar-page { width: min(100% - 28px, 620px); margin: 18px auto 32px; }
  .mobile-room-picker { padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 3px 14px rgba(25, 48, 71, .06); }
  .mobile-room-picker label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
  .mobile-room-picker select { width: 100%; min-height: 48px; padding: 0 12px; color: var(--ink); background: #fff; border: 2px solid #bdd0df; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 750; }
  .mobile-room-meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; color: var(--muted); font-size: 11px; }
  .mobile-room-meta strong { color: #526f89; font-size: 10px; letter-spacing: .55px; }
  .mobile-month-grid { margin-top: 16px; overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 3px 14px rgba(25, 48, 71, .06); }
  .mobile-weekdays, .mobile-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .mobile-weekdays { background: #f3f6f8; border-bottom: 1px solid var(--line); }
  .mobile-weekdays span { padding: 12px 0; color: #52606c; border-right: 1px solid var(--line); text-align: center; font-size: 10px; font-weight: 800; }
  .mobile-weekdays span:nth-child(7) { color: #c65a56; border-right: 0; }
  .mobile-day { position: relative; min-width: 0; min-height: 72px; padding: 7px 5px; display: block; color: #687988; background: #fff2bd; border: 0; border-right: 1px solid #eadc9a; border-bottom: 1px solid #eadc9a; cursor: default; text-align: left; }
  .mobile-day:nth-child(7n) { border-right: 0; }
  .mobile-day.mobile-empty-day { min-height: 72px; background: #fafcfd; border-color: #edf1f3; }
  button.mobile-day { cursor: pointer; }
  .mobile-day-number { position: relative; z-index: 2; display: block; font-size: 15px; font-weight: 800; }
  .mobile-day.mobile-occupied { color: #fff; background: var(--mobile-reservation); border-color: rgba(255, 255, 255, .28); }
  .mobile-day.mobile-turnover { color: #fff; background: linear-gradient(to bottom right, var(--mobile-leaving) 0 44%, #fff 44% 56%, var(--mobile-arriving) 56% 100%); border-color: rgba(255, 255, 255, .35); }
  .mobile-day.mobile-checkout-free { color: #fff; background: linear-gradient(to bottom right, var(--mobile-leaving) 0 44%, #fff 44% 56%, #fff2bd 56% 100%); }
  .mobile-day.mobile-checkin-free { color: #fff; background: linear-gradient(to bottom right, #fff2bd 0 44%, #fff 44% 56%, var(--mobile-arriving) 56% 100%); }
  .mobile-day.mobile-today { box-shadow: inset 0 0 0 3px #173b60; }
  .mobile-guest { position: relative; z-index: 2; display: block; margin-top: 7px; overflow: hidden; color: inherit; font-size: 9px; font-weight: 800; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-airbnb-price { position: absolute; right: 4px; bottom: 4px; color: #72540f; font-size: 9px; font-weight: 850; }
  .mobile-legend { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 7px; margin: 14px 0 0; color: var(--muted); font-size: 10px; }
  .mobile-legend span { width: 9px; height: 9px; border-radius: 50%; }
  .mobile-legend-booking { background: #4f83c6; }
  .mobile-legend-airbnb { background: #df766f; }
  .mobile-legend-free { background: #fff2bd; border: 1px solid #e2c85d; }

  .mobile-property-picker { padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 3px 14px rgba(25, 48, 71, .06); }
  .mobile-property-picker label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 11px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
  .mobile-property-picker select { width: 100%; min-height: 48px; padding: 0 12px; color: var(--ink); background: #fff; border: 2px solid #bdd0df; border-radius: 10px; font: inherit; font-size: 15px; font-weight: 750; }
  .mobile-property-meta { display: flex; justify-content: space-between; gap: 10px; margin-top: 12px; color: var(--muted); font-size: 11px; }
  .mobile-property-meta strong { color: #526f89; font-size: 11px; }
  .mobile-view-note { margin: 15px 2px 9px; color: var(--muted); font-size: 11px; text-align: center; }
  .mobile-room-list { display: grid; gap: 10px; }
  .mobile-room-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 2px 9px rgba(25, 48, 71, .05); }
  .mobile-room-card header { min-height: 49px; padding: 8px 11px; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #fff; border-bottom: 1px solid var(--line); }
  .mobile-room-card header div { min-width: 0; display: grid; gap: 2px; }
  .mobile-room-card header span { color: #6c7b89; font-size: 10px; font-weight: 750; }
  .mobile-room-card header strong { overflow: hidden; color: #173b60; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
  .mobile-room-card header small { flex: 0 0 auto; color: #718294; font-size: 10px; font-weight: 750; white-space: nowrap; }
  .mobile-room-card .mobile-day { min-height: 47px; padding: 4px; }
  .mobile-room-card .mobile-empty-day { min-height: 47px; }
  .mobile-room-card .mobile-day-number { font-size: 11px; }
  .mobile-room-card .mobile-guest { margin-top: 3px; font-size: 7px; }
}
