.message-content { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
.message-content p { margin: 0; }
.message-content p + p, .message-content p + ul, .message-content p + ol, .message-content ul + p, .message-content ol + p { margin-top: 7px; }
.message-content ul, .message-content ol { margin: 4px 0 0; padding-left: 19px; }
.message-content li { padding-left: 2px; }
.message-content li + li { margin-top: 3px; }
.message-content a { color: #24684f; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.chat-bubble.guest .message-content a, .chat-bubble.host .message-content a { color: #fff; }
.chat-line .message-content a { color: #24684f; }
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');

:root {
    --ink: #1e2724;
    --muted: #71807a;
    --faint: #9aa6a0;
    --line: #e6ebe6;
    --paper: #fbfcfa;
    --white: #fff;
    --sage: #dfeee5;
    --deep-sage: #275b4b;
    --forest: #173d34;
    --coral: #e9866e;
    --coral-pale: #fff0ea;
    --gold: #e6b15e;
    --blue: #dcebf3;
    --mint: #e1f2e9;
    --shadow: 0 14px 36px rgba(34, 55, 47, .07);
    --small-shadow: 0 5px 18px rgba(34, 55, 47, .06);
    font-family: 'DM Sans', sans-serif;
    color: var(--ink);
    background: var(--paper);
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--paper); }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible { outline: 3px solid rgba(39, 91, 75, .2); outline-offset: 2px; }
button:disabled { opacity: .5; cursor: not-allowed; }
.host-body { background: #f8faf8; }
.page-shell { min-height: 100svh; display: grid; place-items: center; padding: 24px; text-align: center; }
.eyebrow, .welcome-kicker { color: var(--deep-sage); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 700; margin: 0 0 10px; }
h1, h2, h3, strong { font-family: 'Space Grotesk', sans-serif; }
h1 { font-size: clamp(25px, 4vw, 36px); letter-spacing: -.04em; line-height: 1.12; margin: 0; }
h2 { font-size: 19px; letter-spacing: -.025em; margin: 0; }
p { line-height: 1.55; }

/* Host shell */
.host-layout { min-height: 100svh; display: flex; }
.sidebar { width: 260px; background: var(--forest); color: #eaf5ef; padding: 25px 17px 18px; display: flex; flex-direction: column; flex-shrink: 0; }
.sidebar-brand { color: inherit; display: inline-flex; align-items: center; gap: 10px; text-decoration: none; font: 700 20px 'Space Grotesk', sans-serif; letter-spacing: -.04em; padding: 0 11px; }
.brand-accent { color: #90c8ad; }
.brand-icon { display: inline-grid; place-items: center; width: 27px; height: 27px; color: var(--forest); background: #b8e3ca; border-radius: 9px; font-size: 17px; }
.workspace-switcher { display: flex; align-items: center; gap: 9px; padding: 10px; margin: 42px 0 25px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.09); border-radius: 12px; }
.workspace-switcher small { display: block; color: #9fc4b1; font-size: 12px; margin-bottom: 2px; }
.workspace-switcher strong { display: block; font-size: 12px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 150px; }
.avatar { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #ebc68b; color: #604b2b; font-size: 12px; font-weight: 700; }
.chevron { margin-left: auto; color: #8eb7a5; }
.desktop-nav { display: grid; gap: 5px; }
.nav-link, .sidebar-link { width: 100%; display: flex; align-items: center; gap: 12px; color: #a6c4b5; border: 0; background: transparent; padding: 12px; border-radius: 10px; text-align: left; font-size: 14px; }
.nav-link:hover, .nav-link.active, .sidebar-link:hover { color: white; background: rgba(255,255,255,.1); }
.nav-glyph { width: 21px; font-size: 20px; text-align: center; }
.nav-count { margin-left: auto; display: grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: var(--coral); color: white; font-size: 12px; font-weight: 700; }
.sidebar-footer { margin-top: auto; }
.sidebar-link { color: #9fc1af; font-size: 12px; }
.sidebar-link span { width: 19px; font-size: 16px; text-align: center; }
.trial-card { margin: 20px 5px 3px; padding: 14px; background: #285849; border: 1px solid #39715e; border-radius: 13px; }
.trial-card strong, .trial-card small { display: block; }
.trial-label { color: #a8dbbd; font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.trial-card strong { color: white; font-size: 12px; margin: 9px 0 4px; }
.trial-card small { color: #a6c8b5; font-size: 12px; line-height: 1.45; }
.host-main { min-width: 0; flex: 1; }
.mobile-topbar { display: none; }
.screen { display: none; max-width: 1240px; margin: 0 auto; padding: 54px clamp(24px, 5vw, 72px) 70px; }
.screen.active { display: block; animation: page-in .25s ease both; }
@keyframes page-in { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.page-header { display: flex; justify-content: space-between; gap: 25px; align-items: flex-end; margin-bottom: 33px; }
.page-subtitle { color: var(--muted); margin: 9px 0 0; font-size: 14px; }
.primary-button { border: 0; background: var(--deep-sage); color: white; border-radius: 9px; padding: 13px 17px; font-weight: 700; font-size: 13px; box-shadow: 0 5px 14px rgba(39,91,75,.14); }
.primary-button:hover { background: #1e4b3d; transform: translateY(-1px); }
.primary-button span { color: #b9e7ca; font-size: 17px; vertical-align: -1px; margin-right: 4px; }
.primary-button.compact { white-space: nowrap; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; margin-bottom: 45px; }
.metric-card { text-align: left; border: 0; padding: 18px; min-height: 143px; border-radius: 14px; color: var(--ink); transition: transform .2s, box-shadow .2s; }
.metric-card:hover { transform: translateY(-2px); box-shadow: var(--small-shadow); }
.metric-card.warm { background: #f4ead6; }.metric-card.coral { background: #f7ded5; }.metric-card.mint { background: #dcefe3; }.metric-card.blue { background: #dcecf1; }
.metric-icon { display: grid; place-items: center; width: 27px; height: 27px; margin-bottom: 12px; border-radius: 9px; background: rgba(255,255,255,.62); color: var(--deep-sage); font-weight: 700; }
.metric-card strong { display: block; font-size: 27px; line-height: 1; margin-bottom: 5px; }.metric-card > span:not(.metric-icon) { display: block; font-size: 12px; font-weight: 600; }.metric-card small { display: block; color: var(--muted); margin-top: 8px; font-size: 12px; }
.content-toolbar { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }.section-meta { display: block; color: var(--faint); font-size: 11px; margin-top: 6px; }.toolbar-actions { display: flex; gap: 5px; flex-wrap: wrap; }.filter-button { border: 1px solid var(--line); color: var(--muted); background: white; border-radius: 7px; padding: 8px 11px; font-size: 11px; }.filter-button.active, .filter-button:hover { color: var(--deep-sage); border-color: #a9ccb9; background: #edf7f0; }.filter-button span { margin-left: 4px; color: var(--coral); font-weight: 700; }
.conversation-list, .reservation-list { display: grid; gap: 9px; }.conversation-card, .reservation-card { display: flex; align-items: center; gap: 14px; width: 100%; text-align: left; background: white; border: 1px solid #edf0ed; border-radius: 13px; padding: 14px 17px; box-shadow: 0 2px 8px rgba(34,55,47,.025); transition: border .2s, transform .2s; }.conversation-card:hover, .reservation-card:hover { border-color: #b8d7c6; transform: translateX(2px); }.person-avatar { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border-radius: 13px; color: var(--deep-sage); background: var(--sage); font: 700 14px 'Space Grotesk'; }.person-avatar.coral { background: var(--coral-pale); color: #a65442; }.person-avatar.blue { background: var(--blue); color: #38667b; }.conversation-main, .reservation-main { min-width: 0; flex: 1; }.conversation-top, .reservation-top { display: flex; gap: 12px; justify-content: space-between; align-items: center; }.conversation-name, .reservation-name { font: 700 13px 'Space Grotesk'; }.time { color: var(--faint); white-space: nowrap; font-size: 12px; }.conversation-property { color: var(--deep-sage); font-size: 12px; margin: 4px 0; }.conversation-preview { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }.conversation-footer { display: flex; align-items: center; gap: 7px; margin-top: 7px; }.status { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; }.status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #9eb5a6; }.status.waiting { color: #a75e43; }.status.waiting::before { background: var(--coral); }.status.resolved { color: var(--deep-sage); }.status.resolved::before { background: #5aad7b; }.ai-tag { color: var(--deep-sage); background: #edf7f0; border-radius: 4px; padding: 3px 5px; font-size: 12px; font-weight: 700; }.unread { display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--coral); color: white; font-size: 12px; font-weight: 700; }
.reservation-unit-photo { display: block; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; object-fit: cover; background: #edf3ee; }
@media (max-width: 650px) { .reservation-unit-photo { width: 38px; height: 38px; flex-basis: 38px; } }
.reservation-notice { display: flex; gap: 13px; padding: 16px; margin-bottom: 22px; border: 1px solid #cfe5d6; background: #eef8f0; border-radius: 12px; }.notice-icon { display: grid; place-items: center; flex: 0 0 auto; width: 30px; height: 30px; border-radius: 9px; background: white; color: var(--deep-sage); }.reservation-notice strong { display: block; font-size: 13px; }.reservation-notice p { color: var(--muted); font-size: 11px; margin: 4px 0 0; }.reservation-card { align-items: flex-start; }.reservation-date { color: var(--muted); font-size: 11px; margin-top: 6px; }.reservation-detail { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.45; }.reservation-detail span { display: inline-flex; align-items: center; gap: 4px; }.reservation-link { margin-left: auto; flex: 0 0 auto; border: 1px solid #cfe1d6; color: var(--deep-sage); background: #f4faf5; border-radius: 7px; padding: 8px 9px; font-size: 12px; font-weight: 700; }.reservation-link:hover { background: var(--sage); }.reservation-actions { display: flex; gap: 6px; flex: 0 0 auto; }.reservation-actions .reservation-link { margin-left: 0; cursor: pointer; }.reservation-delete { border: 1px solid #eed2cf; color: #a54c40; background: #fff8f7; border-radius: 7px; padding: 8px 9px; font-size: 12px; font-weight: 700; cursor: pointer; }.reservation-delete:hover { background: #fae9e6; }
.property-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px; }.property-card { background: white; border: 1px solid #e9eeea; border-radius: 14px; overflow: hidden; box-shadow: 0 2px 8px rgba(34,55,47,.025); }.property-image { height: 138px; background-size: cover; background-position: center; }.property-body { padding: 16px; }.property-body h3 { font-size: 16px; margin: 0 0 4px; }.property-address { color: var(--muted); font-size: 11px; margin: 0 0 14px; }.property-stats { display: flex; gap: 7px; color: var(--deep-sage); font-size: 12px; margin-bottom: 15px; }.property-stats span { padding: 5px 7px; border-radius: 5px; background: #f1f7f2; }.knowledge-status { display: flex; gap: 5px; flex-wrap: wrap; min-height: 47px; }.knowledge-chip { padding: 5px 7px; background: #f7f9f7; border-radius: 5px; color: var(--muted); font-size: 12px; }.knowledge-chip::before { content: '✓'; color: #5baa7c; font-weight: 700; margin-right: 3px; }.property-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 15px; padding-top: 12px; border-top: 1px solid #eef1ee; }.property-footer small { color: var(--faint); font-size: 12px; }.text-button, .back-button { border: 0; background: transparent; color: var(--deep-sage); font-weight: 700; font-size: 11px; padding: 0; }.text-button:hover { text-decoration: underline; }
.detail-screen { max-width: 930px; }.back-button { display: flex; gap: 8px; align-items: center; margin-bottom: 27px; font-size: 12px; }.detail-hero { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; margin-bottom: 25px; }.detail-hero h1 { margin-top: 5px; }.detail-actions { display: flex; gap: 8px; }.secondary-button { border: 1px solid var(--line); background: white; color: var(--deep-sage); border-radius: 8px; padding: 11px 13px; font-size: 11px; font-weight: 700; }.secondary-button:hover { background: #f1f8f3; }.takeover-button { border: 0; background: var(--coral-pale); color: #a65442; border-radius: 8px; padding: 11px 13px; font-size: 11px; font-weight: 700; }.detail-layout { display: grid; grid-template-columns: 1fr 280px; gap: 15px; }.chat-panel, .info-panel, .knowledge-panel { background: white; border: 1px solid #e9eeea; border-radius: 14px; overflow: hidden; }.chat-panel-header, .panel-heading { display: flex; justify-content: space-between; align-items: center; padding: 16px; border-bottom: 1px solid #eef1ee; }.chat-panel-header strong, .panel-heading strong { font-size: 12px; }.toggle-row { display: flex; gap: 6px; align-items: center; color: var(--muted); font-size: 12px; }.toggle { width: 31px; height: 18px; padding: 2px; border: 0; border-radius: 10px; background: #a6b6ad; }.toggle.on { background: var(--deep-sage); }.toggle i { display: block; width: 14px; height: 14px; border-radius: 50%; background: white; transition: transform .2s; }.toggle.on i { transform: translateX(13px); }.detail-chat { min-height: 340px; padding: 17px; display: flex; flex-direction: column; gap: 10px; background: #fbfcfa; }.chat-line { max-width: 78%; padding: 10px 12px; border-radius: 11px; font-size: 11px; line-height: 1.5; }.chat-line.ai { align-self: flex-start; background: #edf5ee; color: #385449; border-bottom-left-radius: 3px; }.chat-line.guest { align-self: flex-end; background: var(--deep-sage); color: white; border-bottom-right-radius: 3px; }.chat-line.host { align-self: flex-end; background: #f6dfd7; color: #70463d; border-bottom-right-radius: 3px; }.chat-line time { display: block; opacity: .55; font-size: 12px; margin-top: 4px; }.composer { display: flex; gap: 8px; padding: 12px; border-top: 1px solid #eef1ee; }.composer input, .form-control { min-width: 0; border: 1px solid #dde6df; background: #fbfcfb; color: var(--ink); border-radius: 8px; padding: 11px; font-size: 11px; }.composer input { flex: 1; }.send-small { border: 0; width: 38px; border-radius: 8px; background: var(--deep-sage); color: white; }.info-panel { padding-bottom: 7px; }.info-panel .panel-heading { margin-bottom: 3px; }.info-row { padding: 10px 16px; }.info-row small { display: block; color: var(--faint); font-size: 12px; margin-bottom: 3px; }.info-row strong { font-size: 11px; }.info-banner { margin: 12px 16px; padding: 10px; border-radius: 8px; background: #fff3e4; color: #8a6538; font-size: 12px; line-height: 1.45; }
.knowledge-panel { margin-top: 18px; }.knowledge-list { padding: 13px; display: grid; gap: 8px; }.knowledge-item { padding: 12px; border: 1px solid #edf1ed; border-radius: 9px; }.knowledge-item-top { display: flex; justify-content: space-between; gap: 10px; }.knowledge-item strong { font-size: 12px; }.knowledge-category { color: var(--deep-sage); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }.knowledge-item p { color: var(--muted); font-size: 11px; margin: 7px 0 0; }
.mobile-nav { display: none; }

/* Guest experience */
.guest-body { background: #f5f1e9; }.guest-app { min-height: 100svh; max-width: 590px; margin: 0 auto; background: #fbfaf7; display: flex; flex-direction: column; box-shadow: 0 0 55px rgba(65,58,45,.08); }.guest-header { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px 12px; }.guest-header .brand-lockup { display: flex; align-items: center; gap: 9px; color: var(--forest); font: 700 16px 'Space Grotesk'; }.guest-header .brand-icon { width: 23px; height: 23px; border-radius: 7px; font-size: 14px; }.secure-label { color: #8d988d; font-size: 12px; }.guest-welcome { padding: 25px 25px 17px; }.guest-welcome h1 { font-size: 32px; color: var(--forest); }.guest-welcome p { color: var(--muted); margin: 8px 0 16px; font-size: 13px; max-width: 350px; }.stay-pill { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid #dfe7dd; border-radius: 7px; color: var(--deep-sage); background: white; font-size: 12px; }.status-dot { width: 6px; height: 6px; background: #65ab7c; border-radius: 50%; }.quick-actions { display: flex; gap: 7px; padding: 0 25px 18px; overflow-x: auto; scrollbar-width: none; }.quick-actions::-webkit-scrollbar { display: none; }.quick-action { flex: 0 0 auto; border: 1px solid #e2e7df; background: white; color: #5b6a61; padding: 8px 10px; border-radius: 7px; font-size: 12px; }.quick-action:hover { border-color: #a8c6b1; color: var(--deep-sage); background: #f0f8f1; }.guest-chat { flex: 1; padding: 15px 25px 24px; overflow-y: auto; background: #f7f7f3; border-top: 1px solid #eceee7; border-bottom: 1px solid #eceee7; min-height: 340px; }.date-divider { text-align: center; color: #a0aaa2; font-size: 12px; margin: 0 0 14px; }.chat-bubble { display: flex; flex-direction: column; gap: 4px; width: fit-content; max-width: 85%; min-width: 0; padding: 12px 14px; border-radius: 14px; font-size: 12px; line-height: 1.55; box-shadow: 0 3px 10px rgba(37,54,43,.04); }.chat-bubble.concierge { margin-right: auto; background: white; color: #425148; border-bottom-left-radius: 4px; }.chat-bubble.guest { margin: 10px 0 10px auto; background: var(--deep-sage); color: white; border-bottom-right-radius: 4px; }.chat-bubble.host { margin: 10px 0 0 auto; color: #70463d; background: #f5ded6; border-bottom-right-radius: 4px; }.bubble-label { display: block; color: var(--deep-sage); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 2px; }.chat-bubble.guest .bubble-label, .chat-bubble.host .bubble-label { color: rgba(255,255,255,.78); }.chat-bubble time { display: block; color: rgba(65,82,70,.72); font-size: 10px; margin-top: 4px; }.chat-bubble.guest time, .chat-bubble.host time { color: rgba(255,255,255,.65); }.guest-composer { display: flex; gap: 8px; padding: 12px 18px 9px; background: #fbfaf7; border-top: 1px solid #eceee7; }.guest-composer input { flex: 1 1 0; min-width: 0; border: 1px solid #dfe5dc; border-radius: 11px; background: white; padding: 12px 13px; color: var(--ink); font-size: 12px; }.send-button { flex: 0 0 auto; width: 42px; height: 42px; border: 0; border-radius: 12px; color: white; background: var(--deep-sage); font-size: 21px; }.guest-disclaimer { color: #a2aaa3; text-align: center; font-size: 12px; margin: 0; padding: 0 18px 18px; }.guest-expired { color: var(--ink); max-width: 420px; margin: auto; }.guest-expired .expired-mark { display: grid; place-items: center; width: 60px; height: 60px; margin: 0 auto 18px; border-radius: 20px; background: var(--sage); color: var(--deep-sage); font-size: 26px; }.guest-expired h1 { font-size: 28px; }.guest-expired p:last-child { color: var(--muted); font-size: 14px; }

/* Authentication and database-backed property menu */
.auth-body { min-height: 100svh; display: grid; place-items: center; padding: 24px; background: #f5f8f5; }
.auth-card { width: min(100%, 430px); padding: 34px; background: white; border: 1px solid #e5ece6; border-radius: 18px; box-shadow: var(--shadow); }
.auth-brand { display: inline-flex; align-items: center; gap: 9px; color: var(--forest); text-decoration: none; font: 700 20px 'Space Grotesk'; letter-spacing: -.04em; margin-bottom: 46px; }.auth-brand .brand-icon { color: var(--forest); }
.auth-card h1 { color: var(--forest); }.auth-subtitle { color: var(--muted); font-size: 13px; margin: 10px 0 23px; }.auth-error { padding: 11px 12px; margin-bottom: 16px; border: 1px solid #f0c6bb; border-radius: 8px; color: #934736; background: #fff1ed; font-size: 12px; }.auth-form { display: grid; gap: 15px; }.auth-form label { display: grid; gap: 7px; color: var(--muted); font-size: 11px; font-weight: 700; }.auth-form input { width: 100%; border: 1px solid #dce6de; border-radius: 8px; padding: 12px; color: var(--ink); background: #fcfdfc; font-size: 13px; }.auth-form .primary-button { margin-top: 4px; padding: 13px; }.auth-footnote { color: var(--faint); font-size: 12px; line-height: 1.5; margin: 18px 0 0; }
.form-section-label { grid-column: 1 / -1; margin: 5px 0 -3px; color: var(--deep-sage); text-transform: uppercase; letter-spacing: .1em; font-size: 12px; font-weight: 700; }
.calendar-connections-content { display: grid; gap: 18px; padding: 18px 22px 22px; }.calendar-connections-content section { min-width: 0; }.calendar-connections-content h3 { margin: 0 0 11px; font-size: 14px; }.calendar-source-list { display: grid; gap: 9px; }.calendar-source-card, .hostbeez-calendar-card, .calendar-add-form { padding: 13px; border: 1px solid #e7eee8; border-radius: 10px; background: #fbfdfb; }.calendar-source-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.calendar-source-heading strong { display: block; font-size: 12px; }.calendar-source-heading small { color: var(--faint); font-size: 12px; text-align: right; }.calendar-connected { display: inline-block; margin-top: 5px; color: #347451; font-size: 12px; }.calendar-source-error { margin: 7px 0 0; color: #a14b3c; font-size: 12px; }.calendar-source-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }.calendar-source-actions button { border: 1px solid #cdded1; border-radius: 7px; padding: 8px 10px; background: white; color: var(--deep-sage); font-size: 12px; font-weight: 700; }.calendar-source-actions .calendar-delete-button { color: #a14b3c; border-color: #efd3cd; }.calendar-add-form { display: grid; gap: 10px; margin-top: 12px; }.calendar-add-form label { display: grid; gap: 5px; color: var(--muted); font-size: 12px; font-weight: 700; }.calendar-add-form .primary-button { width: 100%; }.calendar-empty { color: var(--muted); font-size: 11px; }.hostbeez-calendar-card { background: #f0f7f1; }.hostbeez-calendar-card h3 { margin: 5px 0; }.hostbeez-calendar-card p { color: var(--muted); font-size: 11px; margin: 5px 0 10px; }.property-calendar-content { padding: 16px 20px 20px; }.property-calendar-content .calendar-month-nav { justify-content: space-between; margin-bottom: 14px; }.calendar-month-nav button { border: 0; background: transparent; color: var(--deep-sage); font-weight: 700; cursor: pointer; }.property-calendar-days { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }.property-calendar-days span { position: relative; min-width: 0; min-height: 40px; }.property-calendar-days span small { position: absolute; bottom: 2px; max-width: 100%; overflow: hidden; color: #995647; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.property-calendar-days span.blocked { background: #f9ddd6; }
.property-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; color: var(--muted); font-size: 11px; margin: -14px 0 16px; }.property-toolbar a { color: var(--deep-sage); font-weight: 700; text-decoration: none; }.property-toolbar a:hover { text-decoration: underline; }
.sa-property-list { display: grid; gap: 10px; min-width: 0; }.sa-property-row { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(110px, .7fr) minmax(190px, 1fr); align-items: center; gap: 14px; min-width: 0; padding: 13px; background: white; border: 1px solid #e8eee9; border-radius: 13px; box-shadow: 0 2px 8px rgba(34,55,47,.025); }.sa-property-summary { min-width: 0; display: flex; align-items: center; gap: 12px; }.sa-property-summary > div:last-child { min-width: 0; }.sa-property-image { width: 78px; height: 78px; flex: 0 0 78px; border-radius: 10px; background: linear-gradient(135deg, #dceee3, #edf4ef); background-size: cover; background-position: center; }.sa-property-summary h3 { overflow: hidden; margin: 0 0 4px; font-size: 14px; text-overflow: ellipsis; white-space: nowrap; }.sa-property-summary p { overflow: hidden; color: var(--muted); font-size: 11px; margin: 0 0 5px; text-overflow: ellipsis; white-space: nowrap; }.sa-property-summary small { color: var(--faint); font-size: 12px; overflow-wrap: anywhere; }.sa-calendar-cell { cursor: pointer; }.sa-mini-calendar { width: 170px; padding: 8px; border: 1px solid #e7ede8; border-radius: 9px; background: #fbfcfb; text-align: center; }.sa-mini-calendar > strong { display: block; color: var(--deep-sage); font-size: 12px; margin-bottom: 5px; }.sa-calendar-week { color: var(--faint); font-size: 8px; letter-spacing: 3px; white-space: pre; }.sa-calendar-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; margin-top: 4px; }.sa-calendar-days span, .sa-calendar-days i { min-height: 17px; display: grid; place-items: center; border-radius: 3px; font-size: 12px; font-style: normal; }.sa-calendar-days span { color: #4e5d55; background: #f1f6f2; }.sa-calendar-days span.blocked { color: #a04e3d; background: #f9ddd6; }.sa-property-meta strong, .sa-property-meta span { display: block; }.sa-property-meta strong { color: var(--deep-sage); font: 700 13px 'Space Grotesk'; }.sa-property-meta span { color: var(--faint); font-size: 12px; line-height: 1.4; margin-top: 5px; }.sa-property-actions { display: flex; align-items: center; justify-content: flex-start; flex-wrap: wrap; gap: 8px 12px; min-width: 0; }.sa-property-actions a, .sa-property-actions button { display: inline-block; max-width: 100%; padding: 4px 0; border: 0; background: transparent; color: var(--deep-sage); font-size: 12px; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; text-align: left; }.sa-property-actions a:hover, .sa-property-actions button:hover { text-decoration: underline; }.property-empty { padding: 45px 20px; text-align: center; border: 1px dashed #cbdacf; border-radius: 14px; background: white; }.property-empty strong { font-size: 16px; }.property-empty p { color: var(--muted); font-size: 12px; }.property-empty .primary-button { display: inline-block; text-decoration: none; margin-top: 6px; }
.sa-calendar-modal { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(19,39,31,.4); }.sa-calendar-modal[hidden] { display: none; }.sa-calendar-dialog { position: relative; width: min(100%, 500px); padding: 24px; border-radius: 15px; background: white; box-shadow: var(--shadow); }.sa-calendar-dialog h2 { padding-right: 25px; margin: 0 0 18px; }.sa-calendar-dialog .close-button { position: absolute; top: 14px; right: 16px; }.sa-modal-week, .sa-modal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 6px; }.sa-modal-week { color: var(--faint); font-size: 12px; text-align: center; }.sa-modal-days { margin-top: 7px; }.sa-modal-days span, .sa-modal-days i { min-height: 38px; display: grid; place-items: center; border: 1px solid #e8eee9; border-radius: 7px; font-size: 11px; font-style: normal; }.sa-modal-days span.blocked { color: #a04e3d; border-color: #f0c5bb; background: #fff0eb; }.calendar-legend { color: var(--muted); font-size: 12px; }.blocked-key { display: inline-block; width: 8px; height: 8px; margin-right: 4px; border-radius: 2px; background: #f0c5bb; }
.calendar-month-nav { display: flex; align-items: center; gap: 14px; padding: 9px 11px; border: 1px solid #dfe9e1; border-radius: 9px; background: white; }.calendar-month-nav a { color: var(--deep-sage); text-decoration: none; font-weight: 700; }.calendar-month-nav strong { min-width: 115px; text-align: center; font-size: 12px; }.calendar-property-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; }.calendar-property-card { padding: 17px; border: 1px solid #e8eee9; border-radius: 14px; background: white; box-shadow: 0 2px 8px rgba(34,55,47,.025); }.calendar-property-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 16px; }.calendar-property-head h2 { font-size: 15px; }.calendar-property-head p { color: var(--muted); margin: 5px 0 0; font-size: 12px; }.calendar-property-head > span { padding: 5px 7px; border-radius: 5px; color: #a04e3d; background: #fff0eb; font-size: 12px; font-weight: 700; white-space: nowrap; }.calendar-week-labels, .calendar-day-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }.calendar-week-labels span { color: var(--faint); text-align: center; font-size: 12px; }.calendar-day-grid { margin-top: 6px; }.calendar-day-grid span, .calendar-day-grid i { min-height: 30px; display: grid; place-items: center; border-radius: 5px; font-size: 12px; font-style: normal; }.calendar-day-grid span { color: #4e5d55; background: #f1f6f2; }.calendar-day-grid span.blocked { color: #a04e3d; background: #f9ddd6; }.calendar-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 15px; padding-top: 11px; border-top: 1px solid #eef1ee; color: var(--muted); font-size: 12px; }.calendar-card-footer a { color: var(--deep-sage); font-weight: 700; text-decoration: none; }
.calendar-direct-earnings { display: inline-flex; align-items: center; gap: 6px; margin: 9px 0 0; padding: 7px 10px; border: 1px solid #cfe5d6; border-radius: 8px; background: #eef8f0; color: var(--deep-sage); font-size: 12px; }.calendar-direct-earnings strong { font-size: 14px; }
.chat-line.host { align-self: flex-end; background: var(--deep-sage); color: #fff; border-bottom-right-radius: 3px; }
.calendar-property-identity { display: flex; align-items: center; gap: 11px; min-width: 0; }.calendar-property-photo { display: block; width: 54px; height: 54px; flex: 0 0 54px; border-radius: 10px; object-fit: cover; background: #edf3ee; }.calendar-property-copy { min-width: 0; }.calendar-property-copy h2 { overflow-wrap: anywhere; }
@media (max-width: 650px) { .calendar-property-photo { width: 48px; height: 48px; flex-basis: 48px; } }

.calendar-add-form .calendar-custom-name[hidden] { display: none; }
.calendar-connections-frame { display: block; width: 100%; height: min(76vh, 740px); border: 0; background: #fff; }
.reservation-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 14px; }
.reservation-search { display: flex; align-items: center; gap: 8px; width: min(100%, 360px); min-height: 39px; padding: 0 11px; border: 1px solid #dfe8e1; border-radius: 8px; background: #fff; color: var(--faint); }
.reservation-search > span { font-size: 20px; line-height: 1; }
.reservation-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 11px; }
.reservation-search input::placeholder { color: var(--faint); }
.reservation-filters { display: flex; gap: 5px; }
.reservation-filter { min-height: 36px; padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: var(--muted); font-size: 12px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.reservation-filter.active { border-color: #a9ccb9; background: #edf7f0; color: var(--deep-sage); }
.property-editor { display: grid; gap: 14px; }
.property-form-section { display: grid; gap: 11px; padding: 14px; border: 1px solid #e5ece6; border-radius: 11px; background: #fbfdfb; }
.property-form-section > h3 { margin: 0; color: var(--deep-sage); font-size: 13px; }
.property-form-section > p { margin: -5px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.property-form-section .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.property-form-section .form-group { min-width: 0; }
.property-form-section .form-group label, .property-discount-row label { color: var(--muted); font-size: 12px; font-weight: 700; }
.property-form-section .form-control, .property-discount-row .form-control { min-width: 0; min-height: 38px; padding: 9px 10px; border: 1px solid #dce6de; border-radius: 8px; background: #fff; color: var(--ink); font-size: 11px; }
.property-form-section textarea.form-control { min-height: 72px; resize: vertical; }
.property-upload-button { display: inline-flex; align-items: center; justify-content: center; min-height: 39px; padding: 8px 12px; border: 1px dashed #a8cbb5; border-radius: 8px; color: var(--deep-sage); background: #f2f8f3; font-size: 11px; font-weight: 700; cursor: pointer; }
.property-upload-button input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.arrival-photo-dropzone { position: relative; display: flex; min-height: 150px; flex-direction: column; align-items: center; justify-content: center; gap: 8px; overflow: hidden; padding: 12px; border: 1px dashed #a8cbb5; border-radius: 10px; background: #f5faf6; color: var(--deep-sage); text-align: center; font-size: 11px; }
.arrival-photo-dropzone.drag-over { border-color: var(--deep-sage); background: #e8f3eb; }
.arrival-photo-dropzone img { display: block; width: 100%; max-height: 220px; border-radius: 7px; object-fit: cover; }
.arrival-photo-dropzone img[hidden] { display: none; }
.arrival-photo-dropzone span { font-weight: 700; }
.arrival-photo-dropzone small { color: var(--muted); font-size: 10px; }
.arrival-photo-dropzone input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.arrival-photo-dropzone [data-arrival-photo-placeholder] { cursor: pointer; }
.arrival-photo-dropzone .arrival-photo-remove { position: relative; z-index: 2; min-height: 30px; padding: 5px 10px; }
.property-image-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); gap: 8px; }
.property-image-item { min-width: 0; overflow: hidden; border: 1px solid #e2eae3; border-radius: 9px; background: #fff; }
.property-image-item img { display: block; width: 100%; height: 100px; object-fit: cover; background: #edf3ee; }
.property-image-item strong { display: block; padding: 6px 8px 0; color: var(--muted); font-size: 12px; }
.property-image-item > div { display: flex; gap: 5px; padding: 6px 8px 8px; }
.property-image-item button { min-height: 27px; padding: 4px 8px; border: 1px solid #dce6de; border-radius: 6px; color: var(--deep-sage); background: #fff; font-size: 12px; cursor: pointer; }
.property-image-item button:disabled { opacity: .4; cursor: default; }
.property-image-item button.danger { margin-left: auto; color: #a14b3c; border-color: #efd3cd; }
.property-image-item.is-new { opacity: .8; }
.property-image-empty { grid-column: 1 / -1; margin: 0; padding: 12px; color: var(--muted); font-size: 12px; }
.property-photos-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.property-photos-heading h3 { margin: 0; color: var(--deep-sage); font-size: 13px; }
.property-photos-heading .secondary-button { min-height: 32px; padding: 6px 10px; font-size: 12px; }
.property-photo-carousel-note { color: var(--muted); font-size: 12px; }
.property-photos-section.is-collapsed .property-upload-button { display: none; }
.property-photos-section.is-collapsed .property-photo-carousel-note { display: block; }
.property-photos-section.is-expanded .property-photo-carousel-note { display: none; }
.property-photos-section.is-collapsed .property-image-list { display: flex; overflow-x: auto; gap: 8px; padding: 1px 1px 7px; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.property-photos-section.is-collapsed .property-image-item { flex: 0 0 138px; scroll-snap-align: start; }
.property-photos-section.is-collapsed .property-image-item img { height: 86px; }
.property-photos-section.is-collapsed .property-image-item > div { display: none; }
.property-photos-section.is-collapsed .property-image-empty { flex: 0 0 100%; }
.property-photos-section.is-expanded .property-image-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)); }
.property-photos-section.is-expanded .property-image-item { width: auto; }
.property-discount-heading { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 10px; color: var(--muted); font-size: 11px; }
.property-discount-heading .secondary-button { min-height: 32px; padding: 6px 9px; font-size: 12px; }
.property-discount-list { display: grid; gap: 8px; }
.property-discount-row { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 8px; }
.property-discount-row label { display: grid; gap: 4px; }
.property-discount-row button { min-height: 34px; }
.property-save-button { width: 100%; min-height: 43px; }
@media (max-width: 650px) {
    .reservation-toolbar { display: grid; grid-template-columns: 1fr; gap: 8px; }
    .reservation-search { width: 100%; }
    .reservation-filters { width: 100%; }
    .reservation-filter { flex: 1 1 0; padding-inline: 6px; }
    .property-form-section .form-grid { grid-template-columns: minmax(0, 1fr); }
    .property-form-section .form-group.full { grid-column: auto; }
    .property-image-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .property-discount-row { grid-template-columns: 1fr 1fr; }
    .property-discount-row button { grid-column: 1 / -1; }
    .reservation-list { width: 100%; min-width: 0; }
    .reservation-card { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: start; gap: 10px; width: 100%; min-width: 0; max-width: 100%; overflow: hidden; }
    .reservation-card .reservation-main { grid-column: 2; grid-row: 1; width: 100%; min-width: 0; }
    .reservation-card .reservation-actions { grid-column: 1 / -1; grid-row: 2; display: flex; flex-wrap: wrap; flex: initial; justify-content: flex-end; min-width: 0; max-width: 100%; }
    .reservation-card .reservation-link { display: inline-flex; align-items: center; justify-content: center; margin-left: 0; min-height: 34px; }
    .reservation-card .reservation-delete { min-height: 34px; }
}
.modal-sheet.contact-modal-sheet { width: min(100%, 390px); max-height: min(80svh, 430px); }
.contact-options { display: grid; gap: 8px; padding: 14px 18px 18px; }
.contact-option { display: flex; align-items: center; gap: 12px; width: 100%; min-height: 58px; padding: 10px 12px; border: 1px solid #e6eee7; border-radius: 10px; background: #fbfdfb; color: var(--ink); text-align: left; text-decoration: none; cursor: pointer; }
.contact-option:hover { border-color: #b8d7c6; background: #f2f8f3; }
.contact-option-icon { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 9px; background: #edf7f0; color: var(--deep-sage); font-size: 16px; }
.contact-option > span:nth-child(2) { display: grid; gap: 3px; flex: 1; min-width: 0; }
.contact-option strong { font-size: 12px; }
.contact-option small { overflow: hidden; color: var(--muted); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.contact-option > b { color: var(--faint); font-size: 20px; font-weight: 400; }
.contact-empty { margin: 0; padding: 8px 2px; color: var(--muted); font-size: 12px; }
@media (max-width: 650px) {
    .modal-sheet.contact-modal-sheet { width: 100%; max-height: min(65svh, 400px); border-radius: 18px 18px 0 0; }
}
.calendar-day-grid span.blocked.blocked-neutral { color: #6c7470 !important; background: #eceeed !important; border-color: #d9ddda !important; box-shadow: inset 0 -3px 0 #858b90 !important; }
.calendar-day-grid span { background: #fff; border: 1px solid #edf1ee; }
.calendar-day-grid span.blocked-neutral { color: #6c7470; background: #eceeed; border-color: #d9ddda; box-shadow: inset 0 -3px 0 #858b90; }
.calendar-day-grid span.reserved { color: #35433c; }
.calendar-day-grid span.reserved::after { background: var(--calendar-event-color); }
.calendar-event-line.is-blocked { --calendar-event-color: #858b90 !important; background: #f1f2f1; }
.calendar-event-line.is-historical { opacity: .78; }
.calendar-day-grid button { position: relative; display: grid; place-items: center; min-height: 30px; padding: 0; border: 1px solid #edf1ee; border-radius: 5px; color: #4e5d55; background: #f1f6f2; font: inherit; font-size: 12px; cursor: pointer; }
.calendar-day-grid button:hover { outline: 2px solid #9bc4a9; outline-offset: 1px; }
.calendar-day-grid button.range-selected { color: var(--deep-sage); background: #d9eddf; border-color: #8fbea0; }
.calendar-day-grid button.blocked.blocked-neutral { color: #6c7470 !important; background: #eceeed !important; border-color: #d9ddda !important; box-shadow: inset 0 -3px 0 #858b90 !important; }
.calendar-day-grid button.blocked.reserved { color: #35433c; background: color-mix(in srgb, var(--calendar-event-color, #729184) 22%, white); box-shadow: inset 0 -3px 0 var(--calendar-event-color, #729184); }
.calendar-block-details { margin: -5px 0 14px; padding: 10px; border: 1px solid #e5ece6; border-radius: 9px; background: #fbfdfb; }
.calendar-block-details > summary { color: var(--deep-sage); font-size: 11px; font-weight: 700; cursor: pointer; }
.calendar-block-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.calendar-block-form label { display: grid; gap: 4px; color: var(--muted); font-size: 12px; font-weight: 700; }
.calendar-block-form input, .calendar-block-form select { width: 100%; min-width: 0; min-height: 34px; padding: 6px 8px; border: 1px solid #dce6de; border-radius: 6px; background: #fff; color: var(--ink); font: inherit; font-size: 12px; }
.calendar-block-form .calendar-block-reason, .calendar-block-form .calendar-block-submit { grid-column: 1 / -1; }
.calendar-block-form .calendar-block-submit { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 38px; margin: 2px 0 0; padding: 9px 14px; border: 1px solid var(--deep-sage); border-radius: 7px; color: #fff; background: var(--deep-sage); font-family: inherit; font-size: 11px; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; }
.calendar-block-form .calendar-block-submit:hover { border-color: #1e493b; background: #1e493b; }
.calendar-block-form .calendar-block-submit:focus-visible, .calendar-block-remove:focus-visible { outline: 2px solid #83b696; outline-offset: 2px; }
.calendar-block-form .calendar-block-submit:disabled { cursor: wait; opacity: .65; }
.calendar-block-help { margin: 8px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.calendar-event-line.is-blocked .calendar-block-remove { justify-self: end; white-space: nowrap; }
.calendar-block-remove { display: inline-flex; align-items: center; justify-content: center; min-height: 27px; padding: 5px 9px; border: 1px solid #e5c8c2; border-radius: 6px; color: #984d40; background: #fff; font-family: inherit; font-size: 12px; font-weight: 700; line-height: 1.1; cursor: pointer; }
.calendar-block-remove:hover { border-color: #c9887d; color: #7d382d; background: #fff5f2; }
@media (max-width: 450px) { .calendar-block-form { grid-template-columns: 1fr; } .calendar-block-form .calendar-block-reason, .calendar-block-form .calendar-block-submit { grid-column: auto; } }
@media (max-width: 450px) {
    .calendar-block-form { grid-template-columns: minmax(0, 1fr) minmax(96px, auto); align-items: end; }
    .calendar-block-form label:not(.calendar-block-reason) { grid-column: 1 / -1; }
    .calendar-block-form .calendar-block-reason { grid-column: 1; }
    .calendar-block-form .calendar-block-submit { grid-column: 2; width: 100%; min-height: 36px; margin: 0; padding: 8px 10px; }
}
.calendar-event-line.is-blocked .calendar-event-bar { background: #858b90; }
.property-calendar-days span { background: #fff; border: 1px solid #edf1ee; }
.property-calendar-days span.reserved { background: color-mix(in srgb, var(--calendar-event-color, #729184) 22%, white); box-shadow: inset 0 -3px 0 var(--calendar-event-color, #729184); }

/* Stay Assistant Operations */
.operations-page-header { align-items: center; }
.operations-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.operations-header-actions .primary-button, .operations-header-actions .secondary-button { min-height: 39px; padding: 9px 11px; white-space: nowrap; font-size: 10px; }
.operations-month-nav { display: flex; align-items: center; justify-content: center; gap: 12px; width: max-content; max-width: 100%; min-height: 40px; padding: 5px 9px; margin: -17px 0 16px auto; border: 1px solid #dfe9e1; border-radius: 9px; background: #fff; }
.operations-month-nav > button { display: grid; place-items: center; min-width: 29px; min-height: 29px; padding: 4px 7px; border: 0; border-radius: 6px; color: var(--deep-sage); background: transparent; font-weight: 700; cursor: pointer; }
.operations-month-nav > button:hover { background: #f1f8f3; }
.operations-month-nav strong { min-width: 125px; color: var(--ink); text-align: center; font-size: 11px; }
.operations-month-nav .operations-current-month { border: 1px solid #dce8df; font-size: 9px; }
.operations-today-banner { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 20px; margin-bottom: 13px; border: 1px solid #d9eadf; border-radius: 14px; background: linear-gradient(110deg, #edf7ef, #fbfdfb); }
.operations-today-banner .eyebrow { margin: 0 0 5px; }
.operations-today-banner h2 { font-size: 18px; }
.operations-today-banner p:not(.eyebrow) { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.operations-count-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-bottom: 14px; }
.operations-count-card { display: grid; gap: 4px; padding: 15px 17px; border: 1px solid #e9eeea; border-radius: 12px; background: #fff; }
.operations-count-card span { color: var(--muted); font-size: 11px; font-weight: 700; }
.operations-count-card strong { color: var(--ink); font-size: 25px; line-height: 1.1; }
.operations-count-card small { color: var(--faint); font-size: 10px; }
.operations-count-card.cleaning { box-shadow: inset 3px 0 #69a982; }
.operations-count-card.maintenance { box-shadow: inset 3px 0 #e1ac5a; }
.operations-count-card.other { box-shadow: inset 3px 0 #7fa6b7; }
.operations-panel, .operations-finance-overview { padding: 17px; margin-bottom: 14px; border: 1px solid #e8eee9; border-radius: 13px; background: #fff; box-shadow: 0 2px 8px rgba(34,55,47,.025); }
.operations-panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.operations-panel-heading h2 { font-size: 15px; }
.operations-panel-heading p:not(.eyebrow) { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.operations-panel-heading .eyebrow { margin: 0 0 4px; font-size: 9px; }
.operations-task-list, .operations-finance-list { display: grid; gap: 7px; }
.operations-task-card, .operations-finance-entry { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px; border: 1px solid #edf1ed; border-radius: 9px; background: #fcfdfc; }
.operations-task-card.is-complete { opacity: .66; }
.operations-task-check { display: grid; place-items: center; flex: 0 0 24px; width: 24px; height: 24px; padding: 0; border: 1px solid #cbd9cf; border-radius: 7px; color: #fff; background: #fff; font-size: 13px; font-weight: 700; }
.operations-task-check.checked { border-color: var(--deep-sage); background: var(--deep-sage); }
.operations-task-copy, .operations-finance-copy { flex: 1; min-width: 0; }
.operations-task-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.operations-task-copy strong, .operations-finance-copy strong { color: var(--ink); font-size: 11px; }
.operations-task-copy p, .operations-finance-copy p { margin: 3px 0 0; color: var(--muted); font-size: 10px; }
.operations-task-copy small, .operations-finance-copy small { display: block; margin-top: 4px; color: var(--faint); font-size: 10px; line-height: 1.4; }
.operations-auto-badge { padding: 3px 6px; border-radius: 999px; color: #347451; background: #eaf5ed; font-size: 8px; font-weight: 700; }
.operations-task-status { flex: 0 0 auto; color: #8a7460; font-size: 9px; font-weight: 700; }
.operations-task-status.complete { color: #347451; }
.operations-row-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 5px; }
.operations-row-actions button { min-height: 28px; padding: 4px 7px; border: 1px solid #e1e9e2; border-radius: 6px; color: var(--deep-sage); background: #fff; font-size: 9px; font-weight: 700; }
.operations-row-actions button.danger { color: #a14b3c; border-color: #efd3cd; }
.operations-empty { padding: 16px 10px; color: var(--muted); text-align: center; font-size: 11px; }
.operations-finance-overview { padding: 17px; }
.operations-finance-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.operations-finance-grid article { display: grid; gap: 6px; padding: 13px; border: 1px solid #edf1ed; border-radius: 9px; background: #fafcfa; }
.operations-finance-grid article span { color: var(--muted); font-size: 10px; }
.operations-finance-grid article strong { color: var(--deep-sage); font-size: clamp(14px, 2vw, 20px); overflow-wrap: anywhere; }
.operations-finance-grid article strong.negative { color: #a14b3c; }
.operations-direct-revenue { display: block; margin-top: -2px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.operations-direct-revenue b { color: #347451; }
.operations-tabs { display: flex; gap: 6px; overflow-x: auto; margin: 18px 0 10px; padding: 2px 0 7px; scrollbar-width: thin; }
.operations-tabs button { flex: 0 0 auto; min-height: 35px; padding: 7px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); background: #fff; font-size: 10px; font-weight: 700; }
.operations-tabs button.active { border-color: #a9ccb9; color: var(--deep-sage); background: #edf7f0; }
.operations-panel[hidden] { display: none !important; }
.operations-finance-type { display: grid; place-items: center; flex: 0 0 29px; width: 29px; height: 29px; border-radius: 9px; color: #a14b3c; background: #fff0eb; font-weight: 800; }
.operations-finance-type.revenue { color: #347451; background: #eaf5ed; }
.operations-finance-amount { flex: 0 0 auto; color: #a14b3c; font-size: 11px; }
.operations-finance-amount.positive { color: #347451; }
.operations-report-note { margin: 12px 0 0; color: var(--muted); font-size: 10px; }
@media (max-width: 650px) {
    .operations-page-header { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 12px; }
    .operations-page-header .primary-button { width: 100%; margin-top: 0; }
    .operations-header-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; max-width: none; gap: 7px; }
    .operations-header-actions .primary-button, .operations-header-actions .secondary-button { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 40px; margin: 0; padding: 8px 7px; white-space: normal; text-align: center; line-height: 1.25; font-size: 10px; }
    .operations-header-actions [data-add-operation-task] { grid-column: 1 / -1; }
    .operations-month-nav { display: grid; grid-template-columns: 38px minmax(0, 1fr) 38px auto; align-items: center; gap: 5px; width: 100%; min-height: 44px; margin: -12px 0 13px; padding: 5px 7px; }
    .operations-month-nav strong { min-width: 0; }
    .operations-month-nav > button { min-width: 34px; }
    .operations-today-banner { display: grid; padding: 15px; }
    .operations-today-banner .secondary-button { width: 100%; }
    .operations-count-grid { gap: 7px; }
    .operations-count-card { padding: 11px 9px; }
    .operations-count-card span { font-size: 9px; }
    .operations-count-card strong { font-size: 22px; }
    .operations-panel, .operations-finance-overview { padding: 12px; }
    .operations-panel-heading { align-items: flex-start; }
    .operations-panel-heading .primary-button { width: auto; margin-top: 0; padding: 9px 10px; font-size: 10px; }
    .operations-task-card, .operations-finance-entry { flex-wrap: wrap; gap: 8px; }
    .operations-task-copy, .operations-finance-copy { flex-basis: calc(100% - 42px); }
    .operations-task-status, .operations-finance-amount { margin-left: 32px; }
    .operations-row-actions { margin-left: auto; }
    .operations-finance-grid { gap: 6px; }
    .operations-finance-grid article { padding: 10px 8px; }
    .operations-finance-grid article span { font-size: 9px; }
    .operations-finance-grid article strong { font-size: 14px; }
}
.property-calendar-days span.blocked-neutral { color: #6c7470; background: #eceeed; border-color: #d9ddda; box-shadow: inset 0 -3px 0 #858b90; }
.property-calendar-days span small { position: absolute; bottom: 2px; max-width: 100%; overflow: hidden; color: inherit; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }

.calendar-event-list { display: grid; gap: 7px; margin-top: 15px; padding-top: 13px; border-top: 1px solid #eef1ee; }.calendar-event-list h3 { margin: 0 0 2px; color: var(--muted); font: 700 10px 'DM Sans', sans-serif; letter-spacing: .08em; text-transform: uppercase; }.calendar-event-line { display: grid; grid-template-columns: 4px minmax(76px, auto) minmax(72px, 1fr) auto; align-items: center; gap: 9px; min-height: 32px; padding: 5px 8px 5px 0; border-radius: 6px; background: #fafcfa; color: var(--muted); font-size: 12px; }.calendar-event-bar { width: 4px; height: 23px; border-radius: 3px; background: var(--calendar-event-color, #729184); }.calendar-event-dates { color: var(--ink); font-weight: 700; white-space: nowrap; }.calendar-event-line strong { overflow: hidden; color: var(--calendar-event-color, var(--deep-sage)); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.calendar-event-label { color: var(--faint); font-size: 12px; white-space: nowrap; }.calendar-event-empty { margin: 2px 0 0; color: var(--faint); font-size: 12px; }.calendar-day-grid span.blocked { position: relative; background: color-mix(in srgb, var(--calendar-event-color, #f9ddd6) 22%, white); box-shadow: inset 0 -3px 0 var(--calendar-event-color, #e9866e); }.calendar-day-grid span.blocked::after { content: ''; position: absolute; bottom: 3px; width: 5px; height: 5px; border-radius: 50%; background: var(--calendar-event-color, #e9866e); }.calendar-day-grid span.blocked .calendar-overlap-count { position: absolute; top: 1px; right: 2px; color: #5f6762; font-size: 7px; }.calendar-event-legend { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 10px; }.calendar-event-legend span { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 12px; }.calendar-event-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--calendar-event-color); }

/* Modals and toast */
.modal-backdrop { display: none; position: fixed; z-index: 20; inset: 0; align-items: center; justify-content: center; padding: 20px; background: rgba(19, 39, 31, .42); }.modal-backdrop.open { display: flex; }.modal-sheet { width: min(100%, 540px); max-height: 90svh; overflow: auto; border-radius: 17px; background: white; box-shadow: 0 20px 60px rgba(17,36,29,.2); animation: sheet-in .22s ease both; }.modal-head { display: flex; align-items: center; justify-content: space-between; padding: 20px 22px 15px; border-bottom: 1px solid #edf0ed; }.modal-head h2 { font-size: 18px; }.close-button { border: 0; background: transparent; color: var(--muted); font-size: 22px; }.form-body { padding: 18px 22px 23px; }.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }.form-group { display: grid; gap: 6px; }.form-group.full { grid-column: 1 / -1; }.form-group label { color: var(--muted); font-size: 12px; font-weight: 700; }.form-control { width: 100%; font-size: 12px; }.form-control::placeholder { color: #aab5ae; }.form-body .primary-button { width: 100%; margin-top: 17px; }.link-created { margin: 14px 22px 22px; padding: 15px; border-radius: 11px; background: #edf8ef; border: 1px solid #cde5d3; }.link-created strong { font-size: 12px; }.link-created p { color: var(--muted); font-size: 12px; margin: 5px 0 10px; word-break: break-all; }.link-actions { display: flex; gap: 7px; }.link-actions button { border: 1px solid #bfd9c8; border-radius: 7px; padding: 8px 10px; color: var(--deep-sage); background: white; font-size: 12px; font-weight: 700; }.link-actions button:first-child { background: var(--deep-sage); color: white; }.toast { position: fixed; z-index: 50; right: 20px; bottom: 22px; transform: translateY(20px); opacity: 0; pointer-events: none; padding: 12px 15px; border-radius: 10px; background: var(--forest); color: white; font-size: 11px; box-shadow: var(--shadow); transition: .25s; }.toast.show { transform: translateY(0); opacity: 1; }
@keyframes sheet-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 850px) { .sidebar { width: 220px; }.screen { padding-left: 30px; padding-right: 30px; }.metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 650px) {
    .host-layout { display: block; overflow-x: hidden; }.sidebar { display: none; }.mobile-topbar { display: flex; align-items: center; justify-content: space-between; padding: 17px 18px 8px; }.mobile-topbar .sidebar-brand { color: var(--forest); font-size: 18px; padding: 0; }.mobile-topbar .brand-icon { width: 24px; height: 24px; font-size: 14px; }.icon-button { position: relative; border: 0; background: transparent; color: var(--deep-sage); font-size: 22px; }.notification-dot { position: absolute; right: 1px; top: 2px; width: 6px; height: 6px; border-radius: 50%; background: var(--coral); }.screen { width: 100%; max-width: 100%; min-width: 0; padding: 24px 18px 88px; overflow-x: hidden; }.page-header { display: block; margin-bottom: 23px; }.page-header .primary-button { margin-top: 17px; width: 100%; }.page-header h1 { font-size: 28px; }.metric-grid { gap: 8px; margin-bottom: 31px; }.metric-card { min-height: 130px; padding: 14px; }.metric-card strong { font-size: 24px; }.content-toolbar { display: block; }.toolbar-actions { margin-top: 14px; flex-wrap: nowrap; overflow-x: auto; padding-bottom: 2px; }.filter-button { white-space: nowrap; }.conversation-card, .reservation-card { padding: 13px 11px; gap: 10px; }.conversation-card .person-avatar, .reservation-card .person-avatar { width: 38px; height: 38px; }.conversation-name { font-size: 12px; }.reservation-card { align-items: flex-start; }.reservation-link { display: none; }.property-grid { display: block; }.property-card { margin-bottom: 12px; }.property-image { height: 160px; }.mobile-nav { position: fixed; z-index: 10; display: flex; left: 0; right: 0; bottom: 0; height: calc(64px + env(safe-area-inset-bottom)); padding: 6px 10px env(safe-area-inset-bottom); justify-content: space-around; background: rgba(255,255,255,.95); border-top: 1px solid #e5ebe5; box-shadow: 0 -8px 22px rgba(34,55,47,.05); backdrop-filter: blur(12px); }.mobile-nav-link { position: relative; flex: 1 1 0; min-width: 0; display: grid; place-items: center; gap: 2px; border: 0; background: transparent; color: #98a69d; }.mobile-nav-link span { font-size: 21px; line-height: 20px; }.mobile-nav-link small { font-size: 12px; font-weight: 600; }.mobile-nav-link.active { color: var(--deep-sage); }.mobile-nav-link b { position: absolute; top: -1px; right: calc(50% - 22px); display: grid; place-items: center; width: 16px; height: 16px; border-radius: 8px; background: var(--coral); color: white; font-size: 12px; }.detail-layout { display: block; }.info-panel { margin-top: 14px; }.detail-hero { display: block; }.detail-actions { margin-top: 16px; }.detail-actions button { flex: 1; }.form-grid { grid-template-columns: 1fr; }.form-group.full { grid-column: auto; }.modal-backdrop { align-items: flex-end; padding: 0; }.modal-sheet { width: 100%; max-height: 92svh; border-radius: 18px 18px 0 0; }.guest-welcome { padding-top: 20px; }.guest-welcome h1 { font-size: 29px; }.guest-chat { min-height: 350px; }
}
@media (min-width: 651px) and (max-width: 1050px) {
    .sa-property-row { grid-template-columns: minmax(0, 1fr) minmax(120px, .5fr); }
    .sa-property-actions { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid #eef1ee; }
}
@media (max-width: 650px) {
    .auth-card { padding: 27px 21px; }.auth-brand { margin-bottom: 35px; }
    .property-toolbar { display: block; margin-top: -8px; }.property-toolbar a { display: inline-block; margin-top: 7px; }
    .sa-property-row { display: block; }.sa-property-summary { margin-bottom: 12px; }.sa-calendar-cell { margin-bottom: 12px; }.sa-mini-calendar { width: 100%; }.sa-property-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }.sa-property-meta span { margin-top: 0; }.sa-property-actions { display: flex; flex-wrap: wrap; gap: 12px; padding-top: 11px; border-top: 1px solid #eef1ee; }
    .page-header .calendar-month-nav { margin-top: 16px; justify-content: space-between; }.calendar-property-grid { display: block; }.calendar-property-card { margin-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }

/* Keep all interface text readable with a 12px minimum across screen sizes. */
.eyebrow, .welcome-kicker, .workspace-switcher small, .avatar, .nav-count, .trial-label, .trial-card small, .metric-card small, .section-meta, .filter-button, .time, .conversation-property, .status, .ai-tag, .unread, .reservation-notice p, .reservation-date, .reservation-link, .reservation-delete, .property-address, .property-stats, .knowledge-chip, .property-footer small, .text-button, .back-button, .secondary-button, .takeover-button, .toggle-row, .chat-line, .chat-line time, .composer input, .form-control, .info-row small, .info-row strong, .info-banner, .knowledge-category, .knowledge-item p, .secure-label, .stay-pill, .quick-action, .date-divider, .bubble-label, .chat-bubble time, .guest-disclaimer, .auth-form label, .auth-footnote, .form-section-label, .calendar-source-heading small, .calendar-connected, .calendar-source-error, .calendar-source-actions button, .calendar-add-form label, .calendar-empty, .hostbeez-calendar-card p, .property-calendar-days span small, .property-toolbar, .sa-property-summary p, .sa-property-summary small, .sa-mini-calendar > strong, .sa-calendar-week, .sa-calendar-days span, .sa-calendar-days i, .sa-property-meta span, .sa-property-actions a, .sa-property-actions button, .sa-modal-week, .sa-modal-days span, .sa-modal-days i, .calendar-legend, .calendar-property-head p, .calendar-property-head > span, .calendar-week-labels span, .calendar-day-grid span, .calendar-day-grid i, .calendar-card-footer, .reservation-search input, .reservation-filter, .contact-option small, .calendar-event-list h3, .calendar-event-line, .calendar-event-line strong, .calendar-event-label, .calendar-event-empty, .calendar-day-grid span.blocked .calendar-overlap-count, .calendar-event-legend span, .form-group label, .link-created p, .link-actions button, .toast, .mobile-nav-link small, .mobile-nav-link b { font-size: 12px !important; }

@media (max-width: 650px) {
    /* Let inbox card content shrink and wrap instead of widening the viewport. */
    .conversation-list { width: 100%; min-width: 0; }
    .conversation-card { width: 100%; min-width: 0; max-width: 100%; overflow: hidden; align-items: flex-start; }
    .conversation-card .person-avatar { flex: 0 0 38px; }
    .conversation-card .conversation-main { width: 0; min-width: 0; flex: 1 1 0%; }
    .conversation-top { min-width: 0; gap: 6px; }
    .conversation-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .conversation-top .time { flex: 0 1 auto; white-space: normal; text-align: right; }
    .conversation-property, .conversation-preview { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .conversation-footer { min-width: 0; flex-wrap: wrap; gap: 5px 7px; }
    .conversation-footer .time { white-space: normal; overflow-wrap: anywhere; }
    .conversation-card .unread { flex: 0 0 auto; }

    /* Keep guest and host chat bubbles inside the mobile transcript column. */
    .guest-app { width: 100%; max-width: 590px; min-width: 0; }
    .guest-welcome { min-width: 0; padding: 20px 18px 14px; }
    .guest-welcome h1, .guest-welcome p { overflow-wrap: anywhere; }
    .guest-chat { width: 100%; min-width: 0; min-height: 0; padding: 14px 14px 20px; overflow-x: hidden; }
    .chat-bubble { display: block; width: fit-content; max-width: 88%; min-width: 0; padding: 11px 13px; overflow-wrap: anywhere; word-break: break-word; }
    .chat-bubble.concierge { margin-right: auto; }
    .chat-bubble.guest { margin-left: auto; }
    .bubble-label, .chat-bubble time { display: block; }
    .guest-composer { width: 100%; min-width: 0; padding: 10px 12px; gap: 8px; }
    .guest-composer input { min-width: 0; width: 0; flex: 1 1 0%; }
    .guest-composer .send-button { flex: 0 0 auto; }

    .detail-layout { grid-template-columns: minmax(0, 1fr); }
    .detail-screen, .detail-screen > *, .chat-panel, .detail-chat { min-width: 0; max-width: 100%; }
    .detail-chat { overflow-x: hidden; }
    .chat-line { max-width: 88%; min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
}
