:root {
  color-scheme: light;
  --navy: #102c35;
  --navy-soft: #193d46;
  --primary: #0f766e;
  --primary-dark: #0b625b;
  --accent: #2dd4bf;
  --page: #f4faf8;
  --surface: #fff;
  --text: #172c33;
  --muted: #64748b;
  --subtle: #91a1ab;
  --border: #dceae7;
  --mint: #e8f6f2;
  --font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading: "Plus Jakarta Sans", var(--font-body);
  font-family: var(--font-body);
  color: var(--text);
  background: var(--page);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
* { box-sizing: border-box; }
html {
  scrollbar-width: thin;
  scrollbar-color: #9aada8 #edf3f1;
}
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track {
  background: #edf3f1;
}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
  border: 2px solid #edf3f1;
  border-radius: 999px;
  background: #9aada8;
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover {
  background: #718a84;
}
body { min-width: 320px; min-height: 100vh; margin: 0; background: var(--page); font-size: 13px; }
button, input { font: inherit; }
button { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible { outline: 3px solid rgba(45, 212, 191, .65); outline-offset: 3px; }
a { color: inherit; text-decoration: none; }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; z-index: 30; display: flex; flex-direction: column; width: 248px; height: 100vh; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(193, 214, 210, .38) transparent; padding: 25px 16px 15px; background: var(--navy); color: #e6f1ef; transition: transform .25s ease; }
.sidebar::-webkit-scrollbar { width: 5px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb { border-radius: 999px; background: rgba(193, 214, 210, .38); }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(193, 214, 210, .65); }
.brand { display: inline-flex; align-items: center; gap: 10px; width: fit-content; margin: 1px 0 30px 7px; font: 800 22px var(--font-heading); letter-spacing: -.9px; color: #fff; }
.brand-name span, .guest-brand > span:last-child span, .footer-brand > span:last-child span { color: var(--accent); }
.brand-mark { display: grid; width: 33px; height: 33px; place-items: center; border-radius: 11px 11px 11px 4px; color: var(--navy); background: var(--accent); }
.brand-mark svg { width: 20px; }
.property-switcher { display: flex; align-items: center; width: 100%; min-height: 58px; padding: 9px; margin-bottom: 29px; border: 1px solid rgba(216, 239, 233, .14); border-radius: 11px; background: rgba(255, 255, 255, .06); color: #fff; text-align: left; cursor: pointer; }
.property-avatar { display: grid; flex: 0 0 35px; width: 35px; height: 35px; place-items: center; border-radius: 9px; color: #17463f; background: #c1e9d4; font: 700 16px var(--font-heading); }
.property-copy, .profile-copy { display: grid; gap: 4px; margin-left: 10px; }
.property-copy strong, .profile-copy strong { font-size: 11.5px; font-weight: 600; }
.property-copy small, .profile-copy small { font-size: 10px; color: #abc1bf; }
.switch-icon { width: 15px; margin-left: auto; color: #adc2bf; }
.nav-label { padding: 0 10px 10px; color: #829da0; font-size: 9px; font-weight: 700; letter-spacing: 1.15px; }
.tools-label { margin-top: 28px; }
.nav-list { display: grid; gap: 4px; }
.nav-link { position: relative; display: flex; align-items: center; gap: 12px; min-height: 40px; padding: 0 11px; border-radius: 8px; color: #c1d0cf; font-size: 12px; font-weight: 500; transition: background .15s, color .15s; }
.nav-link > svg { width: 16px; height: 16px; color: #aac0be; stroke-width: 1.8; }
.nav-link:hover { background: rgba(255, 255, 255, .07); color: #fff; }
.nav-link.active { color: #fff; background: rgba(45, 212, 191, .13); }
.nav-link.active:before { position: absolute; left: -16px; width: 3px; height: 20px; border-radius: 0 3px 3px 0; background: var(--accent); content: ""; }
.nav-link.active > svg { color: var(--accent); }
.nav-count { display: grid; width: 20px; height: 20px; margin-left: auto; place-items: center; border-radius: 6px; background: rgba(255, 255, 255, .11); color: #d9e7e4; font-size: 10px; }
.unread-dot, .notification-button span { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: #ff967d; box-shadow: 0 0 0 3px rgba(255, 150, 125, .12); }
.nav-tag { margin-left: auto; color: var(--accent); font-size: 8px; font-weight: 700; letter-spacing: .6px; }
.sidebar-bottom { margin-top: auto; }
.help-card { padding: 13px 12px 12px; margin-bottom: 17px; border: 1px solid rgba(216, 239, 233, .13); border-radius: 10px; background: rgba(255, 255, 255, .045); }
.help-icon { display: grid; width: 25px; height: 25px; margin-bottom: 10px; place-items: center; border-radius: 7px; background: rgba(45, 212, 191, .14); color: var(--accent); }
.help-icon svg { width: 14px; }
.help-card strong { font-size: 10px; }
.help-card p { margin: 5px 0 10px; color: #a9bfbd; font-size: 10px; line-height: 1.5; }
.help-card a { display: flex; align-items: center; gap: 4px; color: var(--accent); font-size: 10px; font-weight: 600; }
.help-card a svg { width: 12px; }
.settings-link { margin-bottom: 10px; }
.profile-button { display: flex; align-items: center; width: 100%; min-height: 55px; padding: 8px 5px; border: 0; border-top: 1px solid rgba(216, 239, 233, .12); background: transparent; color: #fff; text-align: left; cursor: pointer; }
.profile-avatar, .topbar-avatar { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #d4eddf; border-radius: 50%; background: #d8efe1; color: #25544d; font-size: 10px; font-weight: 700; }
.profile-button > svg { width: 16px; margin-left: auto; color: #9eb6b3; }
.main-content { min-height: 100vh; margin-left: 248px; }
.topbar { position: sticky; z-index: 10; top: 0; display: flex; align-items: center; justify-content: space-between; height: 67px; padding: 0 38px; border-bottom: 1px solid #e8f0ee; background: rgba(255, 255, 255, .92); backdrop-filter: blur(12px); }
.breadcrumb { display: flex; align-items: center; gap: 10px; color: #84949c; font-size: 11px; }
.breadcrumb svg { width: 13px; }
.breadcrumb strong { color: var(--text); font-weight: 600; }
.topbar-actions { display: flex; align-items: center; gap: 15px; }
.search-box { display: flex; align-items: center; width: 223px; height: 34px; padding: 0 9px; border: 1px solid #e4ecea; border-radius: 7px; background: #fbfdfc; color: #8b9ba1; }
.search-box > svg { width: 14px; flex: 0 0 14px; }
.search-box input { width: 100%; min-width: 0; padding: 0 7px; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 10px; }
.search-box input::placeholder { color: #9aa8ad; }
kbd { flex: 0 0 auto; padding: 3px 5px; border: 1px solid #e6eeec; border-radius: 4px; background: white; color: #9ca9ae; font: 9px var(--font-body); }
.icon-button { position: relative; display: grid; width: 33px; height: 33px; place-items: center; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #61737a; cursor: pointer; }
.icon-button:hover { border-color: var(--border); background: #f6faf9; }
.icon-button svg { width: 16px; }
.notification-button { margin-left: -5px; }
.notification-button span { position: absolute; top: 5px; right: 5px; width: 6px; height: 6px; margin: 0; }
.topbar-avatar { width: 29px; height: 29px; border: 0; font-size: 9px; cursor: pointer; }
.mobile-menu { display: none; }
.page-content { max-width: 1460px; padding: 29px 38px 16px; margin: 0 auto; }
.welcome-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.eyebrow { color: #84959b; font-size: 9px; font-weight: 700; letter-spacing: 1.05px; }
.welcome-row .eyebrow { display: flex; align-items: center; gap: 7px; margin-bottom: 9px; }
.live-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #35ad86; box-shadow: 0 0 0 3px rgba(53, 173, 134, .12); }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: var(--font-heading); }
h1 { margin-bottom: 5px; font-size: 24px; font-weight: 700; letter-spacing: -.8px; line-height: 1.3; }
.page-subtitle, .panel-description { margin-bottom: 0; color: var(--muted); font-size: 11px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 36px; padding: 0 14px; border: 1px solid transparent; border-radius: 7px; font-size: 10px; font-weight: 600; cursor: pointer; transition: background .15s, transform .15s; }
.button:active { transform: translateY(1px); }
.button svg { width: 14px; height: 14px; }
.button-primary { background: var(--primary); color: white; box-shadow: 0 2px 4px rgba(15, 118, 110, .14); }
.button-primary:hover { background: var(--primary-dark); }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 16px; }
.stat-card, .panel { border: 1px solid var(--border); border-radius: 10px; background: var(--surface); box-shadow: 0 2px 6px rgba(25, 61, 70, .018); }
.stat-card { position: relative; min-height: 153px; overflow: hidden; padding: 14px 15px 12px; }
.stat-top { display: flex; align-items: center; justify-content: space-between; color: #607179; font-size: 10px; font-weight: 500; }
.stat-icon { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; }
.stat-icon svg { width: 14px; height: 14px; }
.stat-icon.teal { background: #e4f5ee; color: #358774; }
.stat-icon.peach { background: #fff0e8; color: #cb8060; }
.stat-icon.lilac { background: #f0eefc; color: #796ab4; }
.stat-icon.butter { background: #fff8dd; color: #c59b37; }
.stat-value { display: flex; align-items: baseline; gap: 3px; margin-top: 9px; font: 700 25px var(--font-heading); letter-spacing: -.9px; }
.stat-value > span:first-of-type:not(.value-unit) { font-size: 16px; letter-spacing: 0; }
.stat-value .currency { color: #71838a; font: 600 9px var(--font-body); letter-spacing: .2px; }
.stat-value .value-unit { color: #819198; font: 500 11px var(--font-body); letter-spacing: 0; }
.stat-foot { display: flex; align-items: center; gap: 6px; margin-top: 5px; color: #849198; font-size: 9px; white-space: nowrap; }
.trend-up { display: inline-flex; align-items: center; gap: 3px; color: #218462; font-weight: 600; }
.trend-up svg { width: 12px; height: 12px; }
.stat-period { display: inline-flex; align-items: center; gap: 2px; margin-left: auto; color: #99a5a9; font-size: 7px; font-weight: 700; letter-spacing: .5px; }
.stat-period svg { width: 10px; height: 10px; }
.mini-chart { position: absolute; right: 15px; bottom: 12px; width: 56px; height: 25px; background: linear-gradient(165deg, transparent 45%, #b2dfcf 46%, #b2dfcf 49%, transparent 50%), linear-gradient(145deg, transparent 40%, #68bca1 41%, #68bca1 44%, transparent 45%); opacity: .68; }
.revenue-chart { background: linear-gradient(155deg, transparent 53%, #fad4bf 54%, #fad4bf 57%, transparent 58%), linear-gradient(140deg, transparent 36%, #eba981 37%, #eba981 40%, transparent 41%); }
.neutral-indicator { display: inline-flex; align-items: center; gap: 3px; color: #6b747d; font-weight: 500; }
.neutral-indicator svg { width: 11px; }
.progress-track { height: 4px; margin-top: 13px; overflow: hidden; border-radius: 8px; background: #eef3f2; }
.progress-track > span { display: block; height: 100%; border-radius: inherit; background: #8dcbbb; }
.progress-label { display: flex; justify-content: space-between; margin-top: 5px; color: #8c999e; font-size: 8px; }
.rating-stars { color: #e5ad45; font-size: 11px; letter-spacing: 1px; }
.review-avatars { display: flex; align-items: center; margin-top: 8px; }
.guest-avatar { display: grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border: 2px solid white; border-radius: 50%; color: #566169; font-size: 9px; font-weight: 700; }
.review-avatars .guest-avatar + .guest-avatar { margin-left: -8px; }
.avatar-one { background: #efd5cb; color: #81554d; }
.avatar-two { background: #d9e7d7; color: #476650; }
.avatar-three { background: #d8d5ed; color: #5c5685; }
.avatar-four { background: #f4e1b5; color: #82642c; }
.avatar-more { margin-left: 6px; color: #829097; font-size: 8px; }
.dashboard-grid, .bottom-grid { display: grid; grid-template-columns: minmax(0, 1.53fr) minmax(300px, 1fr); gap: 14px; margin-bottom: 14px; }
.panel { min-width: 0; padding: 17px 17px 14px; }
.operations-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 16px; padding-top: 13px; border-top: 1px solid #eff3f2; }
.operations-summary .button { min-width: 0; min-height: 40px; gap: 7px; padding: 0 10px; font-size: 10px; white-space: nowrap; }
.operations-summary .button svg { flex: 0 0 15px; width: 15px; height: 15px; }
.operations-summary .button-outline { border-color: #dce8e4; background: #fff; color: #526a6e; }
.operations-summary .button-outline:hover { border-color: #b8d4cb; background: #f5faf8; color: var(--primary); }
.operations-summary .button-primary { border-color: var(--primary); }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.panel-title-line { display: flex; align-items: center; gap: 8px; }
.panel-heading h2 { margin: 0; font-size: 13px; font-weight: 700; letter-spacing: -.2px; }
.panel-description { margin-top: 5px; font-size: 9.5px; }
.today-pill { padding: 4px 6px; border-radius: 4px; background: #eef7f4; color: #56847a; font-size: 7px; font-weight: 700; letter-spacing: .55px; }
.text-button, .footer-link { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; padding: 4px 0; border: 0; background: none; color: var(--primary); font-size: 9px; font-weight: 600; cursor: pointer; }
.text-button svg, .footer-link svg { width: 13px; height: 13px; }
.reservation-list { margin-top: 16px; }
.reservation-item { display: grid; grid-template-columns: 49px 12px minmax(125px, 1fr) minmax(98px, .86fr) 80px 19px; align-items: center; gap: 8px; min-height: 50px; border-top: 1px solid #eff3f2; }
.reservation-time { display: flex; align-items: baseline; gap: 3px; color: #61727a; }
.reservation-time strong { font-size: 10px; font-weight: 600; }
.reservation-time span { color: #9aa6aa; font-size: 8px; }
.timeline-line { position: relative; width: 8px; height: 32px; border-left: 1px solid #dfe9e7; }
.timeline-line:after { position: absolute; top: 12px; left: -4px; width: 7px; height: 7px; border: 1px solid white; border-radius: 50%; content: ""; }
.arrival-line:after { background: #59b99b; box-shadow: 0 0 0 1px #59b99b; }
.departure-line:after { background: #eead8b; box-shadow: 0 0 0 1px #eead8b; }
.stay-line:after { background: #a799d5; box-shadow: 0 0 0 1px #a799d5; }
.reservation-guest { display: flex; min-width: 0; align-items: center; gap: 8px; }
.reservation-guest .guest-avatar { width: 27px; height: 27px; flex-basis: 27px; font-size: 8px; }
.reservation-guest > div { display: grid; min-width: 0; gap: 4px; }
.reservation-guest strong { overflow: hidden; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.reservation-guest > div > span { color: #8a989d; font-size: 8px; }
.stay-dates { display: flex; align-items: center; gap: 5px; color: #718188; font-size: 8px; white-space: nowrap; }
.stay-dates svg { width: 11px; height: 11px; color: #9aa7aa; }
.status { display: inline-flex; align-items: center; gap: 4px; justify-content: center; padding: 5px 6px; border-radius: 5px; font-size: 8px; font-weight: 600; white-space: nowrap; }
.status svg { width: 10px; height: 10px; }
.status-arriving { background: #eaf6ef; color: #33835f; }
.status-departing { background: #fff1e9; color: #b97755; }
.status-in-house { background: #f0eef9; color: #76679f; }
.more-button { display: grid; width: 21px; height: 24px; place-items: center; border: 0; border-radius: 5px; background: transparent; color: #9aa6a9; cursor: pointer; }
.more-button:hover { background: #f3f8f6; color: var(--text); }
.more-button svg { width: 15px; }
.panel-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 11px; margin-top: 3px; border-top: 1px solid #eff3f2; color: #849198; font-size: 8px; }
.legend-dot { display: inline-block; width: 6px; height: 6px; margin: 0 4px 0 9px; border-radius: 50%; }
.legend-dot:first-child { margin-left: 0; }
.dot-arrival { background: #59b99b; }.dot-departure { background: #eead8b; }.dot-stay { background: #a799d5; }
.task-count { display: grid; width: 17px; height: 17px; place-items: center; border-radius: 50%; background: #fff0e8; color: #c07c56; font-size: 9px; font-weight: 700; }
.subtle-icon { width: 25px; height: 25px; color: #8a999e; }
.dashboard-arrival-list, .dashboard-action-list { display: grid; gap: 8px; margin-top: 16px; }
.dashboard-arrival-list .arrival-card { display: grid; min-height: 62px; grid-template-columns: 34px minmax(0, 1fr) 18px; align-items: center; gap: 10px; padding: 9px 10px; border: 1px solid #edf2f0; border-radius: 9px; background: #fff; color: inherit; transition: border-color .15s, background .15s, transform .15s; }
.dashboard-arrival-list .arrival-card:hover { transform: translateY(-1px); border-color: #cfe3dc; background: #fbfefd; }
.dashboard-arrival-list .arrival-card:focus-visible, .dashboard-action-list .action-item:focus-visible { outline: 3px solid rgba(45, 212, 191, .4); outline-offset: 2px; }
.operations-summary .button:focus-visible { outline: 3px solid rgba(45, 212, 191, .4); outline-offset: 2px; }
.dashboard-arrival-list .guest-avatar { width: 34px; height: 34px; flex-basis: 34px; font-size: 10px; }
.dashboard-arrival-list .arrival-card > span:nth-child(2), .dashboard-action-list .action-item > span:nth-child(2) { display: grid; min-width: 0; gap: 4px; }
.dashboard-arrival-list .arrival-card strong, .dashboard-action-list .action-item strong { overflow: hidden; color: #334b50; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-arrival-list .arrival-card small, .dashboard-action-list .action-item small { overflow: hidden; color: #839196; font-size: 8px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-arrival-list .arrival-card > svg { width: 14px; height: 14px; color: #9aaba7; transition: color .15s, transform .15s; }
.dashboard-arrival-list .arrival-card:hover > svg { transform: translate(2px, -2px); color: var(--primary); }
.dashboard-action-list { gap: 9px; }
.dashboard-action-list .action-item { display: grid; min-height: 66px; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid #edf2f0; border-radius: 9px; background: #fff; color: inherit; transition: border-color .15s, background .15s; }
.dashboard-action-list .action-item:hover { border-color: #cfe3dc; background: #fbfefd; }
.dashboard-action-list .action-symbol { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 9px; }
.dashboard-action-list .action-symbol svg { width: 16px; height: 16px; }
.dashboard-action-list .issue-symbol { background: #fff2eb; color: #c27550; }
.dashboard-action-list .task-symbol { background: #edf6f3; color: #4d8b79; }
.dashboard-action-list .priority, .dashboard-action-list .action-status { justify-self: end; padding: 5px 7px; border-radius: 6px; font-size: 8px; font-weight: 600; white-space: nowrap; }
.dashboard-action-list .action-status { background: #f1f5f4; color: #71827f; }
.dashboard-empty { display: grid; min-height: 145px; align-content: center; justify-items: center; gap: 7px; padding: 20px 12px; border: 1px dashed #dce9e5; border-radius: 9px; background: #fbfdfc; text-align: center; }
.dashboard-empty .dashboard-empty-icon { display: grid; width: 36px; height: 36px; place-items: center; margin-bottom: 2px; border-radius: 11px; background: #edf7f3; color: #498875; }
.dashboard-empty .dashboard-empty-icon svg { width: 18px; height: 18px; }
.dashboard-empty strong { color: #435a5d; font-size: 10px; font-weight: 650; }
.dashboard-empty > span:last-child { color: #87959a; font-size: 8px; line-height: 1.5; }
.operation-list { margin-top: 16px; }
.operation-item { display: flex; min-height: 49px; align-items: center; gap: 9px; border-top: 1px solid #eff3f2; cursor: pointer; }
.operation-item input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.checkmark { position: relative; flex: 0 0 15px; width: 15px; height: 15px; border: 1px solid #d2e1dd; border-radius: 5px; background: white; }
.checkmark:after { position: absolute; top: 1px; left: 4px; width: 4px; height: 7px; transform: rotate(45deg); border: solid white; border-width: 0 1.5px 1.5px 0; content: ""; opacity: 0; }
.operation-item input:checked + .checkmark { border-color: var(--primary); background: var(--primary); }
.operation-item input:checked + .checkmark:after { opacity: 1; }
.operation-item input:focus-visible + .checkmark { outline: 3px solid rgba(45, 212, 191, .65); outline-offset: 2px; }
.operation-copy { display: grid; min-width: 0; flex: 1; gap: 5px; }
.operation-copy strong { overflow: hidden; font-size: 9px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.operation-copy small { display: flex; align-items: center; gap: 4px; color: #8a989d; font-size: 8px; }
.operation-copy small svg { width: 10px; height: 10px; }
.priority { padding: 4px 6px; border-radius: 4px; font-size: 7px; font-weight: 500; white-space: nowrap; }
.priority-high { background: #fff0e8; color: #bd7758; }
.priority-normal { background: #f0f5f3; color: #798d85; }
.operation-item:has(input:checked) .operation-copy strong { color: #97a6a3; text-decoration: line-through; }
.add-task { display: flex; align-items: center; gap: 6px; padding: 9px 0; border: 0; background: none; color: var(--primary); font-size: 9px; font-weight: 600; cursor: pointer; }
.add-task svg { width: 13px; }
.weather-card { display: flex; align-items: center; gap: 10px; min-height: 49px; padding: 8px 10px; border-radius: 7px; background: #f7faf8; }
.weather-icon { display: grid; width: 29px; height: 29px; flex: 0 0 29px; place-items: center; border-radius: 50%; background: #fff4da; color: #d39c37; }
.weather-icon svg { width: 17px; }
.weather-card > div { display: grid; flex: 1; gap: 4px; }
.weather-card > div strong { font-size: 9px; font-weight: 600; }
.weather-card > div span { color: #869499; font-size: 8px; }
.weather-arrow { width: 13px; color: #8da19b; }
.bottom-grid { grid-template-columns: 1.1fr .9fr; }
.staypass-card { display: grid; grid-template-columns: minmax(125px, .8fr) minmax(190px, 1fr); min-height: 240px; padding: 0; overflow: hidden; }
.staypass-photo { min-height: 100%; background: #cbd9cc url("https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=760&q=82") center / cover; }
.staypass-info { padding: 17px 17px 14px; }
.staypass-heading { display: flex; align-items: center; justify-content: space-between; }
.pass-mark { display: inline-flex; align-items: center; gap: 5px; color: #768983; font-size: 8px; font-weight: 700; letter-spacing: .8px; }
.pass-mark svg { width: 12px; color: var(--primary); }
.pass-live { display: inline-flex; align-items: center; gap: 4px; color: #398160; font-size: 7px; font-weight: 700; letter-spacing: .6px; }
.pass-live svg { width: 11px; }
.staypass-info h2 { margin: 15px 0 6px; font-size: 14px; letter-spacing: -.35px; }
.staypass-info > p { margin-bottom: 13px; color: #7c8c91; font-size: 9px; line-height: 1.6; }
.pass-stats { display: grid; grid-template-columns: repeat(3, 1fr); padding: 10px 0 11px; margin-bottom: 11px; border-top: 1px solid #edf2ef; border-bottom: 1px solid #edf2ef; }
.pass-stats > div { display: grid; gap: 3px; }
.pass-stats > div + div { padding-left: 10px; border-left: 1px solid #edf2ef; }
.pass-stats strong { font: 700 13px var(--font-heading); }
.pass-stats strong span { color: #83918f; font: 500 8px var(--font-body); }
.pass-stats > div > span { color: #84928f; font-size: 7px; }
.button-dark { min-height: 31px; background: var(--navy); color: white; font-size: 9px; }
.button-dark:hover { background: #23434a; }
.inbox-panel { min-height: 240px; }
.unread-badge { padding: 4px 6px; border-radius: 4px; background: #fff2ee; color: #c27659; font-size: 7px; font-weight: 700; letter-spacing: .5px; }
.message-preview { padding-top: 17px; }
.message-top { display: flex; align-items: center; gap: 8px; }
.message-top > div { display: grid; gap: 4px; }
.message-top > div strong { font-size: 9px; font-weight: 600; }
.message-top > div span { color: #8d9a9e; font-size: 8px; }
.message-channel { display: inline-flex; align-items: center; gap: 4px; padding: 5px 6px; margin-left: auto; border-radius: 5px; background: #f7f5f0; color: #7e7565; font-size: 7px; }
.message-channel svg { width: 11px; height: 11px; }
.message-bubble { padding: 11px 12px; margin-top: 12px; border: 1px solid #ecf1ef; border-radius: 2px 9px 9px 9px; background: #f9fbfa; color: #52656a; font-size: 9px; line-height: 1.65; }
.message-actions { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-top: 12px; }
.button-outline { min-height: 30px; padding: 0 9px; border-color: #d9e6e2; background: white; color: var(--primary); font-size: 8px; }
.button-outline:hover { background: #f2faf7; }
.button-outline svg { width: 11px; }
.response-time { display: flex; align-items: center; gap: 4px; color: #879399; font-size: 8px; white-space: nowrap; }
.response-time svg { width: 12px; }
.page-footer { display: flex; justify-content: space-between; padding: 12px 1px 3px; color: #89979c; font-size: 8px; }
.footer-heart { color: #d89182; }.footer-separator { padding: 0 4px; color: #afbbb9; }
.sidebar-overlay { display: none; }

/* StayPass uses a separate, quieter guest-facing visual language. */
.guest-app { --guest-ink: #294139; --guest-muted: #77887e; --guest-paper: #f9f8f3; min-height: 100vh; color: var(--guest-ink); background: var(--guest-paper); }
.hidden { display: none !important; }
.guest-topbar { position: absolute; z-index: 2; top: 0; left: 0; display: flex; width: 100%; height: 68px; align-items: center; justify-content: space-between; padding: 0 max(calc((100% - 1080px) / 2), 28px); color: white; }
.guest-brand { display: inline-flex; align-items: center; gap: 8px; font: 800 20px var(--font-heading); letter-spacing: -.7px; }
.guest-brand .brand-mark { width: 30px; height: 30px; background: rgba(255, 255, 255, .9); color: #37534a; }
.guest-brand .brand-mark svg { width: 18px; }
.guest-brand > span:last-child span { color: #d8e8bc; }
.guest-help { display: inline-flex; align-items: center; gap: 7px; padding: 9px 13px; border: 1px solid rgba(255,255,255,.5); border-radius: 20px; background: rgba(255,255,255,.12); color: white; font-size: 10px; cursor: pointer; backdrop-filter: blur(8px); }
.guest-help svg { width: 14px; }
.guest-hero { position: relative; display: flex; min-height: 440px; align-items: flex-end; justify-content: center; overflow: hidden; background: #38564c; color: white; }
.guest-hero-image { position: absolute; inset: 0; background: url("https://images.unsplash.com/photo-1540541338287-41700207dee6?auto=format&fit=crop&w=2000&q=88") center 55% / cover; transform: scale(1.02); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(17,37,32,.56) 0%, rgba(17,37,32,.3) 48%, rgba(17,37,32,.03) 100%), linear-gradient(0deg, rgba(20,34,30,.4), transparent 40%); }
.guest-hero-copy, .hero-location { position: relative; z-index: 1; width: min(1080px, calc(100% - 56px)); }
.guest-hero-copy { padding-bottom: 72px; }
.guest-kicker { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 14px; color: #e1edd2; font-size: 9px; font-weight: 600; letter-spacing: 1.8px; }
.guest-kicker svg { width: 14px; }
.guest-hero h1 { margin-bottom: 8px; font-size: clamp(38px, 5vw, 59px); font-weight: 600; letter-spacing: -2.5px; line-height: 1.11; }
.guest-hero-copy p { margin: 0; color: rgba(255,255,255,.83); font-size: 14px; }
.hero-location { position: absolute; right: 0; bottom: 20px; left: 0; display: flex; align-items: center; gap: 7px; color: rgba(255,255,255,.85); font-size: 9px; }
.hero-location svg { width: 13px; }.hero-location > span { opacity: .65; }
.guest-content { max-width: 1080px; padding: 0 28px 50px; margin: 0 auto; }
.welcome-card { position: relative; z-index: 2; padding: 26px 31px 25px; margin: -37px 0 45px; border: 1px solid #ebece4; border-radius: 13px; background: #fffefa; box-shadow: 0 12px 35px rgba(45, 62, 49, .06); }
.welcome-card-header, .guest-section-heading { display: flex; align-items: center; justify-content: space-between; }
.welcome-card .eyebrow, .guest-section .eyebrow, .inspection-card .eyebrow, .checkout-card .eyebrow, .feedback-card .eyebrow { color: #89968b; font-size: 8px; letter-spacing: 1.5px; }
.in-house-pill { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid #e0eadf; border-radius: 20px; color: #518064; font-size: 8px; font-weight: 600; letter-spacing: .5px; }
.in-house-pill .live-dot { width: 6px; height: 6px; }
.welcome-card h2 { margin: 19px 0 22px; font-size: 23px; font-weight: 600; letter-spacing: -.75px; line-height: 1.3; }
.stay-detail-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding-top: 17px; border-top: 1px solid #edf0e9; }
.stay-detail-grid > div { display: grid; gap: 5px; }
.stay-detail-grid > div > span { color: #89958a; font-size: 8px; font-weight: 600; letter-spacing: .8px; }
.stay-detail-grid strong { font-size: 10px; font-weight: 600; }
.stay-detail-grid small { display: flex; align-items: center; gap: 4px; color: #859188; font-size: 9px; }
.stay-detail-grid small svg { width: 11px; color: #66a080; }
.guest-section { margin: 0 0 43px; }
.guest-section-heading { margin-bottom: 17px; }
.guest-section-heading h2 { margin: 6px 0 0; font-size: 20px; font-weight: 600; letter-spacing: -.55px; }
.section-sparkle { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: #edf2e7; color: #708963; }
.section-sparkle svg { width: 17px; }
.guest-feature-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.guest-feature { display: flex; min-height: 76px; align-items: center; gap: 9px; padding: 11px 10px; border: 1px solid #e9ece4; border-radius: 9px; background: #fffefa; text-align: left; cursor: pointer; transition: border .15s, transform .15s; }
.guest-feature:hover { transform: translateY(-2px); border-color: #c8d8c5; }
.feature-icon { display: grid; width: 33px; height: 33px; flex: 0 0 33px; place-items: center; border-radius: 9px; }
.feature-icon svg { width: 16px; }
.feature-teal { background: #e8f2e9; color: #62836a; }.feature-peach { background: #f8ece1; color: #a97e5f; }.feature-lilac { background: #efedf5; color: #82749e; }.feature-yellow { background: #f8f1dc; color: #a0884b; }
.guest-feature > span:nth-child(2) { display: grid; min-width: 0; flex: 1; gap: 4px; }
.guest-feature strong { font-size: 9px; font-weight: 600; }
.guest-feature small { overflow: hidden; color: #8a9489; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.guest-feature > svg { width: 12px; flex: 0 0 12px; color: #9aa59a; }
.inspection-card { display: grid; grid-template-columns: 1fr .9fr; min-height: 210px; overflow: hidden; margin-bottom: 45px; border: 1px solid #e8ece3; border-radius: 11px; background: #f1f2e9; }
.inspection-card > div:first-child { align-self: center; padding: 25px 29px; }
.inspection-card h3, .checkout-card h3 { margin: 11px 0 8px; font-size: 19px; font-weight: 600; letter-spacing: -.45px; line-height: 1.35; }
.inspection-card p, .checkout-card p { max-width: 360px; margin-bottom: 13px; color: #768579; font-size: 9px; line-height: 1.7; }
.guest-link { display: inline-flex; align-items: center; gap: 7px; padding: 0; border: 0; background: none; color: #597c62; font-size: 9px; font-weight: 600; cursor: pointer; }
.guest-link svg { width: 13px; }
.inspection-photo { min-height: 100%; background: #d9e3d6 url("https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&w=760&q=84") center / cover; }
.message-card, .issue-card { display: flex; width: 100%; align-items: center; gap: 12px; border: 1px solid #e8ece4; border-radius: 9px; text-align: left; cursor: pointer; }
.message-card { min-height: 69px; padding: 12px 15px; background: #fffefa; }
.message-card:hover, .issue-card:hover { border-color: #cbdac8; }
.message-card-icon { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: #edf2e7; color: #6b876e; }
.message-card-icon svg { width: 16px; }
.message-card > span:nth-child(2), .issue-card > span:nth-child(2) { display: grid; flex: 1; gap: 4px; }
.message-card strong, .issue-card strong { font-size: 10px; font-weight: 600; }
.message-card small, .issue-card small { color: #89948b; font-size: 9px; }
.message-card > svg, .issue-card > svg { width: 14px; color: #879589; }
.issue-card { min-height: 56px; padding: 10px 14px; margin-top: 8px; background: transparent; }
.issue-card > span:first-child { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; background: #f5eee5; color: #a98465; }
.issue-card > span:first-child svg { width: 15px; }
.checkout-card { display: grid; grid-template-columns: .78fr 1fr; min-height: 217px; overflow: hidden; margin: 0 0 42px; border: 1px solid #e8ece3; border-radius: 11px; background: #fffefa; }
.checkout-card-image { min-height: 100%; background: #ddd9ca url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=760&q=84") center / cover; }
.checkout-card-content { align-self: center; padding: 23px 29px; }
.checkout-card h3 { margin-top: 10px; }
.checkout-card p strong { color: #465b4b; font-weight: 600; }
.feedback-card { padding: 23px 25px 20px; margin-bottom: 29px; border: 1px solid #e8ece4; border-radius: 10px; background: #f3f3ea; text-align: center; }
.feedback-card h3 { margin: 9px 0 4px; font-size: 16px; font-weight: 600; letter-spacing: -.25px; }
.feedback-card p { margin: 0; color: #849084; font-size: 9px; }
.rating-picker { display: flex; justify-content: center; gap: 6px; margin-top: 12px; }
.rating-picker button { padding: 0 3px; border: 0; background: none; color: #d4c7a2; font-size: 23px; cursor: pointer; transition: transform .12s, color .12s; }
.rating-picker button:hover, .rating-picker button.selected { transform: scale(1.12); color: #c79d55; }
.guest-footer { display: grid; justify-items: center; gap: 8px; padding: 11px 0 0; border-top: 1px solid #e8ece4; text-align: center; }
.footer-brand { color: var(--guest-ink); font-size: 16px; }
.footer-brand .brand-mark { width: 25px; height: 25px; border-radius: 8px 8px 8px 3px; background: #466550; color: white; }
.footer-brand .brand-mark svg { width: 15px; }
.footer-brand > span:last-child span { color: #7d9972; }
.guest-footer p { margin: 0; color: #89948a; font-size: 9px; }
.guest-footer > button { display: inline-flex; align-items: center; gap: 5px; padding: 4px; border: 0; background: none; color: #738778; font-size: 8px; cursor: pointer; }
.guest-footer > button svg { width: 11px; }
.toast-region { position: fixed; z-index: 80; right: 22px; bottom: 20px; display: grid; gap: 8px; }
.toast { display: flex; align-items: center; gap: 9px; min-width: 235px; padding: 12px 15px; border: 1px solid #d9e9e1; border-radius: 9px; background: white; box-shadow: 0 8px 30px rgba(25, 61, 70, .13); color: #3d5d50; font-size: 11px; animation: toast-in .2s ease-out; }
.toast svg { width: 16px; color: var(--primary); }
@keyframes toast-in { from { transform: translateY(8px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
.modal-backdrop { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(16, 44, 53, .45); opacity: 0; visibility: hidden; transition: opacity .16s, visibility .16s; }
.modal-backdrop.open { opacity: 1; visibility: visible; }
.modal-card { position: relative; width: min(100%, 390px); padding: 27px 27px 22px; transform: translateY(8px) scale(.98); border: 1px solid #e3ede9; border-radius: 14px; background: #fff; box-shadow: 0 18px 60px rgba(16, 44, 53, .18); text-align: center; transition: transform .16s; }
.modal-backdrop.open .modal-card { transform: translateY(0) scale(1); }
.modal-close { position: absolute; top: 12px; right: 12px; display: grid; width: 29px; height: 29px; place-items: center; border: 0; border-radius: 7px; background: #f3f7f5; color: #75857f; cursor: pointer; }
.modal-close svg { width: 15px; }
.modal-icon { display: grid; width: 46px; height: 46px; margin: 0 auto 14px; place-items: center; border-radius: 50%; background: #e8f5ef; color: #23816d; }
.modal-icon svg { width: 22px; }
.modal-card h2 { margin: 0 0 8px; font-size: 17px; letter-spacing: -.4px; }
.modal-card > p { margin: 0 auto 17px; color: #76868a; font-size: 11px; line-height: 1.65; }
.modal-field { display: grid; gap: 6px; margin-top: 11px; text-align: left; }
.modal-field label { color: #53656a; font-size: 10px; font-weight: 600; }
.modal-field input, .modal-field textarea, .modal-field select { width: 100%; min-height: 37px; padding: 9px 10px; border: 1px solid #dce8e4; border-radius: 7px; outline: 0; background: white; color: var(--text); font: 11px var(--font-body); }
.modal-field textarea { min-height: 73px; resize: vertical; }
.modal-field input:focus, .modal-field textarea:focus, .modal-field select:focus { border-color: #68b8a5; box-shadow: 0 0 0 3px rgba(45, 212, 191, .16); }
.modal-note { padding: 11px 12px; border: 1px solid #e6eee8; border-radius: 8px; background: #f8faf6; color: #5d7164; font-size: 11px; line-height: 1.7; text-align: left; }
.modal-actions { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.modal-actions .button { min-width: 92px; }
.button-muted { border-color: #e2eae7; background: white; color: #617278; }
.inspection-modal-photo { min-height: 150px; border-radius: 9px; background: #d9e3d6 url("https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&w=760&q=84") center / cover; }
.search-empty { padding: 18px 10px; color: #78898d; font-size: 10px; text-align: center; }
.swal2-container { z-index: 1000 !important; }
.swal2-popup.stayos-swal-popup { width: min(390px, calc(100% - 24px)); padding: 27px 27px 22px; border: 1px solid #e3ede9; border-radius: 14px; background: #fff; box-shadow: 0 18px 60px rgba(16, 44, 53, .18); font-family: var(--font-body); }
.swal2-popup .swal2-title.stayos-swal-title { padding: 0; color: var(--text); font: 700 17px/1.35 var(--font-heading); letter-spacing: -.4px; }
.swal2-popup .swal2-html-container.stayos-swal-copy { margin: 9px 0 0; color: #76868a; font: 11px/1.65 var(--font-body); }
.swal2-popup .swal2-html-container.stayos-swal-copy:empty { display: none; }
.swal2-popup .swal2-actions { gap: 8px; margin-top: 18px; }
.swal2-popup .swal2-styled.stayos-swal-confirm, .swal2-popup .swal2-styled.stayos-swal-cancel, .swal2-popup .swal2-styled.stayos-swal-deny { min-height: 36px; padding: 0 14px; margin: 0; border: 1px solid transparent; border-radius: 7px; box-shadow: none; font: 600 10px var(--font-body); }
.swal2-popup .swal2-styled.stayos-swal-confirm { background: var(--primary); color: white; }
.swal2-popup .swal2-styled.stayos-swal-confirm:hover { background: var(--primary-dark); }
.swal2-popup .swal2-styled.stayos-swal-cancel, .swal2-popup .swal2-styled.stayos-swal-deny { border-color: #e2eae7; background: white; color: #617278; }
.swal2-popup .swal2-styled.stayos-swal-cancel:hover, .swal2-popup .swal2-styled.stayos-swal-deny:hover { background: #f3f7f5; }
.swal2-popup .swal2-validation-message { border-radius: 6px; background: #fff2ee; color: #a85e4b; font-size: 10px; }
.swal2-popup .modal-field { margin-top: 11px; }
.swal2-popup .modal-field label { color: #53656a; font-size: 10px; font-weight: 600; }
.swal2-popup .modal-field input, .swal2-popup .modal-field textarea, .swal2-popup .modal-field select { width: 100%; min-height: 37px; padding: 9px 10px; border: 1px solid #dce8e4; border-radius: 7px; outline: 0; background: white; color: var(--text); font: 11px var(--font-body); }
.swal2-popup .modal-field textarea { min-height: 73px; resize: vertical; }
.swal2-popup .modal-field input:focus, .swal2-popup .modal-field textarea:focus, .swal2-popup .modal-field select:focus { border-color: #68b8a5; box-shadow: 0 0 0 3px rgba(45, 212, 191, .16); }
.guest-app ~ .modal-backdrop .modal-card { border-color: #e8ece4; background: #fffefa; }
.workspace-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; }
.workspace-heading .eyebrow { display: block; margin-bottom: 8px; }
.workspace-divider { padding: 0 5px; color: #c0ceca; }
.workspace-heading h1 { margin-bottom: 4px; }
.workspace-heading-icon { display: grid; width: 40px; height: 40px; place-items: center; border: 1px solid #dceae7; border-radius: 11px; background: white; color: var(--primary); }
.workspace-heading-icon svg { width: 19px; }
.workspace-panel { padding: 0; overflow: hidden; }
.workspace-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 19px; }
.toolbar-caption { display: grid; gap: 5px; }
.toolbar-caption strong { color: var(--text); font-size: 11px; font-weight: 600; }
.toolbar-caption > span { color: #829197; font-size: 9px; }
.toolbar-actions { display: flex; align-items: center; gap: 9px; }
.select-filter { position: relative; display: inline-flex; align-items: center; }
.select-filter select { height: 34px; min-width: 125px; appearance: none; padding: 0 27px 0 10px; border: 1px solid #dce8e4; border-radius: 7px; outline: none; background: white; color: #52666b; font-size: 9px; }
.select-filter > svg { position: absolute; right: 9px; width: 12px; pointer-events: none; color: #829298; }
.table-scroll { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; text-align: left; }
.data-table thead { background: #f8fbf9; }
.data-table th { padding: 11px 12px; border-top: 1px solid #eef3f1; border-bottom: 1px solid #eef3f1; color: #84939a; font-size: 8px; font-weight: 700; letter-spacing: .65px; white-space: nowrap; }
.data-table th:first-child, .data-table td:first-child { padding-left: 19px; }
.data-table td { height: 57px; padding: 8px 12px; border-bottom: 1px solid #eff3f2; color: #65777d; font-size: 9px; white-space: nowrap; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: #fbfdfc; }
.table-booking-id { color: #657d7c; font-size: 8px; font-weight: 600; }
.table-guest { display: inline-flex; align-items: center; gap: 8px; }
.table-guest > span:last-child { display: grid; gap: 4px; }
.table-guest strong { color: #2b4148; font-size: 9px; font-weight: 600; }
.table-guest small { color: #8b999d; font-size: 8px; }
.data-table .status { font-size: 8px; }
.status-confirmed { background: #eef4f1; color: #64816f; }
.table-row-action { display: grid; width: 26px; height: 26px; place-items: center; border: 1px solid #e8efec; border-radius: 6px; background: white; color: #71847f; cursor: pointer; }
.table-row-action:hover { border-color: #b9d9ce; background: #eff8f4; }
.table-row-action svg { width: 13px; }
.table-footer { display: flex; align-items: center; justify-content: space-between; padding: 12px 19px; border-top: 1px solid #eef3f1; color: #859398; font-size: 8px; }
.table-footer strong { color: #52686c; font-weight: 600; }
.table-footer > span:last-child { display: inline-flex; align-items: center; gap: 5px; }
.table-footer svg { width: 11px; }
.table-count-pill { padding: 6px 9px; border-radius: 6px; background: #eef7f4; color: #56847a; font-size: 9px; font-weight: 600; }
.empty-state { padding: 27px; margin: 0; color: #809097; font-size: 10px; text-align: center; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; clip-path: inset(50%); }
.calendar-panel { padding-bottom: 12px; }
.calendar-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px 13px; }
.calendar-toolbar > div:first-child > div { margin-bottom: 4px; color: var(--text); font: 700 13px var(--font-heading); }
.calendar-toolbar > div:first-child > span { color: #849197; font-size: 9px; }
.calendar-controls { display: flex; align-items: center; gap: 5px; }
.calendar-controls .icon-button { width: 28px; height: 28px; border-color: #e6eeeb; }
.calendar-controls .icon-button svg { width: 14px; }
.calendar-today-button { min-height: 29px; margin: 0 4px; font-size: 8px; }
.calendar-new-booking { min-height: 31px; margin-left: 7px; font-size: 9px; }
.calendar-grid { display: grid; min-width: 840px; grid-template-columns: 140px repeat(7, minmax(90px, 1fr)); }
.calendar-room-row { grid-column: 1 / -1; }
.calendar-scroll { width: 100%; overflow-x: auto; border-top: 1px solid #edf2f0; border-bottom: 1px solid #edf2f0; }
.calendar-corner, .calendar-day-heading { display: flex; min-height: 46px; align-items: center; justify-content: center; gap: 7px; border-right: 1px solid #edf2f0; border-bottom: 1px solid #edf2f0; background: #fafcfb; }
.calendar-corner { display: flex; grid-row: 1; grid-column: 1; justify-content: flex-start; padding-left: 14px; color: #84949a; font-size: 8px; font-weight: 700; letter-spacing: .6px; }
.calendar-day-heading { color: #819097; font-size: 8px; }
.calendar-day-heading strong { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: #51666a; font-size: 10px; font-weight: 600; }
.calendar-day-heading.calendar-today strong { background: #0f766e; color: white; }
.calendar-room-row { position: relative; display: grid; grid-template-columns: 140px repeat(7, minmax(90px, 1fr)); grid-template-rows: 65px; }
.calendar-room-row:not(:last-child) { border-bottom: 1px solid #edf2f0; }
.calendar-room-label { z-index: 1; display: grid; align-content: center; gap: 5px; padding: 0 12px; border-right: 1px solid #edf2f0; background: white; }
.calendar-room-label strong { font-size: 9px; font-weight: 600; }
.calendar-room-label span { color: #8d9a9e; font-size: 7px; }
.calendar-cell { border-right: 1px solid #f0f3f2; }
.calendar-today-cell { background: #f8fcfa; }
.calendar-booking { z-index: 2; display: flex; min-width: 0; height: 34px; grid-row: 1; align-self: center; align-items: center; gap: 5px; padding: 0 7px; overflow: hidden; border: 1px solid transparent; border-radius: 6px; text-align: left; cursor: pointer; }
.calendar-booking svg { width: 11px; min-width: 11px; }
.calendar-booking span { overflow: hidden; font-size: 8px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.booking-mint { border-color: #d6ece2; background: #eaf6ef; color: #458166; }
.booking-peach { border-color: #f4e2d6; background: #fff2e9; color: #b57959; }
.booking-lilac { border-color: #e4dff1; background: #f2eff9; color: #766b9b; }
.calendar-legend { display: flex; align-items: center; gap: 18px; padding: 12px 16px 0; color: #819095; font-size: 8px; }
.calendar-legend > span { display: inline-flex; align-items: center; }
.calendar-legend .legend-dot { margin: 0 6px 0 0; }
.inbox-workspace { display: grid; min-height: 435px; grid-template-columns: minmax(220px, .72fr) minmax(0, 1.4fr); }
.inbox-thread-list { padding: 16px 0; border-right: 1px solid #edf2f0; }
.inbox-list-heading { display: flex; align-items: center; justify-content: space-between; padding: 0 15px 12px; color: #4e6368; font-size: 9px; font-weight: 600; }
.inbox-list-heading span { display: grid; width: 18px; height: 18px; place-items: center; border-radius: 50%; background: #e8f5ef; color: #3d876d; font-size: 8px; }
.inbox-thread { display: flex; width: 100%; align-items: center; gap: 8px; padding: 12px 14px; border: 0; border-top: 1px solid #f0f3f2; background: white; text-align: left; cursor: pointer; }
.inbox-thread.selected { background: #f2f8f5; }
.inbox-thread > span:nth-child(2) { display: grid; min-width: 0; flex: 1; gap: 5px; }
.inbox-thread strong { font-size: 9px; font-weight: 600; }
.inbox-thread small { overflow: hidden; color: #849298; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.inbox-thread time { color: #8d9b9e; font-size: 7px; white-space: nowrap; }
.inbox-conversation { display: flex; min-width: 0; flex-direction: column; }
.conversation-header { display: flex; min-height: 61px; align-items: center; gap: 9px; padding: 10px 15px; border-bottom: 1px solid #edf2f0; }
.conversation-header > span:nth-child(2) { display: grid; gap: 4px; }
.conversation-header strong { font-size: 9px; font-weight: 600; }
.conversation-header small { color: #879599; font-size: 8px; }
.conversation-status { padding: 5px 7px; margin-left: auto; border-radius: 5px; background: #eef7f1; color: #548469; font-size: 7px; }
.conversation-messages { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 10px; padding: 22px 18px; }
.message-day-divider { align-self: center; color: #9aa6a8; font-size: 7px; font-weight: 700; letter-spacing: .8px; }
.conversation-messages .message-bubble { max-width: 88%; margin: 0; }
.message-timestamp { color: #8d9a9d; font-size: 7px; }
.reply-composer { display: flex; align-items: flex-end; gap: 8px; padding: 12px; border-top: 1px solid #edf2f0; }
.reply-composer textarea { min-height: 38px; max-height: 100px; flex: 1; padding: 10px; border: 1px solid #dce8e4; border-radius: 7px; outline: none; resize: vertical; font: 9px var(--font-body); }
.reply-composer textarea:focus { border-color: #68b8a5; box-shadow: 0 0 0 3px rgba(45, 212, 191, .16); }
.reply-composer .button { min-height: 34px; font-size: 9px; }
.full-operations { padding-bottom: 20px; }
.full-operations .operation-list { padding: 0 19px; }
.full-operations .operation-item { min-height: 59px; }
.insights-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-bottom: 14px; }
.insights-cards .stat-card { min-height: 174px; }
.insight-bars { display: flex; height: 45px; align-items: end; gap: 5px; margin-top: 15px; }
.insight-bars i { width: 7%; min-height: 8px; border-radius: 3px 3px 0 0; background: #98d4bd; }
.insight-bars-peach i { background: #efc09e; }
.insight-note { margin: 16px 0 0; color: #798a81; font: italic 9px/1.6 var(--font-body); }
.insight-summary { padding: 18px; }
.insight-summary p { max-width: 670px; margin: 12px 0 0; color: #74858a; font-size: 10px; line-height: 1.7; }
.settings-panel { padding: 19px; }
.settings-form { display: grid; max-width: 650px; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 19px; }
.settings-form label { display: grid; gap: 6px; color: #5e7277; font-size: 9px; font-weight: 600; }
.settings-form input { height: 37px; padding: 0 10px; border: 1px solid #dce8e4; border-radius: 7px; outline: none; background: white; color: #41565b; font-size: 10px; }
.settings-form input:focus { border-color: #68b8a5; box-shadow: 0 0 0 3px rgba(45, 212, 191, .16); }
.settings-form .button { width: fit-content; margin-top: 4px; }
@media (min-width: 1450px) { .page-content { padding-right: 48px; padding-left: 48px; } }
@media (max-width: 1230px) {
  .sidebar { width: 220px; }.main-content { margin-left: 220px; }
  .topbar { padding-right: 25px; padding-left: 25px; }.page-content { padding-right: 25px; padding-left: 25px; }
  .stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reservation-item { grid-template-columns: 43px 10px minmax(120px, 1fr) minmax(90px, .85fr) 78px 17px; gap: 6px; }
  .staypass-card { grid-template-columns: minmax(105px, .65fr) minmax(190px, 1fr); }
}
@media (max-width: 980px) {
  .sidebar { width: 248px; transform: translateX(-100%); box-shadow: 10px 0 35px rgba(16, 44, 53, .12); }
  .sidebar.open { transform: translateX(0); }
  .sidebar-overlay.open { position: fixed; z-index: 25; inset: 0; display: block; background: rgba(16, 44, 53, .32); }
  .main-content { margin-left: 0; }
  .mobile-menu { display: grid; margin-left: -8px; }
  .topbar { justify-content: flex-start; gap: 12px; }
  .topbar-actions { margin-left: auto; }
  .dashboard-grid, .bottom-grid { grid-template-columns: 1fr; }
  .operations-panel { display: grid; grid-template-columns: 1fr 1fr; column-gap: 22px; }
  .operations-panel .panel-heading, .operations-panel .weather-card { grid-column: 1 / -1; }
  .operations-panel .operation-list { margin-top: 8px; }
  .operations-panel .add-task { align-self: end; }
  .bottom-grid { gap: 14px; }
  .staypass-card { grid-template-columns: .75fr 1fr; }
}
@media (max-width: 660px) {
  .topbar { height: 59px; padding: 0 14px; }
  .breadcrumb { gap: 6px; font-size: 10px; }
  .topbar-actions { gap: 7px; }
  .search-box { width: 33px; padding: 0 8px; border-color: transparent; background: transparent; }
  .search-box:focus-within { position: absolute; z-index: 5; right: 52px; left: 50px; width: auto; border-color: var(--border); background: white; }
  .search-box input { width: 0; padding: 0; }
  .search-box:focus-within input { width: 100%; padding: 0 7px; }
  .search-box kbd { display: none; }
  .topbar-icon { display: none; }
  .page-content { padding: 23px 15px 13px; }
  .welcome-row { align-items: flex-start; gap: 10px; margin-bottom: 18px; }
  .welcome-row h1 { font-size: 20px; }
  .welcome-row .eyebrow { font-size: 8px; }
  .page-subtitle { max-width: 220px; font-size: 10px; line-height: 1.5; }
  .welcome-row > .button { flex: 0 0 auto; min-height: 33px; padding: 0 9px; font-size: 9px; }
  .stat-grid { gap: 9px; margin-bottom: 11px; }
  .stat-card { min-height: 143px; padding: 12px 11px 10px; }
  .stat-top { font-size: 9px; }
  .stat-icon { width: 24px; height: 24px; }
  .stat-value { font-size: 22px; }
  .stat-foot { gap: 4px; font-size: 8px; }
  .stat-period { font-size: 0; }
  .stat-period svg { width: 12px; }
  .mini-chart { right: 11px; bottom: 10px; width: 42px; }
  .avatar-more { font-size: 7px; }
  .dashboard-grid, .bottom-grid { gap: 10px; margin-bottom: 10px; }
  .panel { padding: 14px 12px 12px; }
  .panel-heading h2 { font-size: 12px; }
  .today-pill { font-size: 6px; }
  .panel-description { font-size: 8.5px; }
  .text-button { font-size: 0; }
  .text-button svg { width: 16px; }
  .reservation-list { margin-top: 12px; }
  .reservation-item { grid-template-columns: 37px 8px minmax(0, 1fr) 69px 17px; gap: 5px; min-height: 55px; }
  .reservation-time { display: grid; gap: 0; }
  .reservation-time strong { font-size: 9px; }
  .reservation-time span { font-size: 7px; }
  .stay-dates { display: none; }
  .reservation-guest { gap: 5px; }
  .reservation-guest .guest-avatar { width: 25px; height: 25px; flex-basis: 25px; }
  .reservation-guest strong { font-size: 8px; }
  .reservation-guest > div > span { font-size: 7px; }
  .status { gap: 3px; padding: 5px 4px; font-size: 7px; }
  .panel-footer { font-size: 7px; }
  .footer-link { font-size: 8px; }
  .operations-panel { display: block; }
  .operations-panel .operation-list { margin-top: 12px; }
  .operations-panel .add-task { padding-bottom: 10px; }
  .dashboard-arrival-list, .dashboard-action-list { gap: 7px; margin-top: 12px; }
  .dashboard-arrival-list .arrival-card { min-height: 58px; grid-template-columns: 31px minmax(0, 1fr) 16px; gap: 8px; padding: 8px; }
  .dashboard-arrival-list .guest-avatar { width: 31px; height: 31px; flex-basis: 31px; }
  .dashboard-action-list .action-item { min-height: 62px; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 8px; padding: 8px; }
  .dashboard-action-list .action-symbol { width: 30px; height: 30px; }
  .dashboard-action-list .priority, .dashboard-action-list .action-status { padding: 4px 5px; font-size: 7px; }
  .dashboard-empty { min-height: 130px; }
  .operation-item { gap: 8px; }
  .priority { padding: 4px 5px; font-size: 6px; }
  .staypass-card { grid-template-columns: 115px minmax(0, 1fr); min-height: 230px; }
  .staypass-info { padding: 13px 11px; }
  .staypass-info h2 { margin-top: 13px; font-size: 12px; }
  .staypass-info > p { font-size: 8px; }
  .pass-stats > div + div { padding-left: 5px; }
  .pass-stats strong { font-size: 11px; }
  .pass-stats > div > span { font-size: 6px; }
  .button-dark { gap: 5px; padding: 0 8px; font-size: 8px; }
  .inbox-panel { min-height: 220px; }
  .message-channel { font-size: 0; }
  .message-channel svg { width: 14px; }
  .page-footer { font-size: 7px; }
  .guest-topbar { height: 59px; padding: 0 18px; }
  .guest-brand { font-size: 17px; }
  .guest-brand .brand-mark { width: 27px; height: 27px; }
  .guest-help { gap: 5px; padding: 8px 10px; font-size: 9px; }
  .guest-hero { min-height: 390px; }
  .guest-hero-image { background-position: 58% center; }
  .guest-hero-copy, .hero-location { width: calc(100% - 36px); }
  .guest-hero-copy { padding-bottom: 66px; }
  .guest-hero h1 { font-size: 43px; }
  .guest-hero-copy p { font-size: 12px; }
  .guest-content { padding: 0 16px 34px; }
  .workspace-heading { margin-bottom: 18px; }
  .workspace-heading h1 { font-size: 21px; }
  .workspace-heading-icon { width: 34px; height: 34px; }
  .workspace-toolbar { align-items: flex-start; padding: 13px 12px; }
  .workspace-toolbar .toolbar-actions { gap: 5px; }
  .workspace-toolbar .button { min-height: 32px; padding: 0 8px; font-size: 8px; }
  .select-filter select { min-width: 105px; font-size: 8px; }
  .table-footer { padding: 11px 12px; }
  .calendar-toolbar { align-items: flex-start; padding: 13px 11px 11px; }
  .calendar-controls { gap: 2px; }
  .calendar-controls .icon-button { width: 25px; height: 28px; }
  .calendar-today-button { margin: 0 1px; padding: 0 7px; }
  .calendar-new-booking { min-width: 31px; width: 31px; padding: 0; margin-left: 2px; overflow: hidden; font-size: 0; }
  .calendar-new-booking svg { flex: 0 0 14px; }
  .calendar-legend { flex-wrap: wrap; gap: 8px 12px; padding-right: 11px; padding-left: 11px; }
  .inbox-workspace { grid-template-columns: 1fr; }
  .inbox-thread-list { border-right: 0; }
  .inbox-thread:not(.selected) { display: none; }
  .inbox-thread { padding: 9px 12px; }
  .inbox-conversation { min-height: 300px; border-top: 1px solid #edf2f0; }
  .conversation-messages { min-height: 150px; }
  .conversation-status { display: none; }
  .reply-composer { padding: 9px; }
  .reply-composer .button { width: 34px; min-width: 34px; padding: 0; overflow: hidden; font-size: 0; }
  .reply-composer .button svg { flex: 0 0 14px; }
  .insights-cards { grid-template-columns: 1fr 1fr; gap: 8px; }
  .insights-cards .stat-card { min-height: 150px; }
  .insights-cards .stat-card:last-child { grid-column: 1 / -1; }
  .settings-form { grid-template-columns: 1fr; gap: 11px; }
  .welcome-card { padding: 20px 18px 19px; margin-top: -29px; margin-bottom: 33px; }
  .welcome-card h2 { margin: 16px 0 16px; font-size: 20px; }
  .stay-detail-grid { grid-template-columns: 1fr 1fr; row-gap: 15px; padding-top: 14px; }
  .stay-detail-grid strong { font-size: 9px; }
  .guest-section { margin-bottom: 34px; }
  .guest-section-heading h2 { font-size: 18px; }
  .guest-feature-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .guest-feature { min-height: 72px; gap: 7px; padding: 9px 8px; }
  .feature-icon { width: 29px; height: 29px; flex-basis: 29px; }
  .guest-feature strong { font-size: 8px; }
  .guest-feature small { font-size: 7px; }
  .guest-feature > svg { width: 11px; flex-basis: 11px; }
  .inspection-card { grid-template-columns: 1fr; margin-bottom: 34px; }
  .inspection-card > div:first-child { padding: 21px 19px; }
  .inspection-card h3, .checkout-card h3 { font-size: 17px; }
  .inspection-photo { min-height: 170px; grid-row: 1; }
  .inspection-card p, .checkout-card p { font-size: 9px; }
  .checkout-card { grid-template-columns: 1fr; margin-bottom: 33px; }
  .checkout-card-image { min-height: 160px; }
  .checkout-card-content { padding: 21px 19px; }
  .feedback-card { padding: 20px 13px 17px; }
  .feedback-card h3 { font-size: 15px; }
  .toast-region { right: 12px; bottom: 12px; left: 12px; }
  .toast { min-width: 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; }
}
