/* T32a — Maison accueillante. Shell and phase-one screens only. */
[hidden] { display: none !important; }
body, .miguel-assistant { font-family: var(--font-ui); }
body :is(button, input, select, textarea) { font-family: inherit; }
body :is(.button, .su-button, .icon-button, input:not([type="checkbox"]), select, textarea) { border-radius: var(--control-radius); }
body :is(.button, .su-button, .nav-item) { min-height: 44px; transition: background-color var(--motion-duration), border-color var(--motion-duration); }
body .button { display:inline-flex; align-items:center; justify-content:center; gap:7px; text-align:center; }
body :is(.panel, .su-card, .row-card, .core-kpi-card, .modal, .core-owner-drawer) { border-radius: var(--card-radius); box-shadow: var(--shadow-soft); }
body :is(.pill, .badge, .su-status, .su-badge, .status-pill) { border-radius: var(--radius-sm); }
body :is(.page-subnav-item, .su-tab) { border-radius: var(--control-radius); min-height: 44px; }
body :is(.row-card, .su-list-row) { min-height: var(--row-height); padding-block: var(--row-padding); }
body :is(th, td) { height: 44px; padding-block: var(--space-1); }
body :is(.nav-item, .sidebar-toggle, .sidebar-search, .mobile-tabbar) svg { fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
body .button-primary { background: var(--primary); color: var(--on-primary); box-shadow: var(--shadow-soft); }
@media (hover: hover) and (pointer: fine) {
body .button-primary:hover { background: var(--primary-hover); }
}
body :is(.toast, .notification) { border-radius: var(--control-radius); box-shadow: var(--shadow-soft); }
.topbar { gap: var(--space-2); padding-bottom: var(--space-3); }
.topbar-actions { flex-wrap: wrap; }
.command-launch { color: var(--text-soft); gap: var(--space-2); }
kbd { font: inherit; font-size: 12px; border: 1px solid var(--line); border-radius: 5px; padding: 2px 5px; white-space: nowrap; }
.sidebar { background: var(--surface); box-shadow: none; backdrop-filter: none; }
.brand { grid-template-columns:48px minmax(0,1fr) 32px; align-items:center; background: transparent; padding: var(--space-1); }
.brand-logo { background: transparent; border: 0; box-shadow: none; }
.brand span { font-size: 12px; }
.sidebar-toggle, .sidebar-search { display: flex; align-items: center; gap: var(--space-1); width: 100%; min-height: 44px; padding: 8px 12px; border: 0; border-radius: var(--control-radius); background: transparent; color: var(--text-soft); text-align: left; }
.sidebar-search { margin-bottom: var(--space-2); background: var(--bg); }
.sidebar-search kbd { margin-left: auto; }
.sidebar-toggle svg, .sidebar-search svg { width: 22px; height: 22px; flex: 0 0 22px; }
.brand .sidebar-toggle { justify-content:center; width:32px; min-height:32px; height:32px; padding:8px; border-radius:9px; }
.brand .sidebar-toggle svg { width:16px; height:16px; flex-basis:16px; }
.nav-list { gap: 4px; }
.nav-item { position: relative; min-height: var(--row-height); }
.nav-section-label { display: none; }
.nav-group-drawer, .reserve-drawer { margin-top: var(--space-2); font-size: 13px; }
.sidebar-footer { font-size: 12px; }
.message-waiting-dot { display: inline-block; flex: 0 0 8px; width: 8px; height: 8px; border-radius: 50%; background: var(--accent); }
.nav-item .message-waiting-dot { margin-left: auto; }
.mobile-tabbar button { position: relative; }
.mobile-tabbar .message-waiting-dot { position: absolute; top: 6px; left: calc(50% + 9px); border: 2px solid var(--surface); width: 10px; height: 10px; }
@media (min-width: 901px) and (display-mode: browser) {
  .app-shell { display: grid; grid-template-columns: var(--sidebar-width) minmax(0, 1fr); }
  .sidebar { position: sticky; top: 0; align-self: start; height: 100dvh; min-height: 0; overflow-y: auto; }
  .nav-list { grid-template-columns: minmax(0, 1fr); }
  body.sidebar-collapsed { --sidebar-width: 88px; }
  .sidebar-collapsed .sidebar { padding-inline: 12px; }
  .sidebar-collapsed .brand { display:grid; grid-template-columns:1fr; padding:0; justify-items:center; }
  .sidebar-collapsed .brand .sidebar-toggle { margin-top:4px; }
  .sidebar-collapsed .brand > div, .sidebar-collapsed .sidebar-footer,
  .sidebar-collapsed .sidebar-search kbd, .sidebar-collapsed .sidebar-search span,
  .sidebar-collapsed .sidebar-toggle span, .sidebar-collapsed .nav-item > span { display: none; }
  .sidebar-collapsed :is(.nav-item, .sidebar-toggle, .sidebar-search) { justify-content: center; padding-inline: 8px; }
  .sidebar-collapsed .nav-item .message-waiting-dot { position: absolute; right: 5px; top: 9px; }
  .sidebar-collapsed .nav-group-drawer, .sidebar-collapsed .reserve-drawer { display: none; }
}
/* Native dialogs provide Escape, focus containment, and return focus. */
.command-dialog, .mobile-more-dialog { color: var(--text); background: var(--surface); border: 1px solid var(--line); border-radius: var(--card-radius); padding: var(--space-3); box-shadow: var(--shadow); max-height: calc(100dvh - 32px); overflow-y: auto; }
.command-dialog { width: min(680px, calc(100% - 32px)); margin: 8vh auto auto; transition: none !important; }
.dialog-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2); margin-bottom: var(--space-2); }
.dialog-heading h2 { margin: 0; font-size: 20px; }
.command-field { display: block; color: var(--text-soft); font-size: 14px; margin-bottom: var(--space-1); }
#commandInput { width: 100%; min-height: 52px; padding: 12px 16px; border: 1px solid var(--line-strong); color: var(--text); background: var(--surface); font-size: 16px; }
#commandStatus, .command-help { color: var(--text-soft); font-size: 13px; }
.command-results { display: grid; gap: var(--space-1); max-height: 52dvh; overflow-y: auto; padding: 4px; }
.command-results .global-result { min-height: var(--row-height); border-radius: var(--control-radius); padding: var(--space-2); text-align: left; }
.command-results .global-result :is(strong, span) { white-space: normal; overflow-wrap: break-word; }
.mobile-more-dialog { width: 100%; height: auto; max-width: none; max-height: min(86dvh, 720px); margin: auto 0 0; border: 1px solid var(--line); border-width: 1px 0 0; border-radius: 24px 24px 0 0; padding: 12px 24px calc(24px + env(safe-area-inset-bottom)); overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; }
.mobile-more-dialog::before { content:""; display:block; width:42px; height:5px; margin:0 auto 14px; border-radius:var(--radius-sm); background:var(--line-strong); }
.mobile-more-dialog .dialog-heading { touch-action:none; }
.mobile-more-dialog.is-dragging { transition:none !important; user-select:none; }
.mobile-more-dialog nav { display: grid; gap: var(--space-1); margin: var(--space-3) 0; }
.mobile-more-dialog nav button { display: flex; justify-content: space-between; align-items: center; min-height: 56px; padding: var(--space-2); border: 1px solid var(--line); border-radius: var(--control-radius); background: var(--bg); color: var(--text); text-align: left; font-size: 16px; }
.today-welcome { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-1) 0 var(--space-2); }
.today-welcome h2 { margin: 8px 0; font-size: clamp(26px, 3vw, 32px); letter-spacing: normal; }
.today-welcome p { margin: 0; color: var(--text-soft); }
.today-date { font-size: 14px; text-transform: none; }
.today-welcome img { flex: 0 0 64px; object-fit: contain; }
.core-today { gap: var(--space-3); }
.core-kpi-grid { gap: var(--space-2); }
.core-kpi-card { min-height: 152px; padding: var(--space-2); background: var(--surface); }
.core-kpi-card::after { display: none; }
.core-kpi-card strong { font-variant-numeric: tabular-nums; }
.core-kpi-card small { font-size: 13px; }
.core-work-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.core-work-grid .panel-header { padding: var(--space-3); }
.core-work-grid .panel-body { padding: 0 var(--space-3) var(--space-3); }
.core-work-grid .panel-header h2 { font-size: 20px; }
.core-work-grid .panel-header p { font-size: 13px; }
.core-work-grid .core-panel-icon { display: none; }
.core-work-grid .panel-header > div { display: block; }
.core-action-row, .core-stay-list > button { min-height: var(--row-height); padding: var(--space-2) 0; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; }
.core-action-row { grid-template-columns: auto minmax(0, 1fr); gap: var(--space-1) var(--space-2); }
.core-action-row > strong { grid-column: 2; justify-self: start; font-size: 13px; padding: 4px 0; color: var(--primary-dark); background: transparent; max-width: none; }
.core-action-row > i { display: none; }
.core-action-row :is(b, small), .core-stay-list :is(strong, small) { overflow-wrap: normal; white-space: normal; }
.core-action-row b, .core-stay-list strong { font-size: 14px; }
.core-stay-list > button { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); text-align: left; }
.core-stay-list > button > span:not(.core-guest-avatar):not(.core-stay-meta) { flex: 1 1 160px; }
.core-guest-avatar { flex-shrink: 0; }
.core-stay-meta { margin-left: auto; }
.core-empty-state { padding: var(--space-3) var(--space-1); }
.core-empty-icon { width: auto; height: auto; background: transparent; }
.core-action-list .dashboard-notice-panel { margin: var(--space-2) 0 0; border: 0; border-top: 1px solid var(--line); border-radius: 0; box-shadow: none; background: transparent; }
.core-action-list .dashboard-notice-panel .panel-body { padding: var(--space-2) 0 0; }
.today-startup { padding: var(--space-2); border: 1px solid var(--line); border-radius: var(--card-radius); background: var(--surface); }
.today-startup summary { cursor: pointer; min-height: 44px; padding-block: 12px; }
.settings-layout { display: grid; grid-template-columns: minmax(180px, 220px) minmax(0, 1fr); gap: var(--space-3); align-items: start; }
.settings-index { display: grid; gap: 4px; position: sticky; top: var(--space-3); }
.settings-index button { display: flex; align-items: center; justify-content: space-between; gap: var(--space-1); text-align: left; min-height: var(--row-height); padding: 12px 16px; border: 0; border-radius: var(--control-radius); background: transparent; color: var(--text-soft); font: inherit; font-size: 14px; overflow-wrap: normal; }
.settings-index [aria-current="page"] { color: var(--primary-dark); background: var(--primary-soft); font-weight: 700; }
.settings-index > button > span { display: none; }
.settings-content { display: grid; gap: var(--space-3); min-width: 0; }
.settings-content .span-12 { grid-column: auto; }
.settings-content .panel { min-width: 0; }
.settings-form { gap: var(--space-2); }
.settings-back { display: none; }
@media (max-width: 1100px) {
  .core-work-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px), (display-mode: standalone) {
  .mobile-tabbar { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; padding-inline: 0; overflow-x: visible; }
  .mobile-tabbar button { min-width: 44px; padding-inline: 2px; font-size: 11px; letter-spacing: normal; }
  .mobile-tabbar [data-mobile-primary="dashboard"] svg path { fill: none; stroke: currentColor; }
  .mobile-header .icon-button { flex-shrink: 0; min-width: 44px; min-height: 44px; font-size: 26px; }
  .today-welcome { padding-top: var(--space-1); }
  .today-welcome img { width: 48px; height: 48px; flex-basis: 48px; }
  .core-kpi-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 9rem), 1fr)); gap: var(--space-1); }
  .core-kpi-card { min-height: 140px; }
  .core-work-grid { gap: var(--space-2); }
  .core-work-grid .panel-header { padding: var(--space-2); }
  .core-work-grid .panel-body { padding: 0 var(--space-2) var(--space-2); }
  .settings-layout { display: block; }
  .settings-index { position: static; }
  .settings-index button { background: var(--surface); border-bottom: 1px solid var(--line); font-size: 16px; }
  .settings-index > button > span { display: inline; }
  .settings-layout:not(.has-detail) .settings-content, .settings-layout.has-detail .settings-index { display: none; }
  .settings-layout.has-detail .settings-back { display: inline-flex; justify-self: start; }
  .command-dialog { margin-top: 16px; padding: var(--space-2); }
  .dialog-heading .button { min-height: 44px; }
}
/* T32b — compact calendars and the shared stay dossier. */
.mobile-header .mobile-sync-status { display: none; }
body[data-current-view="dashboard"] .topbar { align-items:center; flex-wrap:nowrap; min-width:0; padding-bottom:8px; }
body[data-current-view="dashboard"] .topbar > div:first-child { flex:1 1 auto; min-width:0; }
body[data-current-view="dashboard"] .topbar-actions { flex:0 0 auto; flex-wrap:nowrap; align-items:center; }
body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property { display:inline-flex; align-items:center; justify-content:flex-end; gap:0; width:44px; min-width:44px; height:44px; min-height:44px; flex:0 0 44px; padding:0 13px; overflow:hidden; border-radius:var(--radius-control); font-size:26px; line-height:1; white-space:nowrap; transition:width var(--dur-small) var(--ease-out),flex-basis var(--dur-small) var(--ease-out),background-color var(--dur-press) var(--ease-out); }body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property:focus-visible { width:190px; flex-basis:190px; }
@media (hover: hover) and (pointer: fine) {
body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property:hover { width:190px; flex-basis:190px; }
}
body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property::before { display:none; content:none; }
:is(body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property .dashboard-add-property-icon, .mobile-primary-action > span) { position:relative; display:block; width:18px; min-width:18px; height:18px; font-size:0; line-height:0; }
:is(body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property .dashboard-add-property-icon, .mobile-primary-action > span)::before,
:is(body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property .dashboard-add-property-icon, .mobile-primary-action > span)::after { content:""; position:absolute; border-radius:1px; background:currentColor; }
:is(body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property .dashboard-add-property-icon, .mobile-primary-action > span)::before { left:1px; top:8px; width:16px; height:2px; }
:is(body[data-current-view="dashboard"] #openNewDossier.dashboard-add-property .dashboard-add-property-icon, .mobile-primary-action > span)::after { left:8px; top:1px; width:2px; height:16px; }
body[data-current-view="dashboard"] #openNewDossier .dashboard-add-property-label { max-width:0; overflow:hidden; opacity:0; font-size:13px; font-weight:700; line-height:1.2; transition:max-width var(--dur-small) var(--ease-out),margin-right var(--dur-small) var(--ease-out),opacity var(--dur-press) ease; }body[data-current-view="dashboard"] #openNewDossier:focus-visible .dashboard-add-property-label { max-width:135px; margin-right:10px; opacity:1; }
@media (hover: hover) and (pointer: fine) {
body[data-current-view="dashboard"] #openNewDossier:hover .dashboard-add-property-label { max-width:135px; margin-right:10px; opacity:1; }
}
body[data-current-view="dashboard"] #pageTitle { font-size: clamp(26px, 3vw, 32px); }
.stay-timeline-desktop, .stay-timeline-scroll, .property-month, .reservation-workspace, .reservation-results, .reservation-dossier-dock { min-width: 0; max-width: 100%; }
.stay-timeline-scroll { overflow: auto; max-height: 68vh; border: 1px solid var(--line); border-radius: var(--control-radius); }
.stay-timeline { --night-width: 80px; --name-width: 220px; width: calc(var(--name-width) + var(--day-count) * var(--night-width)); }
.stay-timeline-header { display: grid; grid-template-columns: var(--name-width) repeat(var(--day-count), var(--night-width)); position: sticky; top: 0; z-index: 3; background: var(--surface); border-bottom: 1px solid var(--line); }
.stay-timeline-header > div { display: grid; text-align: center; padding: 8px; font-size: 12px; border-left: 1px solid var(--line); }
.stay-timeline-header > strong { position: sticky; left: 0; background: var(--surface); padding: 16px; font-size: 13px; }
.stay-timeline-row { display: grid; grid-template-columns: var(--name-width) minmax(0, 1fr); border-bottom: 1px solid var(--line); min-height: 56px; }
.stay-timeline-name { position: sticky; left: 0; z-index: 2; padding: 12px; border: 0; border-right: 1px solid var(--line); background: var(--surface); color: var(--text); text-align: left; font: inherit; font-size: 12px; white-space: normal; overflow-wrap: normal; min-width: 0; }
@media (hover: hover) and (pointer: fine) {
button.stay-timeline-name:hover { background: var(--primary-soft); }
}
.stay-timeline-name.is-unit { padding-left: 24px; color: var(--text-soft); }
.stay-timeline-name small { display: block; margin-top: 4px; }
.stay-timeline-track { display: grid; grid-template-columns: repeat(var(--day-count), var(--night-width)); grid-auto-rows: minmax(48px, auto); min-width: 0; }
.stay-night-price { border-right: 1px solid var(--line); display: flex; justify-content: center; align-items: center; color: var(--text-muted); font-size: 11px; padding: 2px; }
.stay-timeline .is-today { background: var(--primary-soft); }
.stay-bar, .month-stay, .stay-mobile-item { --stay-color: var(--green); --stay-bg: var(--green-soft); background: var(--stay-bg); color: var(--stay-color); border: 1px solid var(--stay-color); border-left-width: 4px; font: inherit; }
:is(.stay-bar, .month-stay, .stay-mobile-item, .stay-platform-legend span).airbnb { --stay-color: var(--primary-dark); --stay-bg: var(--primary-soft); }
:is(.stay-bar, .month-stay, .stay-mobile-item, .stay-platform-legend span).booking { --stay-color: var(--blue); --stay-bg: var(--blue-soft); }
:is(.stay-bar, .month-stay, .stay-mobile-item, .stay-platform-legend span).abritel { --stay-color: var(--lavender-strong); --stay-bg: var(--lavender); }
:is(.stay-bar, .month-stay, .stay-mobile-item, .stay-platform-legend span).gites-france { --stay-color: var(--amber); --stay-bg: var(--amber-soft); }
.stay-bar { z-index: 1; margin: 4px 2px; padding: 8px; border-radius: 8px; min-width: 0; text-align: left; font-size: 12px; white-space: normal; overflow-wrap: normal; }
:is(.stay-bar, .month-stay, .stay-mobile-item).is-request { border-style: dashed; border-width: 2px; }
:is(.stay-bar, .month-stay, .stay-mobile-item).is-block { --stay-color: var(--text-soft); --stay-bg: var(--surface-muted); }
.automatic-closure { border: 1px solid var(--line-strong); color: var(--text-soft); background: repeating-linear-gradient(135deg, var(--surface-muted), var(--surface-muted) 5px, var(--line) 5px, var(--line) 7px); min-height: 44px; font-size: 14px; cursor: pointer; }
.stay-platform-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 12px 0; font-size: 11px; color: var(--text-soft); }
.stay-platform-legend span { color: var(--stay-color, var(--text-soft)); background: var(--stay-bg, var(--surface)); padding: 4px 8px; border-radius: 8px; }
.stay-mobile-list { display: none; }
.calendar-navigation label { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12px; }
.calendar-navigation input { min-width: 0; max-width: 100%; }
.calendar-view-tabs { flex-wrap: wrap; }
.calendar-view-tabs strong { padding: 8px; font-size: 14px; }
.property-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.property-month-weekday { padding: 8px 0; text-align: center; font-size: 12px; background: var(--surface-muted); }
.property-month-day { min-width: 0; min-height: 124px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 4px; background: var(--surface); }
.property-month-day.is-muted { background: var(--surface-muted); }
.property-month-day.is-today { box-shadow: inset 0 3px var(--primary); }
.property-month-day.is-selected { background: var(--primary-soft); box-shadow: inset 0 0 0 2px var(--primary); }
.month-night-select { display: grid; gap: 4px; width: 100%; min-width: 0; min-height: 64px; padding: 4px; background: transparent; color: var(--text); border: 0; text-align: left; font: inherit; font-size: 12px; }
.month-night-select span, .month-night-select small { color: var(--text-muted); font-size: 11px; }
.month-stays { display: grid; gap: 4px; }
.month-stay { padding: 4px; min-width: 0; min-height: 44px; font-size: 11px; border-radius: 6px; text-align: left; white-space: normal; overflow-wrap: normal; }
.month-closure { width: 100%; margin-top: 4px; }
.calendar-night-selection { display: grid; gap: 12px; padding-top: 16px; font-size: 13px; }
.month-selected-stays { display: flex; flex-wrap: wrap; gap: 8px; }
.reservation-view-switch { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.reservation-view-switch [aria-pressed="true"] { color: var(--primary-dark); background: var(--primary-soft); border-color: var(--primary); }
.reservation-filter-bar { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.reservation-workspace { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(0, 1.4fr); gap: 16px; align-items: start; }
.reservation-workspace.is-table { grid-template-columns: minmax(0, 1fr); }
.reservation-workspace.is-table:not(.has-detail) .reservation-dossier-dock { display: none; }
.reservation-workspace .managed-reservation-row { display: flex; flex-direction: column; flex-wrap: wrap; gap: 8px; padding: 16px; }
.reservation-workspace .managed-reservation-dates { display: flex; flex-wrap: wrap; gap: 4px 8px; padding: 0; border: 0; }
.reservation-workspace .managed-reservation-dates strong { font-size: 14px; }
.reservation-workspace .managed-reservation-dates i { display: none; }
.reservation-workspace .managed-reservation-row > * { flex: 0 1 auto; width: 100%; min-width: 0; }
.reservation-workspace .managed-reservation-contact { display: none; }
.reservation-workspace .managed-reservation-action { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px; }
.reservation-workspace .managed-reservation-row.is-selected { border-color: var(--primary); background: var(--primary-faint); }
.reservation-workspace .managed-reservation-action small { color: var(--text-soft); }
.reservation-dossier-dock { position: sticky; top: 16px; }
#reservationJourneyModal.is-inline-dossier { display: block; position: static; padding: 0; background: transparent; backdrop-filter: none; z-index: auto; }
.is-inline-dossier .reservation-journey-modal { width: 100%; max-width: 100%; max-height: none; padding: 16px; box-shadow: none; border: 1px solid var(--line); overflow: visible; }
.is-inline-dossier .modal-header { align-items: start; }
.is-inline-dossier #closeReservationJourneyModal { width: auto; height: auto; min-height: 44px; padding: 8px; font-size: 12px; }
.is-inline-dossier .request-comparison { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; overflow: visible; }
.is-inline-dossier .request-comparison > :only-child { grid-column: 1 / -1; }
.request-comparison-card { min-width: 0; }
.request-comparison-card :is(h3,p) { white-space: normal; overflow-wrap: normal; }
.is-inline-dossier .request-comparison-card { padding: 12px; font-size: 12px; }
.is-inline-dossier .request-comparison-card h3 { font-size: 14px; }
.is-inline-dossier .reservation-journey-facts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 150px), 1fr)); }
.reservation-table-scroll { max-width: 100%; overflow: auto; }
.reservation-dense-table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 12px; }
.reservation-dense-table :is(th,td) { padding: 8px; text-align: left; vertical-align: top; white-space: normal; overflow-wrap: normal; }
.reservation-dense-table button { min-height: 44px; border: 0; background: transparent; color: var(--primary-dark); text-align: left; font: inherit; white-space: normal; }
.reservation-dense-table small { display: block; margin-top: 4px; }
@media (max-width: 900px), (display-mode: standalone) {
  .stay-timeline-desktop { display: none; }
  .stay-mobile-list { display: grid; gap: 16px; }
  .stay-mobile-list article { min-width: 0; display: grid; gap: 8px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
  .stay-mobile-item { display: grid; gap: 4px; width: 100%; min-width: 0; padding: 12px; border-radius: var(--control-radius); text-align: left; font-size: 13px; }
  .property-month-day { min-height: 86px; padding: 1px; }
  .month-night-select { font-size: 12px; padding: 3px 1px; text-align: center; }
  .month-night-select :is(span,small) { font-size: 11px; }
  .month-stays { display: none; }
  .property-month-weekday { font-size: 11px; }
  .calendar-planning-body { padding-inline: 8px; }
  .reservation-workspace { display: block; }
  .reservation-workspace:not(.has-detail) .reservation-dossier-dock { display: none; }
  .reservation-workspace.has-detail .reservation-results { display: none; }
  .reservation-dossier-dock { position: static; }
  .is-inline-dossier .reservation-journey-modal { padding: 12px; }
  .is-inline-dossier .request-comparison { grid-template-columns: minmax(0, 1fr); }
  .is-inline-dossier .modal-header { flex-wrap: wrap; }
  .reservation-dense-table { min-width: 700px; }
}
@media (max-width: 900px), (display-mode: standalone) {
  #reservationsView:has(.reservation-workspace.has-detail) :is(.reservation-hero, .reservation-list-heading, .reservation-filter-bar, .reservation-view-switch) { display: none; }
  #reservationsView:has(.reservation-workspace.has-detail) .reservation-dossier-dock { min-height: calc(100dvh - 180px); }
}
.calendar-closure-detail { margin-top: 12px; padding: 16px; border: 1px solid var(--line); border-radius: var(--control-radius); background: var(--surface-muted); color: var(--text); white-space: pre-line; font-size: 13px; }
.today-mobile-greeting { display: none; }
@media (max-width: 900px), (display-mode: standalone) {
  .today-mobile-greeting { display: block; margin: 0; font-size: 28px; color: var(--text); }
}
.reservation-request-deadline { margin: 8px 0; font-size: 12px; color: var(--amber); }
.reservation-lab-examples { margin-top: 24px; font-size: 12px; color: var(--text-soft); }
.reservation-lab-examples summary { min-height: 44px; padding: 12px 0; cursor: pointer; }
.reservation-list-heading { padding-block: 16px; }
@media (max-width: 900px), (display-mode: standalone) {
  #reservationsView:has(.reservation-workspace.has-detail) .reservation-lab-examples { display: none; }
}

/* T32c — compact working views, using the shared Maison accueillante tokens. */
.calendar-controls-compact { display:flex; flex-wrap:wrap; align-items:end; gap:8px; }
.calendar-controls-compact .calendar-filter-strip { display:flex; flex:1 1 430px; flex-wrap:wrap; gap:8px; margin:0; padding:0; border:0; }
.calendar-controls-compact .calendar-filter-strip label { flex:1 1 100px; min-width:0; }
.calendar-controls-compact select { width:100%; min-width:0; }
.calendar-controls-compact .calendar-navigation { display:flex; flex:1 1 360px; flex-wrap:wrap; gap:8px; margin:0; padding:0; }
.calendar-controls-compact .calendar-navigation strong { font-size:12px; }
.calendar-controls-compact .calendar-navigation label { font-size:11px; }
.calendar-controls-compact .calendar-navigation input { width:140px; }
.calendar-controls-compact .calendar-occupancy-switch, .calendar-controls-compact .calendar-legends { display:none; }
.calendar-page-intro { align-items:center; }
.calendar-page-intro > div:first-child { display:none; }
.calendar-page-header { gap:8px; padding-block:12px; }
.calendar-planning-body { gap:12px; }
.calendar-unit-notice { display:block; font-size:11px; color:var(--text-muted); margin:4px 0; }
.reservation-compact-row.managed-reservation-row { display:flex; flex-wrap:wrap; padding:0; min-height:0; }
.reservation-compact-row > button { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 12px; width:100%; border:0; background:transparent; color:inherit; text-align:left; padding:10px 12px; cursor:pointer; }
.reservation-compact-row strong, .reservation-compact-row button > span:not(.pill):not(.platform-badge) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; }
.reservation-compact-row strong { grid-column:1; font-size:13px; }
.reservation-compact-row time { grid-column:1; font-size:11px; }
.reservation-compact-row .pill { grid-column:2; grid-row:1; font-size:11px; }
.reservation-compact-row small { grid-column:1 / -1; font-size:11px; }
.reservation-dense-table { table-layout:fixed; width:100%; }
.reservation-dense-table th, .reservation-dense-table td { height:44px; max-width:0; padding:6px 10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.reservation-dense-table td button { display:block; width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; text-align:left; }
.reservation-dense-table td [data-text-token] { white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.reservation-dense-table td small { display:none; }
.messages-workspace { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.7fr); gap:16px; align-items:start; }
.messages-workspace > * { min-width:0; }
.messages-conversations .su-thread-list { max-height:calc(100dvh - 210px); overflow:auto; }
.messages-conversations .su-thread { display:flex; min-width:0; gap:8px; padding:12px; }
.messages-conversations .su-thread > div { min-width:0; flex:1; }
.messages-conversations .su-thread :is(strong,small,p) { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.messages-conversations .su-thread time { font-size:11px; }
.message-reply-dot { display:inline-block; width:7px; height:7px; margin-right:6px; border-radius:50%; background:var(--primary); }
.message-stay-summary { padding:12px; border-bottom:1px solid var(--line); }
.message-stay-summary > summary { cursor:pointer; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; font-size:13px; }
.message-stay-summary[open] > summary { margin-bottom:16px; }
.message-stay-summary .kv-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.message-automatic-marker { font-size:11px; color:var(--text-muted); padding:8px; border-top:1px solid var(--line); }
.message-stay-summary p, .message-automatic-marker p { white-space:pre-wrap; }
.message-stay-summary [data-text-token] { overflow-wrap:normal; }
.messages-back { display:none; }
.su-property-catalog-intro { display:none; }
.property-view-cards .su-property-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr)); gap:16px; }
.property-view-cards .su-property-row { display:flex; flex-direction:column; align-items:stretch; gap:12px; padding:0 0 16px; overflow:hidden; border-radius:var(--card-radius); }
.property-view-cards .su-property-row-visual { width:100%; height:160px; border-radius:0; margin:0; overflow:hidden; }
.property-view-cards .su-property-row-visual .property-cover { width:100%; height:160px; }
.property-view-cards .su-property-row-visual img { width:100%; height:160px; object-fit:cover; }
.property-view-cards .su-property-row > :not(.su-property-row-visual) { margin-inline:16px; }
.su-property-row-platforms { display:flex; flex-wrap:wrap; gap:6px; min-width:0; }
.su-property-row-platforms .pill { white-space:normal; font-size:11px; }
.property-view-list .su-property-row { display:grid; grid-template-columns:44px minmax(0,1fr) minmax(0,1fr); padding:8px; gap:12px; }
.property-view-list .su-property-row-visual, .property-view-list .property-cover, .property-view-list .property-cover img { width:44px; height:44px; object-fit:cover; }
.property-view-list .su-property-row-footer, .property-view-list .su-property-owner { display:none; }
.property-view-list .publication-name { max-width:100%; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
#propertyWizardModal.is-property-sheet { padding:16px; }
.is-property-sheet .property-wizard { width:min(1320px,100%); max-width:1320px; }
.property-sheet-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:24px; align-items:start; }
.is-property-sheet .property-sheet-layout { grid-template-columns:170px minmax(0,1fr) 230px; }
#propertySheetNav, #propertyWizardMissing { position:sticky; top:0; min-width:0; }
#propertySheetNav { display:grid; gap:4px; }
#propertySheetNav[hidden], #propertyWizardMissing[hidden] { display:none; }
#propertySheetNav button, .publication-platform button { text-align:left; border:0; background:transparent; color:inherit; padding:10px; cursor:pointer; }
#propertySheetNav button[aria-current="page"] { background:var(--primary-soft); color:var(--link); border-radius:12px; }
#propertyWizardMissing { border-left:1px solid var(--line); padding-left:16px; }
.publication-platform { padding:12px 0; border-bottom:1px solid var(--line); font-size:12px; }
.publication-platform summary { cursor:pointer; }
.publication-platform button { display:block; text-decoration:underline; padding:6px 0; }
#propertyWizardFields { min-width:0; }
#propertyWizardFields > section, #propertyWizardFields > .panel { grid-column:1 / -1; min-width:0; }
.finance-top-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-block:16px; }
.finance-overview > nav { margin-block:16px; }
.finance-bank-row { display:grid; grid-template-columns:100px minmax(0,1fr) repeat(2,minmax(100px,.7fr)) 90px; gap:12px; align-items:center; padding:12px; border-bottom:1px solid var(--line); font-size:12px; }
.finance-bank-row > * { min-width:0; }
.finance-stay-link { border:0; color:inherit; background:transparent; text-align:left; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; }
.has-discrepancy { background:var(--amber-soft); }
.finance-owner-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr)); gap:16px; }
.finance-support { margin-top:24px; }
.finance-support > summary { cursor:pointer; padding:12px; }
.cleaning-planning-scroll { max-width:100%; overflow:auto; }
.cleaning-planning { width:100%; min-width:1050px; border-collapse:collapse; table-layout:fixed; }
.cleaning-planning th, .cleaning-planning td { border:1px solid var(--line); padding:8px; vertical-align:top; }
.cleaning-planning .is-unassigned > th { color:var(--red); background:var(--red-soft); }
.cleaning-card { display:grid; gap:8px; min-width:0; margin:6px 0; padding:10px; border:1px solid var(--line); border-radius:12px; background:var(--surface); font-size:11px; }
.cleaning-card > button { border:0; background:transparent; text-align:left; padding:0; color:inherit; cursor:pointer; }
.cleaning-card strong { display:block; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.cleaning-card select { width:100%; min-width:0; }
.cleaning-today { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.document-search-form .document-search-wide { grid-column:1 / -1; }
.document-search-wide input { min-height:56px; font-size:18px; }
.document-owner-folders { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr)); gap:16px; margin-top:24px; }
.document-owner-folders button { display:grid; gap:10px; padding:20px; text-align:left; border:1px solid var(--line); border-radius:18px; background:var(--surface); cursor:pointer; color:inherit; min-width:0; }
.document-owner-folders button > span { color:var(--link); font-size:28px; }
@media(max-width:1000px) {
  .is-property-sheet .property-sheet-layout { grid-template-columns:110px minmax(0,1fr) 170px; gap:12px; }

  .finance-bank-row { grid-template-columns:80px minmax(0,1fr) 100px; }
}
@media(max-width:600px) {
  .messages-workspace { grid-template-columns:minmax(0,1fr); }
  .messages-workspace:not(.has-detail) .messages-exchange, .messages-workspace.has-detail .messages-conversations { display:none; }
  .messages-back { display:block; }
  .messages-conversations .su-thread-list { max-height:none; }
  .is-property-sheet .property-sheet-layout { grid-template-columns:minmax(0,1fr); }
  #propertyWizardMissing { position:static; grid-column:1; border-left:0; border-top:1px solid var(--line); }
  #propertySheetNav { position:static; display:flex; flex-wrap:wrap; }
  #propertySheetNav button { font-size:11px; padding:8px; }
  #propertyWizardModal.is-property-sheet { padding:0; }
  .is-property-sheet .property-wizard { border-radius:0; max-height:100dvh; }
  .finance-top-metrics { gap:8px; }
  .finance-top-metrics .stat-card { padding:10px; }
  .finance-top-metrics strong { font-size:18px; }
  .cleaning-today { grid-template-columns:minmax(0,1fr); }
  .property-view-list .su-property-row { grid-template-columns:44px minmax(0,1fr); }
  .property-view-list .su-property-row-platforms { grid-column:1 / -1; }
  .finance-bank-row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
}

.property-sheet-layout { padding:0 18px 18px; }
#propertyWizardMissing { max-height:calc(100dvh - 180px); overflow-y:auto; }
.is-property-sheet .modal-actions { display:none; }
.is-property-sheet #propertyWizardSave { position:sticky; top:0; z-index:2; background:var(--surface); padding:8px 0; }
@media(max-width:600px) { #propertyWizardMissing { max-height:none; overflow:visible; } }

.calendar-controls-compact .calendar-filter-strip { flex:1 1 300px; flex-wrap:nowrap; }
.calendar-controls-compact .calendar-navigation { flex:1.6 1 500px; flex-wrap:nowrap; }
.cleaning-planning .is-unassigned > td { background:var(--red-soft); }
@media(max-width:900px) { .calendar-controls-compact .calendar-navigation, .calendar-controls-compact .calendar-filter-strip { flex-wrap:wrap; } }

/* T33a — clarté : shared density, then Today’s single-line summaries. */
body .topbar h1 { font-size:25px; line-height:1.3; margin:0; }
body :is(.panel-header h2,.panel-header h3,.su-card-header h3,.reservation-list-heading h2) { font-size:16px; line-height:1.4; }
body :is(.panel-header,.su-card-header) { padding:12px 16px; gap:12px; }
body .panel-body { padding:12px 16px; }
body .topbar { padding-bottom:12px; margin-bottom:8px; }
body :is(.panel,.su-card) :is(.panel,.su-card) { box-shadow:none; }
body .panel-body > .panel { border:0; border-radius:0; }
.sidebar .nav-list { display:flex; flex-direction:column; flex:1; }
.sidebar #toolsDrawer { margin-top:auto; padding-top:20px; }
.sidebar .lab-mention { color:var(--text-muted); font-size:11px; }
.sidebar .sidebar-footer { padding-top:8px; }
.sidebar .widget-studio-launch { width:100%; box-shadow:none; }
.today-date { margin-left:32px; font-size:14px; color:var(--text-muted); font-weight:400; text-transform:none; }
.today-compact { gap:16px; }
.today-compact .core-work-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
.today-compact .core-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; padding:8px 0; border-block:1px solid var(--line); }
body .today-compact .core-kpi-card { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:4px 12px; border:0; border-radius:0; box-shadow:none; background:transparent; color:var(--text); }
.today-compact .core-kpi-card + .core-kpi-card { border-left:1px solid var(--line); }
.today-compact .core-kpi-card strong { order:-1; font-size:22px; line-height:1.2; margin:0; }
.today-compact .core-kpi-label { font-size:12px; color:var(--text-soft); }
.today-compact .panel-header { display:flex; align-items:center; justify-content:space-between; padding:8px 16px; min-height:44px; }
.today-compact .panel-header h2 { font-size:16px; margin:0; }
.today-compact .panel-body { padding:0 16px 8px; }
.today-compact :is(.core-action-list,.core-stay-list) { display:block; }
.today-action { display:grid; grid-template-columns:20px minmax(0,1.4fr) minmax(0,1fr) auto 76px; gap:10px; align-items:center; min-width:0; min-height:44px; border-bottom:1px solid var(--line); }
.today-action:last-child { border-bottom:0; }
.today-action > :is(strong,small) { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; }
.today-action > small { color:var(--text-muted); }
.today-action .core-action-icon { width:20px; height:20px; background:transparent; }
.today-action .pill { font-size:11px; padding:3px 7px; white-space:nowrap; }
.today-link { color:var(--primary-dark); background:transparent; border:0; min-height:44px; padding:4px; cursor:pointer; font:inherit; font-size:12px; white-space:nowrap; }
@media (hover: hover) and (pointer: fine) {
.today-link:hover { text-decoration:underline; }
}
.today-compact .today-arrival { display:grid; grid-template-columns:60px minmax(0,1fr) minmax(0,1fr) auto; align-items:center; gap:12px; width:100%; min-height:44px; padding:0; }
.today-compact .today-arrival :is(strong,small) { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0; font-size:12px; }
.today-arrival time { font-size:12px; color:var(--text-muted); }
.today-arrival .pill { font-size:11px; }
.today-compact .core-empty-state { padding:16px 0; min-height:0; text-align:left; }
.today-compact .core-empty-state :is(strong,p) { font-size:13px; }
.today-notices { display:grid; gap:0; }
.today-notice { display:flex; align-items:center; justify-content:space-between; min-width:0; gap:12px; min-height:44px; font-size:12px; color:var(--text-muted); border-bottom:1px solid var(--line); }
.today-notice > span { min-width:0; }
.today-notice .today-link { flex-shrink:0; }
@media (max-width:900px), (display-mode:standalone) {
  .today-compact .today-mobile-greeting { display:block; font-size:18px; line-height:1.5; margin:0; }
}
@media (max-width:600px) {
  body .today-compact .core-kpi-card { flex-direction:column; gap:4px; padding:4px; }
  .today-compact .core-kpi-card strong { font-size:20px; }
  .today-compact .core-kpi-label { font-size:11px; text-align:center; }
  .today-compact .panel-header { padding-inline:10px; }
  .today-compact .panel-body { padding-inline:10px; }
  .today-action { grid-template-columns:10px minmax(0,1fr) minmax(0,1fr) auto 56px; gap:4px; }
  .today-action > :is(strong,small) { font-size:11px; }
  .today-action .pill { max-width:64px; overflow:hidden; text-overflow:ellipsis; font-size:11px; padding:3px; }
  .today-action .core-action-icon { width:10px; }
  .today-action .core-action-icon svg { width:10px; }
  .today-action .today-link { font-size:11px; }
  .today-compact .today-arrival { grid-template-columns:42px minmax(0,1fr) minmax(0,.8fr) auto; gap:6px; }
  .today-compact .today-arrival :is(strong,small,time) { font-size:11px; }
  .today-arrival .pill { padding:3px 5px; font-size:11px; }
  .today-date { font-size:12px; }
}

/* T33b — the calendar stays dense and scrolls only inside its own frame. */
.today-date { letter-spacing: normal; word-spacing:normal; white-space:normal; }
.today-compact .core-work-grid { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); }
.today-action { grid-template-columns:20px minmax(0,1.4fr) minmax(0,1fr) 104px 72px; column-gap:12px; text-align:left; }
.today-action > * { min-width:0; text-align:left; }
.today-action .pill { overflow:hidden; text-overflow:ellipsis; }
.today-filtered-actions { min-width:0; }
.today-filtered-actions .panel-body { max-height:55vh; overflow:auto; }
.calendar-toolbar { display:flex; align-items:center; gap:6px; min-width:0; flex-wrap:wrap; margin-bottom:10px; }
.calendar-toolbar :is(input,select,.button) { min-width:0; font-size:12px; }
.calendar-toolbar > input[type=month] { width:155px; }
.calendar-toolbar > input[type=search] { flex:1 1 145px; width:145px; }
.calendar-toolbar .button { min-height:36px; padding:6px 10px; white-space:nowrap; }
.calendar-toolbar .calendar-icon-button { width:30px; height:36px; font-size:22px; flex-shrink:0; }
.calendar-toolbar-actions { display:flex; gap:6px; margin-left:auto; }
.calendar-filter-menu { position:relative; }
.calendar-filter-panel { position:absolute; top:100%; right:0; z-index:12; width:240px; max-width:calc(100vw - 32px); background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px; box-shadow:var(--shadow); }
.calendar-filter-panel label { display:grid; gap:4px; font-size:12px; margin-bottom:8px; }
.calendar-filter-panel select { width:100%; }
.calendar-month-context { display:flex; align-items:center; gap:12px; min-width:0; }
.calendar-month-context strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stay-timeline { --night-width:76px; --name-width:220px; }
.stay-timeline-row { min-height:38px; }
.stay-timeline-track { grid-auto-rows:minmax(38px,auto); }
.stay-timeline-name { display:flex; gap:6px; align-items:center; padding:3px 7px; }
.calendar-order-handle { flex:0 0 28px; width:28px; min-height:36px; padding:0; border:0; border-radius:8px; background:transparent; color:var(--text-muted); cursor:grab; font:700 14px/1 monospace; touch-action:manipulation; }
.calendar-order-instructions { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }.calendar-order-handle:focus-visible, .calendar-order-handle.is-dragging { color:var(--primary-dark); background:var(--primary-soft); }
@media (hover: hover) and (pointer: fine) {
.calendar-order-handle:hover { color:var(--primary-dark); background:var(--primary-soft); }
}
.calendar-order-handle.is-dragging { cursor:grabbing; touch-action:none; }
.stay-timeline-row.is-order-target > .stay-timeline-name { box-shadow:inset 0 2px var(--primary); }
.stay-timeline-name.is-unit { padding-left:32px; }
.calendar-thumbnail { width:28px; height:28px; flex:0 0 28px; object-fit:cover; border-radius:7px; background:var(--surface-muted); }
.calendar-property-name { display:block; min-width:0; flex:1; border:0; background:transparent; padding:0; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.calendar-property-name strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:11px; }
.calendar-property-name small { margin:0; font-size:11px; color:var(--text-muted); }
.calendar-fold { flex:0 0 22px; width:22px; min-height:30px; padding:0; border:0; background:transparent; color:var(--text); cursor:pointer; }
.stay-night-price { border:0; border-right:1px solid var(--line); background:transparent; min-width:0; font:inherit; font-size:11px; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; user-select:none; -webkit-user-select:none; }
.stay-timeline .is-weekend, .property-month-day.is-weekend { background:var(--surface-muted); }
.stay-timeline .is-today, .property-month-day.is-today { background:var(--primary-soft); }
.stay-night-price.is-selected, .property-month-day.is-selected { background:var(--primary-soft); box-shadow:inset 0 0 0 2px var(--primary); }
.stay-bar { margin:4px 2px; padding:4px 7px; min-height:30px; font-size:11px; }
.stay-bar > span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.stay-night-price.automatic-closure { border-radius:0; margin:0; background:repeating-linear-gradient(135deg,var(--surface-muted),var(--surface-muted) 5px,var(--line) 5px,var(--line) 6px); }
.stay-platform-legend { gap:10px; font-size:11px; }
.month-night-select { user-select:none; -webkit-user-select:none; }
.calendar-popover-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.calendar-popover-heading .today-link { min-height:24px; }
@media (max-width:900px) {
  .today-compact .core-work-grid { grid-template-columns:minmax(0,1fr); }
}
@media (max-width:760px) {
  .stay-timeline-desktop { display:block; }
  .stay-timeline { --name-width:145px; --night-width:66px; }
  .calendar-thumbnail { display:none; }
  .calendar-toolbar > input[type=search] { flex-basis:160px; }
  .calendar-toolbar-actions { margin-left:0; }
  .calendar-filter-panel { position:fixed; left:16px; right:16px; top:auto; width:auto; margin-top:4px; }
  .today-action { grid-template-columns:16px minmax(0,1.4fr) minmax(0,1fr) 62px 48px; gap:4px; }
  .today-action .core-action-icon, .today-action .core-action-icon svg { width:16px; }
}
.today-message-icon { position:relative; }
.today-message-icon .message-reply-dot { position:absolute; right:-1px; top:0; width:5px; height:5px; }
.calendar-selection-count { display:block; font-size:11px; color:var(--text-muted); }
.calendar-selection-count:empty { display:none; }

/* T33c — reservations v2, using the existing Maison accueillante tokens. */
.reservation-toolbar { display:flex; align-items:center; gap:12px; padding:12px; min-width:0; }
.reservation-state-tabs { display:flex; flex:1 1 auto; min-width:0; overflow-x:auto; scrollbar-width:thin; }
.reservation-state-tabs button, .reservation-dossier-tabs button { flex:none; min-height:40px; padding:8px 10px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--text-soft); font:inherit; font-size:12px; white-space:nowrap; cursor:pointer; }
.reservation-state-tabs button[aria-pressed="true"], .reservation-dossier-tabs button[aria-selected="true"] { color:var(--primary-dark); border-bottom-color:var(--primary); font-weight:700; }
.reservation-state-tabs button span { font-size:11px; margin-left:3px; }
.reservation-toolbar-actions { display:flex; align-items:center; gap:6px; min-width:0; }
.reservation-toolbar-actions .button { min-height:36px; padding:7px 9px; font-size:12px; }
.reservation-toolbar-actions input { width:150px; min-width:70px; }
.reservation-toolbar .reservation-view-switch { flex-wrap:nowrap; gap:0; margin:0; }
.reservation-filter-bar[hidden], .reservation-dossier-panel[hidden] { display:none !important; }
.reservation-workspace { grid-template-columns:minmax(280px,.9fr) minmax(0,1.3fr); gap:12px; }
.reservation-workspace .reservation-compact-row { padding:0; }
.reservation-compact-row > button { grid-template-columns:20px minmax(0,1fr) auto; grid-template-rows:auto auto; gap:5px 8px; padding:12px 10px; }
.reservation-compact-row .reservation-platform-dot { grid-column:1; grid-row:1 / 3; align-self:center; width:7px; height:7px; border-radius:50%; background:var(--text-soft); }
.reservation-platform-dot.airbnb { background:var(--primary-hover); }
.reservation-platform-dot.booking { background:var(--blue); }
.reservation-platform-dot.abritel { background:var(--lavender-strong); }
.reservation-platform-dot.gites-france { background:var(--amber); }
.reservation-platform-dot.direct, .reservation-platform-dot.miguel, .reservation-platform-dot.other { background:var(--green); }
.reservation-compact-row > button > strong { grid-column:2; grid-row:1; font-size:13px; }
.reservation-compact-row .reservation-row-subtitle { grid-column:2; grid-row:2; color:var(--text-soft); font-size:11px; }
.reservation-compact-row .reservation-row-amount { grid-column:3; grid-row:1; text-align:right; font-size:12px; }
.reservation-compact-row .reservation-row-state { grid-column:3; grid-row:2; font-size:11px; text-align:right; }
.reservation-compact-row .reservation-row-state .pill { font-size:11px; padding:2px 6px; }
.reservation-six-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:8px 0 16px; }
.reservation-six-facts > div { min-width:0; padding:8px 0; border-bottom:1px solid var(--line); }
.reservation-six-facts dt { font-size:11px; color:var(--text-soft); }
.reservation-six-facts dd { margin:4px 0 0; font-size:13px; font-weight:600; overflow-wrap:normal; }
#reservationJourneyTitle { font-size:17px; line-height:1.4; overflow-wrap:normal; }
#reservationJourneyContext { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:6px; font-size:12px; }
.reservation-guest-quote { margin:12px 0; padding:4px 12px; border-left:2px solid var(--line); font-size:13px; overflow-wrap:normal; }
.reservation-guest-quote summary { cursor:pointer; }
.reservation-guest-quote blockquote { margin:12px 0; }
.reservation-overlap { margin:12px 0; font-size:12px; }
.reservation-overlap > summary { padding:8px 10px; border-radius:12px; background:var(--primary-faint); color:var(--primary-dark); cursor:pointer; overflow-wrap:normal; }
.reservation-overlap .request-comparison { margin-top:10px; }
.reservation-dossier-tabs { display:flex; max-width:100%; overflow-x:auto; border-bottom:1px solid var(--line); }
.reservation-dossier-panel { min-width:0; padding-top:12px; font-size:12px; overflow-wrap:normal; }
.reservation-dossier-panel .kv-grid { margin:0 0 12px; }
.reservation-dossier-panel .reservation-journey-summary { margin-bottom:12px; }
.reservation-dossier-panel .reservation-journey-status small { display:none; }
.reservation-dossier-panel .detail-section { padding:12px 0; border:0; box-shadow:none; }
.reservation-dossier-panel :is(p,small,dd) { color:var(--text-soft); }
.request-decision-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:16px; }
.request-decision-actions p { flex-basis:100%; font-size:12px; }
.today-automatic-group > summary { cursor:pointer; list-style:none; }
.today-automatic-group > summary::-webkit-details-marker { display:none; }
@media (max-width:1200px) {
  .reservation-toolbar { flex-wrap:wrap; }
  .reservation-state-tabs { flex-basis:100%; }
  .reservation-toolbar-actions { flex:1; flex-wrap:wrap; }
}
@media (max-width:760px) {
  .reservation-workspace { display:block; }
  .reservation-toolbar-actions { gap:4px; }
  .reservation-toolbar-actions > [data-new-reservation] { margin-left:auto; }
  .reservation-six-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #reservationsView:has(.reservation-workspace.has-detail) .reservation-toolbar { display:none; }
  #reservationsView:has(.reservation-workspace.has-detail) > .dashboard-grid > .panel > .panel-body { padding:0; }
  .reservation-compact-row > button { gap:4px 6px; }
}

/* T33d — one conversation surface, with independent list and thread scroll. */
body[data-current-view="inbox"]:has(.messages-workspace) { height:100dvh; overflow:hidden; }
body[data-current-view="inbox"]:has(.messages-workspace) .app-shell { height:100dvh; min-height:0; }
body[data-current-view="inbox"]:has(.messages-workspace) .main-area { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
#inboxView:has(.messages-workspace) { flex:1; min-height:0; }
#inboxView:has(.messages-workspace) .su-shell { display:flex; flex-direction:column; height:100%; min-height:0; gap:8px; }
#inboxView:has(.messages-workspace) .su-panel { flex:1; min-height:0; display:flex; flex-direction:column; }
.messages-workspace { flex:1; min-width:0; min-height:0; grid-template-columns:minmax(220px,.85fr) minmax(0,1.7fr); gap:0; align-items:stretch; overflow:hidden; border:1px solid var(--line); border-radius:var(--card-radius); background:var(--surface); box-shadow:var(--shadow-soft); }
.messages-conversations, .messages-exchange { display:flex; flex-direction:column; min-width:0; min-height:0; overflow:hidden; }
.messages-conversations { border-right:1px solid var(--line); }
.message-filters { display:flex; flex:none; border-bottom:1px solid var(--line); padding:4px 8px; }
.message-filters button { min-height:44px; padding:8px; border:0; border-bottom:2px solid transparent; background:none; color:var(--text-soft); font:inherit; font-size:12px; cursor:pointer; }
.message-filters [aria-pressed="true"] { color:var(--primary-dark); border-bottom-color:var(--primary); }
.messages-conversations .su-thread-list { flex:1; min-height:0; max-height:none; display:block; overflow:auto; overscroll-behavior:contain; }
.messages-conversations .su-thread { width:100%; align-items:center; gap:8px; margin:0; padding:10px; border:0; border-bottom:1px solid var(--line); border-radius:0; box-shadow:none; background:transparent; text-align:left; }
.messages-conversations .su-thread.is-selected { background:var(--primary-faint); }
@media (hover: hover) and (pointer: fine) {
.messages-conversations .su-thread:hover { background:var(--surface-muted); }
}
.messages-conversations .su-thread strong { font-size:12px; }
.messages-conversations .su-thread p { margin:2px 0 0; font-size:11px; }
.messages-conversations .su-thread time { flex:none; color:var(--text-soft); white-space:nowrap; }
.message-avatar { display:grid; place-items:center; flex:none; width:32px; height:32px; border-radius:50%; background:var(--surface-muted); color:var(--primary-dark); font-size:11px; font-weight:700; }
.messages-conversations .message-reply-dot { flex:none; margin:0; }
.messages-exchange .message-stay-summary { flex:none; max-height:40%; overflow:auto; padding:12px 16px; }
.message-platform { color:var(--primary-dark); background:var(--primary-faint); border-radius:var(--radius-sm); padding:2px 6px; font-size:11px; }
.messages-exchange .su-message-list { display:flex; flex-direction:column; flex:1; min-height:0; max-height:none; gap:12px; padding:16px 20px; overflow:auto; overscroll-behavior:contain; border:0; border-radius:0; background:transparent; }
.message-day { align-self:center; font-size:11px; color:var(--text-soft); }
.message-entry { display:grid; grid-template-columns:minmax(0,1fr); gap:6px; min-width:0; }
.messages-exchange .su-message { position:relative; justify-self:start; width:fit-content; max-width:82%; min-width:0; border:0; border-radius:14px 14px 14px 3px; padding:8px 12px; background:var(--surface-muted); overflow-wrap:normal; }
.messages-exchange .su-message.is-outbound { justify-self:end; background:var(--primary-soft); border-radius:14px 14px 3px 14px; }
.messages-exchange .su-message::before { content:''; position:absolute; bottom:0; left:-5px; width:10px; height:10px; background:var(--surface-muted); clip-path:polygon(100% 0,100% 100%,0 100%); }
.messages-exchange .su-message.is-outbound::before { left:auto; right:-5px; background:var(--primary-soft); transform:scaleX(-1); }
.messages-exchange .su-message p { margin:0; white-space:pre-wrap; }
.messages-exchange .su-message time { display:block; margin-top:3px; color:var(--text-soft); font-size:11px; text-align:right; }
.message-translation-label, .message-translation-unavailable { display:block; margin-top:6px; color:var(--text-soft); font-size:11px; }
.message-original { margin-top:5px; font-size:11px; }
.message-original summary { color:var(--primary-dark); cursor:pointer; }
.message-original p { margin-top:6px!important; color:var(--text-soft); }
.message-assistance:empty { display:none; }
.message-entry:has(.message-reply-reason) { grid-template-columns:minmax(0,auto) 28px; justify-content:start; }
.message-entry:has(.message-reply-reason) .su-message { max-width:100%; }
.message-entry:has(.message-reply-reason) { max-width:86%; }
.message-proposal { width:fit-content; max-width:82%; margin-left:auto; padding:10px 12px; border:1px dashed var(--line-strong); border-radius:12px; font-size:12px; overflow-wrap:normal; }
.message-proposal small { font-size:11px; color:var(--text-soft); }
.message-proposal p { margin:4px 0; white-space:pre-wrap; }
.message-proposal > div { display:flex; justify-content:flex-end; gap:8px; }
.message-proposal .button { min-height:36px; padding:6px 10px; font-size:11px; }
.message-reply-reason { position:relative; align-self:end; font-size:11px; color:var(--text-soft); }
.message-reply-reason > summary { display:grid; place-items:center; width:28px; height:36px; cursor:pointer; list-style:none; }
.message-reply-reason svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.message-entry:has(.message-reply-reason[open]) .message-assistance { grid-column:1 / -1; }
.message-reply-reason p { width:min(240px,100%); padding:8px; margin:0; border:1px solid var(--line); border-radius:8px; background:var(--surface); box-shadow:var(--shadow-soft); overflow-wrap:normal; }
.message-automatic-marker { flex:none; align-self:center; max-width:100%; padding:4px; border:0; text-align:center; font-size:11px; }
.message-automatic-marker summary { list-style:none; cursor:pointer; color:var(--text-soft); }
.message-automatic-marker summary::-webkit-details-marker, .message-reply-reason summary::-webkit-details-marker, .message-menu summary::-webkit-details-marker { display:none; }
.message-automatic-marker p { padding:8px; margin:4px 0; white-space:pre-wrap; overflow-wrap:normal; }
.messages-exchange .su-compose { flex:none; display:block; margin:0; padding:10px 12px; border-top:1px solid var(--line); }
.messages-exchange .su-compose textarea { display:block; width:100%; min-height:38px; max-height:160px; resize:none; padding:8px 10px; font-size:13px; overflow-y:auto; }
.message-translation-preview { margin:8px 0; padding:10px 12px; border:1px solid var(--line); border-radius:var(--control-radius); background:var(--surface-muted); }
.message-translation-preview.is-invalid { border-color:var(--danger); }
.message-translation-preview small { color:var(--text-soft); font-weight:700; }
.message-translation-preview p { margin:5px 0 0; white-space:pre-wrap; }
.message-translation-preview .message-translation-ok { color:var(--green); font-size:11px; }
.message-translation-preview .message-translation-error { color:var(--danger); font-size:11px; }
.message-compose-actions { display:flex; align-items:center; gap:8px; margin-top:6px; }
.message-connection { margin-left:auto; font-size:11px; color:var(--text-soft); }
.message-menu { position:relative; flex:none; }
.message-menu > summary { display:flex; align-items:center; justify-content:center; min-width:36px; min-height:40px; padding:4px; font-size:12px; cursor:pointer; list-style:none; }
.message-menu-content { position:absolute; z-index:4; left:0; bottom:100%; display:grid; width:min(260px,60vw); max-height:35dvh; overflow:auto; padding:6px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--shadow-soft); }
.message-menu-content :is(button,p) { width:100%; padding:10px; margin:0; white-space:normal; text-align:left; font:inherit; font-size:12px; overflow-wrap:normal; }
.message-menu-content button { min-height:40px; border:0; background:transparent; color:var(--text); cursor:pointer; }
@media (hover: hover) and (pointer: fine) {
.message-menu-content button:hover { background:var(--primary-faint); }
}
.message-empty { padding:16px; font-size:12px; color:var(--text-soft); }
#reservationJourneyModal.is-inline-dossier #closeReservationJourneyModal { display:none; }
@media(max-width:900px), (display-mode:standalone) {
  body[data-current-view="inbox"]:has(.messages-workspace) { display:flex; flex-direction:column; padding-bottom:0; }
  body[data-current-view="inbox"]:has(.messages-workspace) .mobile-header { flex:none; }
  body[data-current-view="inbox"]:has(.messages-workspace) .app-shell { flex:1; height:auto; }
  body[data-current-view="inbox"]:has(.messages-workspace) .main-area { height:100%; padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
}
@media(max-width:600px) {
  .messages-workspace { grid-template-columns:minmax(0,1fr); }
  .messages-conversations { border-right:0; }
  .messages-back { flex:none; align-self:start; margin:4px 8px; }
  .messages-exchange .su-message-list { padding:12px; }
  .messages-exchange .message-stay-summary { padding:8px 12px; }
  body[data-current-view="inbox"]:has(.messages-workspace.has-detail) .topbar { display:none; }

}

@media(max-width:760px) {
  #reservationJourneyModal.is-inline-dossier #closeReservationJourneyModal { display:inline-flex; }
}

/* T33e — property pages and dense catalogue. */
body[data-current-view="propertySheet"] .topbar { display:none; }
.property-page { min-width:0; }
.property-breadcrumb { display:flex; align-items:center; gap:8px; margin-bottom:12px; min-width:0; font-size:12px; }
.property-breadcrumb > span:last-child { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.property-page-header { display:flex; align-items:start; justify-content:space-between; gap:16px; margin:0 0 20px; }
.property-page-header > div { min-width:0; }
.property-page-header h2 { margin:0; font-size:22px; }
.property-page-header p { margin:5px 0 0; font-size:12px; color:var(--text-soft); }
.property-state { display:inline-flex; align-items:center; flex:none; width:fit-content; padding:3px 8px; border-radius:var(--radius-sm); font-size:11px; font-weight:500; color:var(--text-soft); background:var(--surface-muted); }
#propertyWizardModal.property-page { padding:0; }
.property-page .property-sheet-layout { padding:0; }
.property-page.is-property-sheet .property-sheet-layout { grid-template-columns:150px minmax(0,1fr) 190px; gap:20px; }
.property-page #propertySheetNav, .property-page #propertyWizardMissing { top:16px; }
.property-page #propertyWizardSave { position:static; padding:0; font-size:11px; }
.property-page #propertyWizardSave[hidden] { display:none; }
.property-fields { align-items:start; min-width:0; }
.property-fields > *, .property-fields label { min-width:0; }
.property-fields .property-control, .property-fields input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), .property-fields select { box-sizing:border-box; width:100%; height:44px; min-height:44px; max-height:44px; margin:0; padding:10px 12px; line-height:22px; font:inherit; font-size:13px; }
.property-fields label { display:flex; flex-direction:column; gap:6px; font-size:12px; }
.property-fields .collection-choice { flex-direction:row; align-items:center; }
.property-fields textarea { width:100%; box-sizing:border-box; }
.property-page .publication-platform { border:0; border-bottom:1px solid var(--line); padding:8px 0; font-size:12px; }
.property-page .publication-platform summary { cursor:pointer; }
.property-page .publication-platform button { display:block; width:100%; padding:6px 0; font-size:11px; }
.property-page #propertyWizardMissing h3 { font-size:13px; margin-top:0; }
.property-creation-actions { display:flex; justify-content:flex-end; gap:10px; margin-top:20px; }
.property-page.is-property-sheet .property-creation-actions { display:none; }
.property-page:not(.is-property-sheet) .property-sheet-layout { max-width:650px; margin-inline:auto; }
.property-page:not(.is-property-sheet) #propertyWizardProgress { max-width:650px; margin:0 auto 18px; }
.listing-location { position:relative; }
.listing-location [data-address-suggestions] { list-style:none; margin:4px 0; padding:4px; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
[data-address-suggestions] button { width:100%; text-align:left; border:0; background:none; padding:10px; font:inherit; font-size:12px; cursor:pointer; }[data-address-suggestions] button:focus-visible { background:var(--primary-faint); }
@media (hover: hover) and (pointer: fine) {
[data-address-suggestions] button:hover { background:var(--primary-faint); }
}
.address-manual { margin-top:12px; font-size:11px; color:var(--text-soft); }
.address-manual > div { margin-top:10px; }
.property-amenity-options { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:8px; }
.property-photo-card { position:relative; }
.property-photo-card.is-dragging { opacity:.5; }
.property-photo-card-heading { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:8px; align-items:center; }
.property-photo-card-heading p { min-width:0; margin:0; overflow-wrap:break-word; }
.property-photo-drag,.property-photo-menu>summary { display:grid; place-items:center; width:36px; height:36px; padding:0; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface); color:var(--text); cursor:grab; font:inherit; list-style:none; }
.property-photo-menu { position:relative; }
.property-photo-menu>summary::-webkit-details-marker,.property-photo-delete>summary::-webkit-details-marker { display:none; }
.property-photo-menu>div { position:absolute; z-index:5; top:42px; right:0; display:grid; gap:6px; min-width:190px; padding:8px; border:1px solid var(--line); border-radius:var(--radius-popover); background:var(--glass-dense); box-shadow:var(--shadow-overlay); }
.property-photo-menu button,.property-photo-delete>summary { width:100%; min-height:38px; padding:8px 10px; border:0; border-radius:var(--radius-row); background:transparent; color:var(--text); text-align:left; cursor:pointer; font:inherit; font-size:12px; }.property-photo-menu button:focus-visible { background:var(--hover); }
@media (hover: hover) and (pointer: fine) {
.property-photo-menu button:hover, .property-photo-delete>summary:hover { background:var(--hover); }
}
.property-photo-delete p { margin:6px 10px; color:var(--text-soft); font-size:12px; }
.property-photo-delete [data-photo-action="delete"] { color:var(--red); }
.property-access-route { display:grid; gap:12px; padding:14px; border:1px solid var(--line); border-radius:var(--radius-control); background:var(--surface-muted); }
.property-access-map { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.property-access-map h3 { margin:0; font-size:14px; }
.property-access-route>details>summary { cursor:pointer; font-size:13px; }
.property-access-step { display:grid; grid-template-columns:minmax(0,1fr) minmax(150px,.6fr) auto; gap:10px; align-items:end; padding:12px 0; border-bottom:1px solid var(--line); }
.property-access-step img { width:72px; height:54px; border-radius:var(--radius-row); object-fit:cover; }
@media(max-width:700px){.property-access-map,.property-access-step{grid-template-columns:minmax(0,1fr);align-items:stretch}.property-access-map{display:grid}}
.property-fields .amenity-chip { position:relative; display:flex; flex-direction:row; align-items:center; gap:8px; min-height:40px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; cursor:pointer; font-size:12px; background:var(--surface); }
.amenity-chip:has(input:checked) { border-color:var(--primary); color:var(--primary-dark); background:var(--primary-faint); box-shadow:inset 0 0 0 1px var(--primary); }
.amenity-chip:has(input:checked)::after { content:"✓"; display:grid; place-items:center; flex:none; width:18px; height:18px; margin-left:auto; border-radius:50%; background:var(--primary); color:var(--on-primary); font-size:12px; font-weight:700; }
.amenity-chip:has(input:focus-visible) { outline:2px solid var(--primary); outline-offset:2px; }
.amenity-chip input { position:absolute; opacity:0; width:1px; height:1px; }
.amenity-icon { display:flex; flex:none; }
.amenity-chip[hidden] { display:none; }
.property-amenity-category { margin-bottom:12px; }
.property-amenity-category summary { padding:10px 0; font-size:13px; cursor:pointer; }
[data-amenity-count] { font-size:11px; color:var(--text-soft); }
.inline-owner > form { margin-top:14px; }
.property-cleaning-exception { display:grid; grid-template-columns:minmax(90px,1fr) minmax(130px,1.4fr) minmax(80px,.8fr) 36px; gap:8px; align-items:end; margin:12px 0; }
.property-cleaning-exception label { min-width:0; font-size:11px; }
.property-platform-line { padding:14px 0; border-bottom:1px solid var(--line); }
.property-platform-line header { display:flex; justify-content:space-between; align-items:center; gap:8px; }
.property-platform-line p, .property-platform-line small { font-size:11px; }
.property-platform-line details button { display:block; text-align:left; }
.property-platform-line .panel-actions { flex-wrap:wrap; }
.property-platform-panel .su-form-grid { min-width:0; }
.property-platform-panel .su-form-grid label { min-width:0; }
.property-platform-panel > small { display:block; margin:10px 0; }
.su-property-catalog-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.su-property-catalog-heading h3 { margin:0; font-size:16px; }
.property-view-cards .su-property-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(230px,100%),1fr)); gap:18px; }
.property-view-cards button.su-property-row { display:flex; flex-direction:column; padding:0; gap:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); overflow:hidden; cursor:pointer; text-align:left; font:inherit; }
.property-view-cards .su-property-row-visual { display:block; width:100%; height:155px; }
.property-view-cards .property-cover, .property-view-cards .property-cover img { width:100%; height:155px; border-radius:0; object-fit:cover; }
.property-cover.is-empty { display:grid; place-items:center; background:var(--surface-muted); color:var(--text-soft); }
.property-view-cards .su-property-row-copy { display:flex; flex-direction:column; gap:6px; width:100%; padding:14px; box-sizing:border-box; }
.property-view-cards .su-property-row-copy strong { font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.property-view-cards .su-property-row-copy small { font-size:12px; }
.su-property-row:focus-visible { outline:3px solid var(--primary); outline-offset:3px; }
.property-table-scroll { max-width:100%; min-width:0; overflow-x:clip; }
.property-dense-table { border-collapse:collapse; width:100%; table-layout:fixed; min-width:0; font-size:12px; }
.property-dense-table th, .property-dense-table td { padding:7px; text-align:left; border-bottom:1px solid var(--line); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.property-dense-table th:first-child { width:80px; }
.property-dense-table th:nth-child(4) { width:65px; }
.property-dense-table td button, .property-dense-table th button { display:block; max-width:100%; padding:0; border:0; background:none; color:inherit; text-align:left; font:inherit; cursor:pointer; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; min-height:30px; }
.property-dense-table .property-cover, .property-dense-table img { display:block; width:64px; height:48px; object-fit:cover; border-radius:8px; }
.property-platform-icon { display:inline-flex; align-items:center; gap:1px; margin-right:4px; color:var(--text-soft); }
.property-platform-icon.is-published { color:var(--primary-dark); }
.property-platform-icon sup { font-size:11px; }
/* Neutral incoming messages; only the host uses the pink token. */
.messages-exchange .su-message:not(.is-outbound), .messages-exchange .su-message:not(.is-outbound)::before { background:var(--surface-neutral); }
.message-stay-summary > summary { list-style:none; position:relative; padding-right:20px; }
.message-stay-summary > summary::-webkit-details-marker { display:none; }
.message-stay-summary > summary::marker { content:''; }
.message-stay-summary > summary::before { content:none; }
.message-stay-summary[open] > summary::before { content:none; }
body[data-current-view="inbox"]:has(.messages-workspace) .main-area { box-sizing:border-box; height:100dvh; padding-bottom:16px; }
#inboxView.is-active:has(.messages-workspace) { display:flex; flex-direction:column; }
#inboxView:has(.messages-workspace) > .su-shell { flex:1; height:auto; }
@media (max-width:1050px) {
  .property-page.is-property-sheet .property-sheet-layout { grid-template-columns:115px minmax(0,1fr) 155px; gap:12px; }
  .property-cleaning-exception { grid-template-columns:1fr 1fr; }
}
@media (max-width:700px) {
  .property-page.is-property-sheet .property-sheet-layout { grid-template-columns:minmax(0,1fr); }
  .property-page #propertySheetNav { position:static; display:flex; flex-wrap:wrap; gap:2px; }
  .property-page #propertySheetNav button { padding:8px; font-size:11px; }
  .property-page #propertyWizardMissing { position:static; }
  .property-page-header h2 { font-size:19px; }
  .property-page .form-grid { grid-template-columns:minmax(0,1fr); }
  .property-page-header { gap:8px; }
  .property-amenity-options { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .property-platform-panel .su-form-grid { grid-template-columns:minmax(0,1fr); }
  body[data-current-view="inbox"]:has(.messages-workspace) .main-area { height:100%; padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
}
.property-page-header h2, .property-page-header p { max-width:100%; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.amenity-chip > span:last-child { min-width:0; overflow:hidden; text-overflow:ellipsis; }

/* T33f — only the property window scrolls; the list stays in place underneath. */
dialog#propertyWizardModal.property-page {
  box-sizing:border-box; width:min(1320px,calc(100% - 48px)); max-width:none;
  max-height:calc(100dvh - 48px); margin:auto; padding:24px;
  border:1px solid var(--line); border-radius:18px; color:var(--text); background:var(--surface);
  overflow:auto; overscroll-behavior:contain;
}
#propertyWizardModal:not([open]) { display:none; }
#propertyWizardModal .property-page-header { position:sticky; top:-24px; z-index:3; background:var(--surface); padding:12px 0; align-items:center; }
#propertyWizardModal .property-page-header > div { flex:1; }
#propertyWizardModal #propertySheetNav, #propertyWizardModal #propertyWizardMissing { top:128px; }
#propertyWizardModal .property-state { flex-shrink:0; }
#propertyWizardModal #propertyWizardClose { flex-shrink:0; }
#propertyWizardModal .property-fields { grid-template-columns:repeat(3,minmax(0,1fr)); }
#propertyWizardModal .full-width { grid-column:1 / -1; }
#propertyWizardModal .address-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:12px; }
#propertyWizardModal .address-manual { margin-top:12px; }
@media(max-width:1050px) {
  #propertyWizardModal .property-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:700px) {
  dialog#propertyWizardModal.property-page { width:100%; height:100dvh; max-height:100dvh; margin:0; padding:16px; border:0; border-radius:0; }
  #propertyWizardModal .property-page-header { top:-16px; flex-wrap:wrap; }
  #propertyWizardModal .property-page-header > div { flex-basis:calc(100% - 90px); }
  #propertyWizardModal .property-state { order:3; }
  #propertyWizardModal #propertySheetNav, #propertyWizardModal #propertyWizardMissing { position:static; }
  #propertyWizardModal .property-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* T34 — seasonal rules and the persistent calendar side panel. */
.calendar-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,350px); min-width:0; align-items:start; }
.calendar-workspace.is-collapsed { grid-template-columns:minmax(0,1fr); }
.calendar-grid-area { min-width:0; overflow:hidden; }
.calendar-side-panel { min-width:0; width:100%; height:calc(100dvh - 170px); max-height:calc(100dvh - 170px); min-height:320px; overflow:auto; overscroll-behavior:contain; padding:16px; border-left:1px solid var(--line); background:var(--surface); display:grid; align-content:start; gap:14px; font-size:12px; color:var(--text); transform: none; opacity: 1; transition: transform var(--dur-sheet) var(--ease-drawer), opacity 200ms ease; }
.calendar-side-panel.is-closing { pointer-events:none; transform:translateX(24px); opacity:0; transition-duration:200ms; }
@starting-style { .calendar-side-panel { transform:translateX(24px); opacity:0; } }
.calendar-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.calendar-panel-heading h2 { margin:0; font-size:16px; }
.calendar-side-panel form { display:grid; gap:14px; min-width:0; }
.calendar-side-panel :is(fieldset,details) { min-width:0; margin:0; }
.calendar-side-panel fieldset { border:0; padding:0; display:grid; gap:10px; }
.calendar-side-panel legend { font-weight:700; padding:0 0 8px; }
.calendar-side-panel label { display:grid; gap:5px; min-width:0; }
.calendar-side-panel label:has(input[type="checkbox"]) { display:flex; align-items:center; }
.calendar-side-panel :is(input,select,textarea) { min-width:0; max-width:100%; width:100%; min-height:40px; font:inherit; }
.calendar-side-panel :is(input[type="checkbox"],input[type="radio"]) { width:18px; min-height:18px; flex:0 0 auto; }
.calendar-side-panel summary { cursor:pointer; padding:7px 0; }
.calendar-side-panel small { display:block; color:var(--text-muted); line-height:1.5; }
.calendar-side-panel p { margin:4px 0; }
.calendar-field-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.calendar-discount-tier { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px; gap:6px; align-items:end; margin:8px 0; }
.calendar-days { display:flex; gap:8px; flex-wrap:wrap; }
.calendar-side-panel .calendar-days label { flex-direction:column; }
.calendar-color-options { display:flex; flex-wrap:wrap; gap:8px; padding:4px 0; }
.color-swatch { display:inline-flex; align-items:center; justify-content:center; border-radius:var(--radius-sm); width:30px; height:30px; min-height:30px; border:1px solid var(--text-muted); padding:4px; }
.color-swatch[aria-pressed="true"], .color-swatch:has(input:checked) { outline:2px solid var(--text); outline-offset:2px; }
.calendar-panel-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; position:sticky; bottom:-16px; background:var(--surface); padding:12px 0; }
.calendar-rule-card { display:flex; gap:10px; padding:12px 0; border-bottom:1px solid var(--line); min-width:0; }
.calendar-rule-card > div { min-width:0; }
.calendar-rule-card strong { display:block; overflow:hidden; text-overflow:ellipsis; }
.rule-dot { width:16px; height:16px; flex:0 0 16px; border-radius:50%; border:1px solid var(--text-muted); }
.calendar-rule-actions { display:flex; align-items:center; gap:14px; margin-top:6px; }
.calendar-rule-actions details button { display:block; }
.calendar-target-list { max-height:180px; overflow:auto; display:grid; gap:8px; }
.calendar-platform-compatibility { border-top:1px solid var(--line); padding-top:6px; }
.calendar-platform-compatibility p { margin:8px 0; }
.calendar-panel-error { color:var(--red); }
.platform-badge { display:inline-grid; vertical-align:middle; place-items:center; flex:none; width:20px; min-width:20px; height:20px; min-height:20px; aspect-ratio:1; box-sizing:border-box; overflow:hidden; border-radius:var(--radius-sm); background:var(--surface); color:var(--text); font-size:11px; font-weight:700; line-height:1; margin-right:5px; }
.platform-badge img { width:16px; height:16px; object-fit:contain; }
.platform-badge.booking { display:inline-grid; place-items:center; background:var(--platform-booking); color:var(--on-primary); text-align:center; }
.platform-badge.booking > span { display:block; width:max-content; height:12px; font-size:0; font-weight:700; line-height:12px; transform:none; }
.platform-badge.booking > span::before { content:'B.'; color:var(--on-primary); font-size:11px; line-height:12px; }
.platform-badge.booking small { display:none; }
.platform-badge.abritel { background:var(--calendar-badge-blue); color:var(--calendar-badge-blue-ink); }
.platform-badge.direct { background:var(--calendar-badge-green); color:var(--calendar-badge-green-ink); }
.stay-bar > span { display:flex; align-items:center; gap:3px; }
.stay-bar > span > strong { overflow:hidden; text-overflow:ellipsis; }
.reservation-compact-row .platform-badge { grid-column:1; grid-row:1 / 3; align-self:center; justify-self:center; margin-right:0; }
.today-compact .today-arrival { grid-template-columns:60px 20px minmax(0,1fr) minmax(0,1fr) auto; }
.reservation-color-picker { font-size:12px; margin:10px 0; }
.reservation-color-picker summary { cursor:pointer; }
.reservation-color-picker button:not(.color-swatch) { border:1px solid var(--line); background:var(--surface); color:var(--text); border-radius:8px; }
.reservation-color-picker + .reservation-dossier-tabs { margin-top:0; }
.rule-tint-rose { background-color:var(--calendar-rose); color:var(--calendar-ink); }
.reservation-color-rose:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-rose); --stay-color:var(--calendar-ink); background:var(--calendar-rose); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-peach { background-color:var(--calendar-peach); color:var(--calendar-ink); }
.reservation-color-peach:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-peach); --stay-color:var(--calendar-ink); background:var(--calendar-peach); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-sand { background-color:var(--calendar-sand); color:var(--calendar-ink); }
.reservation-color-sand:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-sand); --stay-color:var(--calendar-ink); background:var(--calendar-sand); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-sage { background-color:var(--calendar-sage); color:var(--calendar-ink); }
.reservation-color-sage:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-sage); --stay-color:var(--calendar-ink); background:var(--calendar-sage); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-teal { background-color:var(--calendar-teal); color:var(--calendar-ink); }
.reservation-color-teal:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-teal); --stay-color:var(--calendar-ink); background:var(--calendar-teal); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-sky { background-color:var(--calendar-sky); color:var(--calendar-ink); }
.reservation-color-sky:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-sky); --stay-color:var(--calendar-ink); background:var(--calendar-sky); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-lavender { background-color:var(--calendar-lavender); color:var(--calendar-ink); }
.reservation-color-lavender:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-lavender); --stay-color:var(--calendar-ink); background:var(--calendar-lavender); color:var(--calendar-ink); border-color:var(--calendar-border); }
.rule-tint-slate { background-color:var(--calendar-slate); color:var(--calendar-ink); }
.reservation-color-slate:is(.stay-bar,.month-stay) { --stay-bg:var(--calendar-slate); --stay-color:var(--calendar-ink); background:var(--calendar-slate); color:var(--calendar-ink); border-color:var(--calendar-border); }

.stay-night-price.is-selected { outline:2px solid var(--primary); outline-offset:-2px; background:var(--primary-soft); }
.property-month-day.is-selected { box-shadow:inset 0 0 0 2px var(--primary); }
@media (max-width:1000px) { .calendar-workspace { grid-template-columns:minmax(0,1fr) 300px; } .calendar-toolbar { flex-wrap:wrap; } }
@media (max-width:760px) {
 .calendar-workspace { display:block; }
 .calendar-side-panel { position:fixed; z-index:45; top:0; right:0; bottom:var(--mobile-bottom-offset,70px); width:min(92vw,360px); height:auto; max-height:none; min-height:0; border-left:1px solid var(--line); box-shadow:var(--shadow); }
 .today-compact .today-arrival { grid-template-columns:42px 20px minmax(0,1fr) minmax(0,.8fr) auto; gap:5px; }
}
.stay-timeline .stay-night-price.rule-tint-rose, .property-month-day.rule-tint-rose { background-color:var(--calendar-rose); }
.stay-timeline .stay-night-price.rule-tint-peach, .property-month-day.rule-tint-peach { background-color:var(--calendar-peach); }
.stay-timeline .stay-night-price.rule-tint-sand, .property-month-day.rule-tint-sand { background-color:var(--calendar-sand); }
.stay-timeline .stay-night-price.rule-tint-sage, .property-month-day.rule-tint-sage { background-color:var(--calendar-sage); }
.stay-timeline .stay-night-price.rule-tint-teal, .property-month-day.rule-tint-teal { background-color:var(--calendar-teal); }
.stay-timeline .stay-night-price.rule-tint-sky, .property-month-day.rule-tint-sky { background-color:var(--calendar-sky); }
.stay-timeline .stay-night-price.rule-tint-lavender, .property-month-day.rule-tint-lavender { background-color:var(--calendar-lavender); }
.stay-timeline .stay-night-price.rule-tint-slate, .property-month-day.rule-tint-slate { background-color:var(--calendar-slate); }
.calendar-grid-area .stay-timeline-scroll { max-height:calc(100dvh - 210px); }
.calendar-grid-area .property-month { max-height:calc(100dvh - 210px); overflow:auto; }
@media (max-width:900px), (display-mode:standalone) {
 .calendar-grid-area .month-stays { display:grid; }
 .calendar-grid-area .month-stay { overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
 .calendar-grid-area .month-stay .platform-badge { width:16px; height:16px; margin-right:2px; }
}

/* T34b — duration tiers and calculated preview, same controls at both widths. */
.calendar-discount-tier { grid-template-columns:64px minmax(0,1fr) 70px 28px; gap:6px; }
.calendar-discount-tier button { min-height:40px; padding:0; }
.calendar-discount-tier .calendar-tier-warning { grid-column:1 / -1; }
.calendar-discount-tier.is-ignored { background:var(--surface-muted); color:var(--text-muted); }
.calendar-discount-tier.is-ignored :is(input,select) { color:var(--text-muted); }
.calendar-side-panel :is(strong,small,summary,p,label,th,td) { min-width:0; white-space:normal; }
.calendar-price-preview { width:100%; table-layout:fixed; border-collapse:collapse; margin:8px 0; font-size:12px; }
.calendar-price-preview th, .calendar-price-preview td { text-align:left; padding:8px 4px; border-bottom:1px solid var(--line); white-space:normal; }
.calendar-price-preview th:first-child { width:24%; }
.calendar-preview-title { margin-top:14px !important; }
.calendar-preview-warning { padding:8px; background:var(--surface-muted); border-left:2px solid var(--text-muted); }
.calendar-preview-context { margin-top:10px !important; }
@media (max-width:400px) {
 .calendar-discount-tier { grid-template-columns:55px minmax(0,1fr) 60px 26px; gap:4px; }
 .calendar-side-panel :is(input,select) { padding-left:6px; padding-right:6px; }
}

/* T34b — corrections from the eight actual review captures. */
body[data-current-view="calendar"] .main-area { display:grid; grid-template-columns:auto minmax(0,1fr); align-content:start; gap:10px 18px; padding:12px 10px; }
body[data-current-view="calendar"] .main-area > * { grid-column:1 / -1; width:100%; }
body[data-current-view="calendar"] .topbar { grid-column:1; min-height:44px; padding:0; margin:0; }
body[data-current-view="calendar"] .topbar h1 { font-size:21px; }
body[data-current-view="calendar"] .page-subnav { grid-column:2; justify-self:start; width:auto; min-height:44px; padding:2px; margin:0; }
body[data-current-view="calendar"] .calendar-planning-body { padding:8px; }
.calendar-workspace { grid-template-columns:minmax(0,1fr) 340px; }
.stay-timeline { --night-width:48px; --name-width:160px; }
.calendar-grid-area :is(.stay-timeline-scroll,.property-month) { max-height:calc(100dvh - 150px); }
.stay-timeline-header > div { padding:7px 2px; }
.stay-timeline-header > strong { padding:12px 8px; }
.stay-night-price { font-size:11px; font-variant-numeric:tabular-nums; }
/* The day marker belongs in the header; seasonal cells retain their own colour. */
.stay-timeline-header .is-today { box-shadow:inset 0 -3px var(--primary); }
.stay-night-price.is-today { box-shadow:inset 0 2px var(--primary); }
.stay-night-price.is-selected { box-shadow:inset 0 0 0 2px var(--primary); }
.stay-bar { container-type:inline-size; padding:2px 3px; }
.stay-bar > .stay-bar-label { display:grid; grid-template-columns:16px minmax(0,1fr) auto; gap:3px; align-items:center; line-height:12px; overflow:hidden; }
.stay-bar .platform-badge { width:16px; height:16px; margin:0; font-size:11px; }
.stay-bar .platform-badge, .calendar-grid-area .month-stay .platform-badge { min-width:16px; min-height:16px; flex:none; }
.stay-bar .platform-badge img { width:14px; height:14px; }
.stay-bar .calendar-stay-count { white-space:nowrap; font-size:11px; }
.stay-bar-label > strong { min-width:0; white-space:nowrap; }
@container (max-width:125px) {
 .stay-bar > .stay-bar-label { grid-template-columns:16px minmax(0,1fr); gap:1px 3px; }
 .stay-bar-label > strong { grid-column:1 / -1; grid-row:1; font-size:11px; }
 .stay-bar-label > .platform-badge { grid-column:1; grid-row:2; }
 .stay-bar-label > .calendar-stay-count { grid-column:2; grid-row:2; }
}
@container (max-width:65px) {
 .stay-bar-label > .calendar-stay-count { display:none; }
}
.calendar-side-panel { display:flex; flex-direction:column; gap:10px; height:calc(100dvh - 150px); max-height:calc(100dvh - 150px); min-height:0; overflow:hidden; padding:12px; }
.calendar-panel-heading { flex:0 0 auto; min-height:40px; }
.calendar-panel-heading .calendar-icon-button { flex:0 0 40px; width:40px; height:40px; }
.calendar-panel-content { flex:1 1 auto; min-height:0; overflow:auto; overscroll-behavior:contain; padding:2px; }
.calendar-panel-content form { gap:12px; }
.calendar-side-panel label { font-size:12px; }
.calendar-side-panel :is(input,select,textarea) { padding:8px; font-size:13px; }
.calendar-side-panel summary { font-size:12px; }
.calendar-side-panel .calendar-panel-actions { flex:0 0 auto; position:static; display:flex; flex-wrap:nowrap; gap:8px; margin:0; padding:10px 0 0; border-top:1px solid var(--line); }
.calendar-side-panel .calendar-panel-actions .button { width:auto; flex:1 1 0; min-width:0; min-inline-size:0; padding:8px; font-size:12px; white-space:nowrap; }
.calendar-panel-error:empty { display:none; }
.calendar-panel-error { flex:0 0 auto; max-height:60px; overflow:auto; }
.calendar-panel-content .calendar-local-status { margin-top:12px; }
.calendar-color-options { gap:7px; }
.calendar-side-panel label.color-swatch { display:flex; flex:0 0 28px; width:28px; height:28px; min-height:28px; padding:4px; }
.calendar-side-panel .color-swatch input[type=radio] { appearance:none; width:14px; height:14px; min-height:14px; margin:0; padding:0; border:1px solid var(--text-muted); border-radius:50%; background:var(--surface); }
.calendar-side-panel .color-swatch input:checked { background:var(--text); box-shadow:inset 0 0 0 3px var(--surface); }
.calendar-side-panel label.color-swatch:focus-within { outline:3px solid var(--primary-dark); outline-offset:2px; }
.calendar-discount-tier { grid-template-columns:48px minmax(0,1fr) 66px 30px; gap:5px; padding:6px 0; margin:0; border-bottom:1px solid var(--line); }
.calendar-discount-tier .calendar-tier-warning:empty { display:none; }
.calendar-discount-tier button { border:1px solid var(--line); border-radius:var(--control-radius); color:var(--text-soft); background:var(--surface); }
.calendar-discount-tier.is-ignored { padding-inline:4px; }
.calendar-rule-card { align-items:start; gap:8px; padding:12px 0; }
.calendar-rule-card > div { flex:1; }
.calendar-rule-actions { gap:14px; margin-top:4px; }
.calendar-rule-card .calendar-rule-menu { flex:0 0 32px; margin-left:auto; position:relative; }
.calendar-rule-menu > summary { list-style:none; display:grid; place-items:center; width:32px; height:36px; padding:0; border-radius:8px; font-size:20px; }
.calendar-rule-menu > summary::-webkit-details-marker { display:none; }
.calendar-rule-menu > summary::marker { content:''; }.calendar-rule-menu[open] > summary { background:var(--surface-muted); }
@media (hover: hover) and (pointer: fine) {
.calendar-rule-menu > summary:hover { background:var(--surface-muted); }
}
.calendar-rule-menu > div { position:absolute; z-index:5; top:38px; right:0; min-width:130px; padding:4px; border:1px solid var(--line); border-radius:10px; background:var(--surface); box-shadow:var(--shadow); }
.calendar-rule-menu > div button { display:block; width:100%; text-align:left; border:0; padding:8px 12px; color:var(--text); background:transparent; font:inherit; min-height:40px; }
@media (hover: hover) and (pointer: fine) {
.calendar-rule-menu > div button:hover { background:var(--surface-muted); }
}
@media (forced-colors:active) { .calendar-side-panel .color-swatch input[type=radio] { appearance:auto; } }

/* T60 — calm, scannable groups for rule sets and selected dates. */
.calendar-form-help { margin:0 !important; padding:0 2px; color:var(--text-muted); font-size:11px; line-height:1.45; }
.calendar-rule-identity { display:grid; gap:10px; padding:12px; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--surface-muted) 88%,var(--surface)); }
.calendar-settings-section { --calendar-section-tint:color-mix(in srgb,var(--primary) 6%,var(--surface)); display:grid; gap:10px; padding:12px; border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line)); border-radius:14px; background:var(--calendar-section-tint); }
.calendar-settings-price { --calendar-section-tint:color-mix(in srgb,var(--primary) 7%,var(--surface)); }
.calendar-settings-duration { --calendar-section-tint:color-mix(in srgb,var(--surface-muted) 76%,var(--primary) 4%); }
.calendar-settings-movement { --calendar-section-tint:color-mix(in srgb,var(--primary) 4%,var(--surface-muted)); }
.calendar-settings-platforms { --calendar-section-tint:color-mix(in srgb,var(--surface-muted) 88%,var(--surface)); }
.calendar-settings-heading { display:flex; align-items:center; gap:8px; min-height:28px; }
.calendar-settings-heading h3 { flex:1; margin:0; color:var(--text); font-size:13px; line-height:1.25; }
.calendar-settings-icon { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border:1px solid color-mix(in srgb,var(--primary) 24%,var(--line)); border-radius:9px; background:color-mix(in srgb,var(--primary) 10%,var(--surface)); color:var(--primary-dark); }
.calendar-settings-icon svg { width:16px; height:16px; }
.calendar-help-tip { display:grid; place-items:center; flex:0 0 24px; width:24px; height:24px; border:1px solid var(--line-strong); border-radius:var(--radius-sm); color:var(--text-soft); background:var(--surface); font-size:11px; font-weight:700; cursor:help; }
.calendar-help-tip:focus-visible { outline:2px solid var(--primary); outline-offset:2px; }
.calendar-settings-body { display:grid; gap:10px; }
.calendar-settings-section > details > summary, .calendar-settings-body > details > summary { font-weight:600; }
.calendar-field-label { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:4px 8px; }
.calendar-current-value, .calendar-rule-summary span { display:inline-flex; align-items:center; width:max-content; max-width:100%; min-height:22px; padding:3px 7px; border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface); color:var(--text-soft); font-size:11px; font-weight:600; line-height:1.25; }
.calendar-availability-switch { grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px !important; }
.calendar-availability-switch legend { grid-column:1 / -1; padding-bottom:2px; color:var(--text-soft); font-size:11px; }
.calendar-side-panel .calendar-availability-switch label { position:relative; display:block; min-width:0; cursor:pointer; }
.calendar-availability-switch input { position:absolute; width:1px !important; height:1px; min-height:0 !important; opacity:0; pointer-events:none; }
.calendar-availability-switch span { display:grid; place-items:center; min-height:40px; padding:8px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--text); font-weight:700; }
.calendar-availability-switch .is-open input:checked + span { border-color:var(--green); background:var(--green-soft); color:var(--green); box-shadow:inset 0 0 0 1px var(--green); }
.calendar-availability-switch .is-blocked input:checked + span { border-color:var(--red); background:var(--red-soft); color:var(--red); box-shadow:inset 0 0 0 1px var(--red); }
.calendar-availability-switch input:focus-visible + span { outline:2px solid var(--primary); outline-offset:2px; }
.calendar-reset-overrides { padding-top:8px; border-top:1px solid var(--line); color:var(--text-soft); }
.calendar-platform-compatibility { padding-top:12px; border-top:0; }
.calendar-platform-compatibility p { padding:8px; border:1px solid var(--line); border-radius:10px; background:color-mix(in srgb,var(--surface) 82%,transparent); }
.calendar-rule-card { position:relative; align-items:stretch; gap:12px; margin-bottom:10px; padding:13px 10px 13px 16px; overflow:visible; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--surface-muted) 72%,var(--surface)); }
.calendar-rule-card .calendar-rule-band { position:absolute; inset:0 auto 0 0; width:5px; border-radius:14px 0 0 14px; }
.calendar-rule-card strong { font-size:13px; line-height:1.4; }
.calendar-rule-summary { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.calendar-rule-actions { gap:6px; margin-top:10px; }
.calendar-rule-actions .button { min-height:34px; padding:6px 10px; border-radius:9px; font-size:11px; }
.calendar-rule-actions .button-quiet { border:1px solid transparent; background:transparent; color:var(--link); }
@media (hover: hover) and (pointer: fine) {
.calendar-rule-actions .button-quiet:hover { border-color:var(--line); background:var(--surface); }
}
.calendar-rule-menu > div button[data-calendar-rule-delete] { color:var(--red); }
@media (max-width:900px), (display-mode:standalone) {
 body[data-current-view="calendar"]:has(.calendar-side-panel) .app-shell { position:relative; z-index:60; }
 body[data-current-view="calendar"] .main-area { display:block; padding:8px; }
 body[data-current-view="calendar"] .page-subnav { position:static; width:max-content; max-width:100%; margin:0 0 8px; }
 body[data-current-view="calendar"]:has(.calendar-side-panel) { overflow:hidden; }
 .calendar-workspace { display:block; }
 .stay-timeline { --name-width:128px; --night-width:48px; }
 .calendar-side-panel { position:fixed; z-index:56; top:0; right:0; bottom:calc(68px + env(safe-area-inset-bottom)); width:100%; max-width:none; height:auto; max-height:none; padding:calc(10px + env(safe-area-inset-top)) 12px 10px; background:var(--surface) !important; -webkit-backdrop-filter:none; backdrop-filter:none; }
 .calendar-side-panel .calendar-panel-content { overflow-y:auto; }
 .calendar-side-panel .calendar-panel-actions { position:sticky; z-index:1; bottom:0; background:var(--surface); }
 .calendar-panel-heading { min-height:44px; }
 .calendar-panel-heading .calendar-icon-button { width:44px; height:44px; flex-basis:44px; }
 .calendar-side-panel :is(input,select,textarea) { font-size:16px; min-height:44px; }
 .calendar-side-panel label { font-size:12px; }
 .calendar-side-panel small { font-size:12px; }
 .calendar-side-panel summary { min-height:40px; font-size:13px; }
 .calendar-side-panel .calendar-panel-actions .button { min-height:44px; font-size:13px; }
 .calendar-side-panel .calendar-rule-menu > summary { min-height:40px; }
 .calendar-side-panel label.color-swatch { flex-basis:30px; width:30px; height:30px; min-height:30px; }
 .calendar-settings-section { padding:12px; }
 .calendar-availability-switch span { min-height:44px; }
 .calendar-rule-card { padding-block:14px; }
 .calendar-rule-actions .button { min-height:44px; }
 .calendar-toolbar { gap:4px; }
 .calendar-toolbar > input[type=month] { width:142px; }
 .calendar-toolbar > input[type=search] { flex:1 1 100%; width:100%; }
 .calendar-toolbar .button, .calendar-toolbar .calendar-icon-button { min-height:40px; }
 .calendar-toolbar-actions { margin-left:auto; }
 .calendar-grid-area :is(.stay-timeline-scroll,.property-month) { max-height:calc(100dvh - 320px); }
 /* Two short rows avoid the observed badge/action overlap on Today. */
 .today-compact .today-action { grid-template-columns:18px minmax(0,1fr) auto; grid-template-rows:auto auto; gap:2px 6px; padding:7px 0; }
 .today-action > .core-action-icon { grid-column:1; grid-row:1; align-self:center; }
 .today-action > strong { grid-column:2; grid-row:1; font-size:12px; }
 .today-action > small { grid-column:2; grid-row:2; font-size:11px; }
 .today-action > .pill { grid-column:3; grid-row:1; min-inline-size:0; max-width:100%; font-size:11px; padding:3px 5px; }
 .today-action > .today-link { grid-column:3; grid-row:2; justify-self:end; min-height:30px; font-size:12px; }
 .today-action > span:not(.core-action-icon):not(.pill) { display:none; }
 .today-compact .today-arrival { grid-template-columns:42px 20px minmax(0,1fr) auto; grid-template-rows:auto auto; padding-block:5px; }
 .today-arrival > time { grid-column:1; grid-row:1 / 3; }
 .today-arrival > .platform-badge { grid-column:2; grid-row:1 / 3; }
 .today-arrival > strong { grid-column:3; grid-row:1; }
 .today-arrival > small { grid-column:3; grid-row:2; }
 .today-arrival > .pill { grid-column:4; grid-row:1 / 3; }
}

/* T35 — one inbox frame, with the reservation always visible on desktop. */
.messages-conversations .su-thread { position:relative; display:grid; grid-template-columns:32px minmax(0,1fr); }
.messages-conversations .su-thread time { position:absolute; top:10px; right:10px; }
.messages-conversations .su-thread strong { padding-right:40px; }
.messages-conversations .su-thread p { padding-right:12px; }
.messages-conversations .su-thread .message-reply-dot { position:absolute; bottom:12px; right:12px; }
.messages-workspace { grid-template-columns:minmax(200px,.8fr) minmax(300px,1.5fr) minmax(240px,1fr); }
.messages-conversations .su-thread .message-stay-dates { display:flex; flex-wrap:wrap; white-space:normal; overflow:visible; align-items:center; gap:4px; color:var(--text-soft); font-size:11px; margin-top:3px; }
.message-stay-dates .platform-badge { flex:none; }
.messages-exchange .message-stay-summary { display:flex; align-items:center; justify-content:space-between; gap:8px; font-size:13px; }
.message-stay-summary strong { min-width:0; }
.message-reservation-toggle, [data-close-message-reservation] { display:none; }
.message-reservation-panel { min-width:0; min-height:0; overflow:auto; overscroll-behavior:contain; border-left:1px solid var(--line); padding:16px; font-size:12px; }
.message-reservation-panel > header, .saved-template-dialog > header { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.message-reservation-panel h3 { margin:0; font-size:14px; }
.message-reservation-panel dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px; margin:18px 0; }
.message-reservation-panel dl > div { min-width:0; }
.message-reservation-panel dl > div:nth-child(-n+5) { grid-column:1 / -1; }
.message-reservation-panel dt { font-size:11px; color:var(--text-soft); margin-bottom:4px; }
.message-reservation-panel dd { margin:0; white-space:normal; }
.message-reservation-panel > small { display:block; color:var(--text-soft); }
.message-language-field { display:grid; gap:5px; margin:0 0 14px; font-weight:700; }
.message-reservation-state, .message-panel-note { color:var(--text-soft); font-size:11px; }
.message-request { flex:none; max-height:45%; overflow:auto; padding:10px 14px; border-bottom:1px solid var(--line); background:var(--primary-faint); font-size:12px; }
.message-request p { margin:4px 0; }
.message-request small { color:var(--text-soft); }
.message-request .request-decision-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.message-request form { margin-top:10px; }
.message-request label, .saved-template-body label { display:grid; gap:6px; margin-bottom:12px; font-size:12px; }
.message-request :is(input,textarea,select), .saved-template-body :is(input:not([type=checkbox]),textarea,select) { width:100%; min-width:0; box-sizing:border-box; }
.message-scheduled { flex:none; max-height:25%; overflow:auto; border-top:1px solid var(--line); padding:8px 12px; text-align:center; font-size:11px; color:var(--text-soft); }
.message-scheduled > summary { cursor:pointer; }
.message-compose-actions { flex-wrap:wrap; gap:4px 8px; }
.message-propose { font-size:11px; min-height:36px; padding:4px; }
.message-ai-unavailable { font-size:11px; color:var(--text-soft); }
.message-ai-status { font-size:11px; color:var(--text-soft); margin:6px 0 0; }
.message-ai-status:empty { display:none; }
.message-templates label { display:grid; gap:4px; font-size:11px; }
.message-templates input { min-width:0; width:100%; box-sizing:border-box; }
.saved-template-dialog { width:min(680px,calc(100vw - 32px)); max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:var(--card-radius); background:var(--surface); color:var(--text); }
.saved-template-dialog[open] { display:flex; flex-direction:column; }
.saved-template-dialog > header { flex:none; padding:16px; border-bottom:1px solid var(--line); }
.saved-template-dialog h2 { font-size:18px; margin:0; }
.saved-template-body { min-height:0; overflow:auto; padding:16px; }
.saved-template-body fieldset { min-width:0; margin:16px 0; border:1px solid var(--line); }
.saved-template-body .checkbox-line { display:flex; align-items:center; gap:8px; margin-top:8px; }
.saved-template-list article { padding:14px 0; border-bottom:1px solid var(--line); }
.saved-template-list small { display:block; margin:6px 0; color:var(--text-soft); }
.saved-template-list article > div { display:flex; flex-wrap:wrap; gap:8px; }
body:has(.saved-template-dialog[open]) { overflow:hidden; }
/* Overrides the generic wide tables: the two-column preview belongs to its panel. */
.calendar-panel-content .calendar-price-preview { display:table; min-width:0; width:100%; max-width:100%; table-layout:fixed; overflow:visible; }
.calendar-panel-content .calendar-price-preview :is(th,td) { min-width:0; white-space:normal; overflow-wrap:break-word; }
@media(max-width:1199px) {
  .messages-workspace { position:relative; grid-template-columns:minmax(200px,.8fr) minmax(0,1.5fr); }
  .message-reservation-toggle, [data-close-message-reservation] { display:inline-flex; }
  .message-reservation-panel { display:none; }
  .messages-workspace.has-reservation .message-reservation-panel { display:block; position:absolute; z-index:6; inset:0 0 0 auto; width:min(360px,100%); box-sizing:border-box; background:var(--surface); box-shadow:var(--shadow-soft); }
}
@media(max-width:760px) {
  .messages-workspace { grid-template-columns:minmax(0,1fr); }
  .messages-workspace.has-reservation .message-reservation-panel { width:100%; border:0; }
  .message-reservation-panel { padding:14px; }
  .message-request { max-height:48%; }
  .message-request:has(form:not([hidden])) { max-height:65%; }
  .messages-exchange .message-stay-summary { padding:8px 12px; }
  .message-connection { margin-left:auto; }
  .saved-template-dialog { width:100%; max-width:100%; max-height:100dvh; height:100dvh; margin:0; border:0; border-radius:0; }
}

/* T35 review: explicit intrinsic widths prevent the mobile full-width buttons
   from consuming the whole header and squeezing its title into one letter. */
.message-heading-copy { display:flex; flex:1; min-width:0; flex-wrap:wrap; align-items:baseline; gap:4px 12px; }
.message-heading-copy > strong { min-width:0; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.message-heading-context { display:flex; flex:1 1 200px; min-width:0; gap:8px; font-size:11px; color:var(--text-soft); }
.message-heading-property { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.message-heading-dates { flex:none; white-space:nowrap; }
.messages-exchange .message-stay-summary { overflow:visible; max-height:none; }
.message-reservation-panel > header { position:sticky; top:-16px; z-index:2; margin:-16px -16px 0; padding:14px 16px; background:var(--surface); border-bottom:1px solid var(--line); }
.message-reservation-panel > header > div { min-width:0; }
.message-reservation-state { margin:4px 0 0; }
body .message-stay-summary .button, body .message-reservation-panel > header .button, body .saved-template-dialog > header .button { flex:0 0 auto; width:auto; min-width:0; min-inline-size:0; padding:8px 12px; white-space:nowrap; }
.message-scheduled { text-align:left; }
.message-scheduled .message-automatic-marker { padding:4px 0; }
.message-scheduled .message-automatic-marker p { font-size:12px; line-height:1.6; }
.saved-template-dialog { overflow:hidden; box-sizing:border-box; }
.saved-template-dialog > header h2 { min-width:0; overflow-wrap:normal; }
.saved-template-body { flex:1 1 auto; min-width:0; overscroll-behavior:contain; }
.saved-template-body form { min-width:0; }
.saved-template-body :is(input,textarea,select) { font-weight:400; }
.saved-template-footer { flex:none; padding:10px 16px; border-top:1px solid var(--line); background:var(--surface); }
.saved-template-footer .panel-actions { display:flex; justify-content:flex-end; gap:8px; margin:0; }
.saved-template-footer [data-template-feedback] { margin:0 0 8px; color:var(--red); max-height:80px; overflow:auto; }
.saved-template-footer [data-template-feedback]:empty { display:none; }
body .saved-template-footer .button { width:auto; flex:0 1 auto; min-width:0; min-inline-size:0; }
.saved-template-list article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:4px 16px; align-items:center; }
.saved-template-list article > strong { grid-column:1; }
.saved-template-list article > small { grid-column:1; margin:0; }
.saved-template-list article > div { grid-column:2; grid-row:1 / 3; }
body .saved-template-list article .button { width:auto; min-inline-size:0; padding:8px; }
/* Three-night demo bars also need two lines for a long first name. */
@container (max-width:160px) {
 .stay-bar > .stay-bar-label { grid-template-columns:16px minmax(0,1fr); gap:1px 3px; }
 .stay-bar-label > strong { grid-column:1 / -1; grid-row:1; font-size:11px; }
 .stay-bar-label > .platform-badge { grid-column:1; grid-row:2; }
 .stay-bar-label > .calendar-stay-count { grid-column:2; grid-row:2; }
}
@media(max-width:900px), (display-mode:standalone) {
 .message-heading-copy { display:grid; gap:3px; }
 .message-heading-context { font-size:11px; }
 .messages-exchange .message-stay-summary { align-items:center; }
 .message-reservation-panel > header { top:-14px; margin:-14px -14px 0; padding:10px 14px; }
 .messages-exchange .message-scheduled { padding:4px 12px; }
 .message-scheduled > summary { display:flex; align-items:center; font-size:12px; }
 .message-scheduled > summary::before { content:'▸'; margin-right:6px; }
 .message-scheduled[open] > summary::before { content:'▾'; }
 .message-scheduled > summary::-webkit-details-marker { display:none; }
 .message-compose-actions .message-ai-unavailable { font-size:11px; }
 .saved-template-dialog > header { padding:12px 16px; gap:12px; }
 .saved-template-dialog h2 { font-size:17px; }
 .saved-template-body { font-size:14px; padding:12px 16px; }
 .saved-template-body label { font-size:13px; }
 .saved-template-body textarea { min-height:130px; }
 .saved-template-footer { padding-bottom:calc(10px + env(safe-area-inset-bottom)); }
 body .saved-template-footer .button { flex:1; }
 .saved-template-list article { display:block; }
 .saved-template-list article > div { margin-top:8px; }
 .saved-template-list small { margin-top:6px; }
 .calendar-toolbar { display:grid; grid-template-columns:auto 32px 32px minmax(0,1fr); gap:4px; }
 body .calendar-toolbar .button { width:auto; min-width:0; min-inline-size:0; padding:6px 8px; }
 .calendar-toolbar > input[type=month] { width:100%; min-width:0; padding-inline:4px; font-size:13px; }
 .calendar-toolbar > input[type=search] { grid-column:1 / -1; }
 .calendar-toolbar .calendar-filter-menu { grid-column:1; }
 .calendar-toolbar-actions { grid-column:2 / -1; display:flex; flex-wrap:wrap; justify-content:flex-end; min-width:0; gap:4px; margin:0; }
 .calendar-toolbar-actions .button { flex:0 1 auto; font-size:11px; }
 .calendar-toolbar-actions .calendar-icon-button { flex:0 0 32px; }
}

/* T36 — compact mapping; horizontal movement stays inside the matrix. */
.channel-manager { min-width:0; max-width:100%; }
.channel-manager:has(.channel-table) { display:flex; flex-direction:column; height:calc(100dvh - 220px); min-height:380px; }
.channel-manager > :is(.channel-tabs,.channel-toolbar,.channel-filters) { flex:none; }
.channel-manager [data-channel-table] { flex:1; min-height:160px; }
.channel-tabs { display:flex; flex-wrap:wrap; gap:8px; border-bottom:1px solid var(--line); margin-bottom:16px; }
.channel-tabs button { border:0; background:none; padding:12px; color:var(--text-muted); }
.channel-tabs [aria-current="page"] { color:var(--link); box-shadow:inset 0 -2px var(--primary); }
.channel-toolbar { display:flex; align-items:end; gap:10px; margin-bottom:12px; }
.channel-toolbar label { flex:1; max-width:380px; }
.channel-toolbar label,.channel-filters label,.channel-dialog label { display:grid; gap:6px; font-size:13px; }
.channel-manager input,.channel-manager select,.channel-dialog input:not([type="checkbox"]) { width:100%; min-width:0; height:42px; padding:8px 10px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); font:inherit; }
.channel-filters:not([hidden]) { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding:12px 0; }
.channel-table-scroll { height:100%; max-width:100%; overflow:auto; overscroll-behavior:contain; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.channel-table { --channel-name-width:300px; width:100%; min-width:calc(var(--channel-name-width) + var(--channel-columns,4) * 140px); border-collapse:collapse; table-layout:fixed; font-size:13px; }
.channel-table th,.channel-table td { padding:8px; border-bottom:1px solid var(--line); text-align:center; vertical-align:middle; text-transform:none; }
.channel-table th:first-child { width:var(--channel-name-width); text-align:left; }
.channel-table thead th { position:sticky; top:0; z-index:2; }
.channel-table tbody th { position:sticky; left:0; z-index:1; }
.channel-table thead th:first-child { left:0; z-index:3; }
.channel-table thead th { font-weight:500; }
.channel-table thead th .platform-badge { margin:0 auto 4px; }
.channel-table thead th>span:last-child { display:block; }
.channel-table td button { border:0; background:transparent; color:var(--text); border-radius:8px; padding:8px; font:inherit; min-height:44px; width:100%; scroll-margin-inline-start:var(--channel-name-width); scroll-margin-top:64px; }
@media (hover: hover) and (pointer: fine) {
.channel-table td button:hover { background:var(--surface-neutral); }
}
.channel-table td small { display:block; color:var(--text-muted); font-size:11px; }
.channel-property { display:flex; gap:8px; align-items:center; min-width:0; font-weight:500; }
.channel-property>span { min-width:0; white-space:normal; text-transform:none; }
.channel-property img,.channel-property>svg,.channel-property .property-cover { width:32px; height:32px; flex:0 0 32px; object-fit:cover; border-radius:6px; }
.channel-table .is-room .channel-property { padding-left:24px; }
.channel-platforms article { display:grid; grid-template-columns:32px minmax(100px,1fr) 120px 140px auto; align-items:center; gap:12px; padding:14px 10px; border-bottom:1px solid var(--line); }
.channel-platforms small { color:var(--text-muted); }
.channel-dialog { width:min(440px,calc(100vw - 24px)); max-height:calc(100dvh - 32px); padding:0; border:1px solid var(--line); border-radius:18px; background:var(--surface); color:var(--text); overflow:auto; }
body:has(.channel-dialog[open]) { overflow:hidden; }
.channel-dialog header { display:flex; align-items:start; gap:12px; justify-content:space-between; padding:16px; border-bottom:1px solid var(--line); }
.channel-dialog header>div { min-width:0; }
.channel-dialog h2 { margin:0; font-size:18px; display:flex; gap:8px; align-items:center; }
.channel-dialog header p { margin:6px 0 0; overflow-wrap:normal; }
.channel-dialog form { padding:16px; display:grid; gap:16px; }
.channel-dialog form p { margin:0; }
.channel-dialog .channel-switch { display:flex; align-items:center; gap:8px; }
.channel-dialog input[type="checkbox"] { width:18px; height:18px; }
.channel-dialog small,.channel-help { font-size:12px; color:var(--text-muted); }
.channel-dialog footer { display:flex; justify-content:space-between; gap:12px; }
.channel-dialog button { width:auto; flex-shrink:0; }
.channel-dialog [role="status"] { font-size:13px; overflow-wrap:normal; }
@media(max-width:600px) {
  .channel-toolbar { flex-wrap:wrap; }
  .channel-toolbar label { flex-basis:100%; max-width:none; }
  .channel-toolbar button { width:auto; flex:1; }
  .channel-filters:not([hidden]) { grid-template-columns:1fr; }
  .channel-table { --channel-name-width:180px; }
  .channel-platforms article { grid-template-columns:28px minmax(0,1fr) auto; gap:8px; }
  .channel-platforms article>span:not(.platform-badge) { grid-column:2; font-size:12px; }
  .channel-platforms article>small { grid-column:2; }
  .channel-platforms article>button { grid-column:3; grid-row:1 / span 3; width:auto; }
  .channel-tabs button { width:auto; font-size:13px; padding:10px 6px; }
}

/* T36 image review: names preserve their written case on every row header. */
body tbody th, body .su-table tbody th { text-transform:none; }
.channel-table th { font-size:13px; }
.channel-manager input,.channel-manager select,.channel-dialog input { font-weight:400; }
.channel-dialog { overflow:hidden; }
.channel-dialog[open] { display:flex; flex-direction:column; }
.channel-dialog header { flex:none; }
body .channel-dialog header .button { width:auto; min-inline-size:0; }
.channel-dialog form { min-height:0; overflow:auto; overscroll-behavior:contain; padding-bottom:0; }
.channel-dialog footer { position:sticky; bottom:0; background:var(--surface); padding:12px 0 16px; }
.channel-dialog [data-channel-feedback]:empty { display:none; }
.channel-dialog header p { overflow-wrap:break-word; }
@media(max-width:900px), (display-mode:standalone) {
 .channel-manager:has(.channel-table) { height:calc(100dvh - 230px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); min-height:360px; }
 .channel-manager :is(input,select) { font-size:16px; }
 .channel-dialog { width:calc(100vw - 24px); max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
 .channel-dialog header { padding:12px; }
 .channel-dialog form { padding:12px 12px 0; gap:12px; }
 .channel-dialog input:not([type=checkbox]) { font-size:16px; }
 .channel-platforms article { padding-block:12px; }
 .channel-platforms article>small { font-size:11px; }
 body .channel-platforms article>.button { font-size:13px; padding:8px 12px; }
 .property-platform-line .panel-actions { justify-content:flex-start; }
 .property-platform-line .panel-actions .button { font-size:13px; }
}

/* T38: read-only property data remains legible and distinct from editable fields. */
.property-read-only { flex: none; padding: 4px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface-muted); color: var(--text-muted); font-size: 12px; white-space: nowrap; }
.property-read-only[hidden] { display: none; }
#propertyWizardModal[data-read-only="true"] #propertyWizardFields :is(input,select,textarea):disabled {
  background: var(--surface-muted); color: var(--text-muted); border-color: var(--line); box-shadow: none; opacity: 1; cursor: not-allowed;
  -webkit-text-fill-color: var(--text-muted);
}
#propertyWizardModal[data-read-only="true"] .listing-title { background: var(--surface-muted); border-color: var(--line); }

@media (max-width: 700px) {
 #propertyWizardModal[data-read-only="true"] .property-page-header { flex-wrap: wrap; }
 #propertyWizardModal[data-read-only="true"] .property-page-header > div { flex: 1 1 calc(100% - 100px); }
 #propertyWizardModal[data-read-only="true"] #propertyWizardClose { order: 1; }
 #propertyWizardModal[data-read-only="true"] .property-read-only,
 #propertyWizardModal[data-read-only="true"] #propertyWizardState { order: 2; }
}

/* T43 — one compact financial workspace; native dialog shares calendar panel primitives. */
.finance-overview { min-width:0; }
.finance-toolbar, .finance-toolbar-actions, .finance-month-picker, .finance-links, .finance-pagination, .finance-close { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.finance-toolbar { justify-content:space-between; margin-bottom:16px; }
.finance-month-picker { flex-wrap:nowrap; }
.finance-month-picker select { width:190px; min-width:0; height:44px; border:1px solid var(--line); border-radius:12px; background:var(--surface); color:var(--text); padding:8px; font:inherit; font-size:13px; }
body .finance-month-picker .button { width:36px; min-width:36px; min-inline-size:36px; padding:6px; font-size:24px; }
.finance-toolbar-actions .button { font-size:12px; }
.finance-top-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.finance-top-metrics article { min-width:0; border-bottom:2px solid var(--primary); padding:8px 0 12px; }
.finance-top-metrics article>span { font-size:12px; color:var(--text-soft); }
.finance-top-metrics strong { display:block; margin-top:8px; font-size:24px; }
.finance-known-value { white-space:nowrap; font-variant-numeric:tabular-nums; }
.finance-unknown-count { display:block; font-weight:400; font-size:11px; color:var(--text-soft); }
.finance-tabs { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:visible; margin-bottom:16px; }
.finance-tabs button { min-width:0; padding:10px 6px; font-size:13px; }
.finance-table { width:100%; min-width:0; max-width:100%; table-layout:fixed; border-collapse:collapse; font-size:12px; }
.finance-table th { color:var(--text-soft); font-size:11px; text-align:left; font-weight:600; }
.finance-table :is(th,td) { padding:12px 8px; border-bottom:1px solid var(--line); vertical-align:middle; overflow-wrap:break-word; }
.finance-table :is(th,td):first-child { width:31%; }
.finance-table small { display:block; color:var(--text-soft); font-size:11px; margin-top:3px; }
.finance-table .finance-identity { line-height:1.6; }
.finance-stay-identity { display:flex; align-items:center; gap:6px; min-width:0; max-width:100%; }
.finance-stay-identity .platform-badge { flex:none; }
.finance-stay-link { display:block; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:100%; text-align:left; font:inherit; line-height:inherit; padding:0; border:0; background:transparent; color:var(--text); cursor:pointer; }
.finance-receipts .finance-stay-identity .platform-badge { display:none; }
@media (hover: hover) and (pointer: fine) {
.finance-stay-link:hover { color:var(--link); text-decoration:underline; }
}
.finance-stays tbody tr { cursor:pointer; }
.finance-stays tbody tr:focus-visible { outline:2px solid var(--primary); outline-offset:-2px; }
.finance-table .has-discrepancy { background:var(--amber-soft); }
.finance-main-amount { font-weight:700; font-variant-numeric:tabular-nums; }
.finance-receipts :is(th,td):first-child { width:12%; }
.finance-receipts :is(th,td):nth-child(2) { width:9%; }
.finance-receipts :is(th,td):nth-child(3) { width:35%; }
.finance-owners :is(th,td):first-child { width:24%; }
.finance-owner-name { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.finance-cohost { display:block; margin-top:4px; font-weight:400; color:var(--text-soft); white-space:normal; }
.finance-filters { margin:0 0 10px; font-size:12px; }
.finance-filters summary { display:none; }
.finance-filters:not([open])>label, .finance-filters label { display:flex; align-items:center; gap:8px; min-height:44px; }
.finance-filters input { width:18px; height:18px; }
.finance-links { justify-content:flex-end; margin:0 0 8px; font-size:12px; }
.finance-links button { border:0; background:transparent; color:var(--text-soft); padding:8px; min-height:36px; font:inherit; cursor:pointer; }
@media (hover: hover) and (pointer: fine) {
.finance-links button:hover { color:var(--link); text-decoration:underline; }
}
.finance-alert-banner { display:block; width:100%; margin:0 0 16px; text-align:left; background:var(--amber-soft); border:1px solid color-mix(in srgb,var(--text) 15%,transparent); border-radius:10px; color:var(--text); padding:10px 12px; min-height:44px; font:inherit; font-size:12px; cursor:pointer; }
.finance-pagination { justify-content:flex-end; margin-top:14px; font-size:12px; }
.finance-empty { padding:20px 8px; color:var(--text-soft); font-size:13px; }
.finance-close { font-size:12px; }
.finance-close { position:relative; }
.finance-close details { position:static; }
.finance-close summary { cursor:pointer; }
.finance-close details .button { position:absolute; left:0; right:auto; top:100%; z-index:2; min-width:170px; background:var(--surface); }
.finance-side-panel { position:fixed; inset:0 0 0 auto; margin:0; width:min(520px,100vw); max-width:100vw; height:100dvh; max-height:100dvh; padding:20px; border:0; border-left:1px solid var(--line); border-radius:0; background:var(--surface); color:var(--text); box-sizing:border-box; overflow:hidden; }
.finance-side-panel[open] { display:flex; flex-direction:column; gap:16px; }
.finance-owner-link { border:0; padding:0; background:transparent; color:inherit; font:inherit; font-weight:700; text-align:left; cursor:pointer; }
.invoice-review { display:grid; grid-template-columns:minmax(360px,1fr) minmax(320px,.9fr); gap:16px; min-height:0; height:100%; }
.finance-side-panel:has(.invoice-review) { width:min(1180px,100vw); }
.invoice-review-editor,.invoice-preview { min-width:0; border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:auto; }
.invoice-review-editor { padding:16px; }
.invoice-review-summary { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.invoice-review-summary div { display:grid; gap:4px; }
.invoice-review-summary span { color:var(--text-soft); font-size:12px; }
.invoice-review-summary strong { font-size:20px; }
.invoice-alerts { display:grid; gap:8px; margin:0 0 14px; }
.invoice-alerts:empty { display:none; }
.invoice-alerts article { display:grid; gap:5px; padding:10px 12px; border:1px solid var(--line); border-radius:10px; background:var(--amber-soft); font-size:12px; }
.invoice-alerts article.is-error { background:var(--red-soft); }
.invoice-alert-link,.invoice-origin { width:max-content; max-width:100%; border:0; padding:2px 0; background:transparent; color:var(--link); font:inherit; font-size:11px; text-align:left; cursor:pointer; }
.invoice-period { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:14px; }
.invoice-period label { display:grid; gap:5px; font-size:11px; color:var(--text-soft); }
.invoice-period input,.invoice-line :is(input,select) { width:100%; min-width:0; min-height:40px; box-sizing:border-box; border-radius:8px; }
.invoice-lines { display:grid; gap:6px; margin-bottom:10px; }
.invoice-line-head,.invoice-line { display:grid; grid-template-columns:minmax(150px,1fr) 62px 92px 104px 36px; gap:6px; align-items:start; }
.invoice-line-head { padding:0 5px; color:var(--text-soft); font-size:11px; }
.invoice-line label { min-width:0; }
.invoice-line label>.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.invoice-line .button { min-inline-size:36px; width:36px; min-height:40px; padding:4px; border-radius:8px; }
.invoice-period :is(input,select):disabled,.invoice-line :is(input,select):disabled { opacity:1; border-color:var(--line); background:var(--surface-muted); color:var(--text-soft); cursor:not-allowed; box-shadow:none; }
.invoice-origin { display:block; margin-top:3px; }
.invoice-panel-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding-top:16px; }
.finance-row-action [data-prepare-owner-invoice] { white-space:nowrap; }
.finance-credit-dialog { max-width:calc(100vw - 24px); overflow-x:hidden; border-radius:12px; }
.finance-credit-form { display:grid; min-width:0; gap:14px; padding:14px 20px 0; }
.finance-credit-form>label,.finance-credit-partial { display:grid; gap:6px; color:var(--text-soft); font-size:12px; font-weight:700; }
.finance-credit-form textarea,.finance-credit-form input[type="text"],.finance-credit-form input:not([type]) { width:100%; box-sizing:border-box; }
.finance-credit-form fieldset { display:grid; min-width:0; max-width:100%; box-sizing:border-box; gap:9px; margin:0; padding:12px; border:1px solid var(--line); border-radius:10px; }
.finance-credit-form legend { padding:0 5px; font-size:12px; font-weight:700; }
.finance-credit-choice { display:flex; align-items:center; min-width:0; max-width:100%; gap:8px; font-weight:600; }
body .finance-credit-choice input[type="radio"] { flex:0 0 18px; width:18px; min-width:18px; max-width:18px; height:18px; min-height:18px; max-height:18px; margin:0; padding:0; }
.finance-credit-partial input { min-height:40px; }
.finance-credit-partial input:disabled { opacity:.65; background:var(--surface-muted); cursor:not-allowed; }
.finance-credit-reminder { margin:0; padding:10px 12px; border-radius:9px; background:var(--surface-muted); color:var(--text-soft); }
.finance-credit-form>footer { display:flex; justify-content:flex-end; gap:10px; margin:0 -20px; padding:16px 20px; border-top:1px solid var(--line); }
.invoice-missing-dialog { width:min(680px,calc(100vw - 24px)); max-width:calc(100vw - 24px); max-height:calc(100dvh - 24px); padding:20px; overflow:auto; box-sizing:border-box; border-radius:12px; }
.invoice-missing-dialog>p { color:var(--text-soft); }
.invoice-missing-form { display:grid; gap:14px; min-width:0; }
.invoice-missing-form fieldset { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; min-width:0; margin:0; padding:14px; border:1px solid var(--line); border-radius:10px; }
.invoice-missing-form legend { padding:0 6px; font-weight:700; }
.invoice-missing-form label { display:grid; gap:5px; min-width:0; color:var(--text-soft); font-size:12px; font-weight:700; }
.invoice-missing-form :is(input,select) { width:100%; min-width:0; min-height:42px; box-sizing:border-box; }
.invoice-missing-form [role="status"]:empty { display:none; }
.invoice-missing-form footer { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:flex-end; gap:8px; padding-top:4px; }
.invoice-missing-scope-action { display:grid; align-content:start; gap:5px; min-width:0; max-width:100%; }
.invoice-missing-scope-action small { max-width:260px; color:var(--text-soft); font-size:12px; line-height:1.4; }
@media(min-width:651px) {
 .finance-owners :is(th,td):last-child { width:142px; }
 .finance-owners .finance-row-action { overflow:hidden; }
 body .finance-owners .finance-row-action .button { width:100%; max-width:100%; min-inline-size:0; box-sizing:border-box; padding-inline:6px; }
}
.invoice-preview { display:flex; flex-direction:column; background:var(--surface-muted); }
.invoice-preview header { display:grid; gap:2px; padding:12px 14px; border-bottom:1px solid var(--line); }
.invoice-preview header small { color:var(--text-soft); }
.invoice-preview iframe { flex:1; width:100%; min-height:620px; border:0; background:white; }
.invoice-preview-error { padding:20px; color:var(--red); }
.invoice-history { margin-top:18px; border-top:1px solid var(--line); padding-top:14px; }
.invoice-history p { display:flex; justify-content:space-between; gap:10px; margin:0; padding:8px 0; border-bottom:1px solid var(--line); font-size:12px; }
.invoice-history time { color:var(--text-soft); }
.month-close-flow { display:grid; gap:16px; }
.month-close-progress { display:grid; gap:6px; }
.month-close-progress progress { width:100%; accent-color:var(--primary); }
.month-close-invoice { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid var(--line); border-radius:10px; }
.month-close-documents { display:grid; gap:8px; }
.month-close-invoice>div { display:grid; min-width:0; gap:3px; }
.month-close-invoice small { color:var(--text-soft); }
.month-close-invoice>.button { flex:none; align-self:center; }
.month-close-actions { display:flex; flex-wrap:wrap; gap:8px; }
.month-close-stays,.month-close-missing ul { display:grid; gap:6px; margin:0; padding-left:20px; }
.month-close-stays .finance-stay-link { min-height:36px; }
.month-close-report { display:grid; gap:6px; }
.month-close-report h4,.month-close-missing h4 { margin:0; font-size:13px; }
.month-close-report p { display:flex; justify-content:space-between; gap:10px; margin:0; padding:9px 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface-muted); }
.month-close-report p.is-error { background:var(--red-soft); }
/* Lock the root, not body: a new body scroll container would move sticky navigation. */
@media (max-width:1400px) {
  .property-dense-table .property-column-city,
  .property-dense-table .property-column-capacity { display:none; }
}
@media (max-width:1100px) {
  .property-dense-table .property-column-owner { display:none; }
}
html:has(.finance-side-panel[open]) { overflow:hidden; }
.finance-side-panel .calendar-panel-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex:none; }
.finance-side-panel h2 { font-size:18px; margin:0; }
.finance-side-panel h3 { font-size:15px; margin:0; overflow-wrap:break-word; }
.finance-side-panel .calendar-panel-content { overflow:auto; min-height:0; min-width:0; overscroll-behavior:contain; font-size:13px; padding:0 3px 24px; }
.finance-side-panel .calendar-panel-heading .button { min-inline-size:44px; width:44px; }
.finance-side-panel .kv-grid dd { overflow-wrap:break-word; }
.finance-side-panel .finance-document-row { display:flex; flex-wrap:wrap; padding:12px 0; }
.finance-side-panel .finance-document-copy { flex:1 1 200px; min-width:0; }
.finance-side-panel .finance-document-actions { flex-wrap:wrap; }
.finance-side-panel .finance-stay-link { white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:break-word; }
.finance-statement-stay { border-top:1px solid var(--line); padding:16px 0; }
.finance-side-panel .finance-audit-list article { border-bottom:1px solid var(--line); padding:12px 0; }
.finance-side-panel .finance-audit-list p { margin:0 0 6px; }
.finance-side-panel .finance-audit-list time { font-size:11px; color:var(--text-soft); }
.finance-mobile-label { display:none!important; }
.finance-mobile-received { display:none; }
@media(max-width:900px) {
 .finance-toolbar { align-items:flex-start; }
 .finance-toolbar-actions { justify-content:flex-start; }
 .finance-table { font-size:11px; }
 .finance-table :is(th,td) { padding:10px 5px; }
 .invoice-review { grid-template-columns:minmax(0,1fr); height:auto; }
 .invoice-preview { min-height:520px; }
 .invoice-preview iframe { min-height:500px; }
}
@media(max-width:900px), (display-mode:standalone) {
 /* Keep the sticky header attached to the root even when the dialog locks it.
    body overflow-x:hidden otherwise becomes a scroll container at that moment. */
 body[data-current-view="billing"] { overflow:visible; }
}
@media(max-width:650px) {
 .finance-toolbar { gap:8px; }
 .finance-toolbar-actions { width:100%; justify-content:space-between; }
 body .finance-toolbar-actions .button { width:auto; min-inline-size:0; padding:8px; font-size:11px; }
 .finance-top-metrics { gap:8px; margin-bottom:12px; }
 .finance-top-metrics strong { font-size:17px; }
 .finance-top-metrics article>span { font-size:11px; }
 .finance-tabs { gap:0; padding:2px; }
 .finance-tabs button { padding:10px 2px; font-size:11px; letter-spacing: normal; min-height:44px; }
 .finance-table, .finance-table tbody { display:block; min-width:0; max-width:100%; }
 .finance-table thead, .finance-table .finance-secondary-amount { display:none; }
 .finance-table tr { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:0 8px; margin-bottom:8px; padding:6px 10px; border:1px solid var(--line); border-radius:10px; background:var(--surface); min-width:0; }
 .finance-table :is(th,td), .finance-table :is(th,td):first-child, .finance-receipts :is(th,td):nth-child(2), .finance-receipts :is(th,td):nth-child(3) { width:auto; height:auto; padding:0; border:0; min-width:0; }
 .finance-table .finance-identity { grid-column:1 / -1; grid-row:1; display:flex; align-items:center; font-size:11px; min-height:32px; }
 .finance-table .finance-stay-identity { width:100%; }
 .finance-table .finance-stay-link { min-height:32px; }
 .finance-table .finance-main-amount { grid-column:1; grid-row:2; display:flex; flex-wrap:wrap; align-items:center; gap:0 4px; text-align:left; font-size:12px; max-width:none; min-height:28px; }
 .finance-table .finance-row-state { grid-column:2; grid-row:2; display:flex; align-items:center; min-height:28px; text-align:left; color:var(--text-soft); font-size:11px; }
 .finance-stays tr { grid-template-columns:minmax(0,1fr) auto; }
 .finance-stays .finance-row-state { justify-self:end; }
 .finance-state-badge { display:inline-block; padding:3px 8px; border-radius:var(--radius-sm); background:var(--surface-muted); color:var(--text); line-height:1.4; white-space:nowrap; }
 .has-discrepancy .finance-state-badge { background:var(--amber-soft); border:1px solid var(--line); }
 .finance-mobile-received { display:inline; font-size:11px; font-weight:400; color:var(--text-soft); }
 .finance-table .finance-row-action { grid-column:3; grid-row:2; text-align:right; }
 body .finance-row-action .button { width:auto; min-inline-size:0; min-height:36px; padding:5px 8px; font-size:11px; }
 .finance-receipts .finance-date, .finance-receipts .finance-platform { display:none; }
 .finance-receipts .finance-stay-identity .platform-badge { display:inline-flex; }
 .finance-owners tr { grid-template-columns:minmax(0,1fr) auto auto; }
 .finance-table .finance-cohost { flex-basis:100%; width:100%; max-width:none; height:auto; white-space:normal; line-height:1.5; font-size:11px; }
 .finance-links { gap:4px; }
 .finance-alert-banner { flex-basis:100%; }
 .finance-pagination { justify-content:space-between; }
 .finance-pagination .button { width:auto; min-inline-size:0; padding:8px; }
 .finance-side-panel { padding:16px; width:100vw; }
 .invoice-review-editor { padding:12px; }
 .invoice-period { grid-template-columns:1fr; }
 .invoice-line-head { display:none; }
 .invoice-line { grid-template-columns:minmax(0,1fr) 58px 82px 70px 36px; }
 .invoice-line label:first-child { grid-column:1/-1; }
 .invoice-preview { order:2; }
 .finance-close details .button { min-width:170px; white-space:nowrap; }
}
@media(max-width:480px) {
 .finance-credit-form>footer { display:grid; grid-template-columns:1fr 1fr; }
 .finance-credit-form>footer .button { width:100%; }
 .invoice-missing-dialog { width:100%; max-width:100%; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; padding:16px; }
 .invoice-missing-form fieldset { grid-template-columns:minmax(0,1fr); padding:12px; }
 .invoice-missing-form footer { display:grid; grid-template-columns:minmax(0,1fr); }
 .invoice-missing-form footer .button { width:100%; min-width:0; white-space:normal; }
 .invoice-line { grid-template-columns:minmax(0,1fr); gap:8px; padding:10px; border:1px solid var(--line); border-radius:10px; }
 .invoice-line label:first-child,.invoice-line label { grid-column:1; }
 .invoice-line label>.sr-only { position:static; width:auto; height:auto; margin:0 0 4px; overflow:visible; clip-path:none; white-space:normal; display:block; color:var(--text-soft); font-size:11px; }
 .invoice-line .invoice-remove-line { width:100%; min-inline-size:0; }
 .invoice-panel-actions,.month-close-actions { display:grid; grid-template-columns:minmax(0,1fr); }
 .invoice-panel-actions .button,.month-close-actions .button { width:100%; min-width:0; white-space:normal; }
 .month-close-invoice,.month-close-report p { display:grid; gap:4px; }
}

.doc-finance-tools { margin-bottom:12px; font-size:12px; }
.doc-finance-tools .panel-actions { margin-top:8px; }
.reservation-finance-details { min-width:0; }
.reservation-dossier-panel [data-reservation-journey-view="billing"] + .reservation-finance-details { display:block; margin-top:12px; }
.reservation-finance-details .finance-ledger-row { margin-top:8px; }

@media(max-width:600px) {
 .reservation-color-picker { margin:0 0 12px; }
 .reservation-dossier-panel .kv-grid div { grid-template-columns:minmax(0,1fr) auto; gap:12px; }
 .reservation-dossier-panel .kv-grid dt { max-width:none; }
 .reservation-dossier-panel .kv-grid dd { white-space:nowrap; }
 .reservation-dossier-panel .kv-grid .is-text-value { grid-template-columns:minmax(0,1fr); }
 .reservation-dossier-panel .kv-grid .is-text-value dd { white-space:normal; text-align:left; }
}

/* T44 — Ménage : présentation compacte, mêmes actions et données. */
.cleaning-workspace { min-width:0; }
.cleaning-header { display:flex; flex-wrap:nowrap; gap:8px; }
.cleaning-header .segmented { flex:0 1 auto; min-width:0; flex-wrap:nowrap; }
.cleaning-header .button { margin-left:auto; }
.cleaning-alert-banner { margin:0 0 12px; padding:8px 10px; border-radius:10px; background:var(--red-soft); }
.cleaning-alert-banner button { border:0; padding:4px 0; background:transparent; color:var(--red); font:inherit; cursor:pointer; text-align:left; }
.cleaning-alert-banner button[aria-pressed="true"] { text-decoration:underline; font-weight:700; }
.cleaning-today { gap:14px; }
.cleaning-today h3 { margin:0 0 10px; font-size:14px; }
.cleaning-card { gap:10px; padding:12px; font-size:12px; cursor:pointer; }
.cleaning-card > .cleaning-card-open { display:flex; width:100%; align-items:center; min-width:0; gap:2px; font:inherit; font-weight:700; min-height:24px; }
.cleaning-card-open > span:not(.cleaning-name) { flex:none; white-space:nowrap; font-size:11px; }
.cleaning-name,.cleaning-provider-name { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cleaning-card-open .cleaning-name { flex:0 1 auto; }
.cleaning-linen { display:flex; flex-wrap:wrap; gap:4px; }
.cleaning-linen span { padding:3px 6px; border-radius:6px; background:var(--surface-muted); font-size:11px; overflow-wrap:break-word; }
.cleaning-card-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.cleaning-progress { color:var(--text-soft); font-size:11px; }
.cleaning-card-footer .button { width:auto; min-height:32px; padding:4px 8px; font-size:12px; }
.cleaning-week-nav { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.cleaning-week-nav .button { width:auto; min-width:36px; min-inline-size:36px; min-height:36px; padding:6px 8px; }
.cleaning-week-nav strong { font-size:13px; }
.cleaning-week-nav [data-cleaning-current-week] { margin-left:auto; font-size:12px; }
.cleaning-planning { min-width:0; width:100%; }
.cleaning-planning th,.cleaning-planning td { padding:8px 5px; height:58px; font-size:11px; }
.cleaning-planning th:first-child { width:145px; }
.cleaning-planning thead th { height:auto; white-space:nowrap; }
.cleaning-planning .cleaning-provider-name { text-align:left; }
.cleaning-pill { display:flex; align-items:center; gap:4px; width:100%; min-width:0; margin:3px 0; padding:7px 5px; border:1px solid var(--line); border-radius:7px; cursor:pointer; font:inherit; font-size:11px; text-align:left; }
.cleaning-pill .cleaning-name { flex:1; }
.cleaning-pill time { flex:none; white-space:nowrap; }
.cleaning-pill.is-todo,.cleaning-legend .is-todo { background:var(--surface-muted); color:var(--text); }
.cleaning-pill.is-current,.cleaning-legend .is-current { background:var(--amber-soft); color:var(--text); }
.cleaning-pill.is-done,.cleaning-legend .is-done { background:var(--green-soft); color:var(--text); }
.cleaning-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; font-size:11px; }
.cleaning-legend span { padding:3px 7px; border-radius:5px; }
.cleaning-mobile-days { display:none; }
.cleaning-assignment { display:grid; gap:6px; margin:20px 0; font-weight:700; }
.cleaning-assignment select { width:100%; min-width:0; font:inherit; }
.cleaning-side-panel .calendar-panel-content { overflow-wrap:break-word; }
.cleaning-side-panel h2 { min-width:0; overflow-wrap:break-word; }
.cleaning-side-panel h3 { margin:18px 0 8px; }
.cleaning-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.cleaning-photos img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:8px; }
@media(max-width:650px) {
 .cleaning-header { padding:10px; gap:6px; }
 .cleaning-header .segmented { display:flex; padding:2px; gap:0; }
 .cleaning-header .segmented button { padding:6px; min-height:40px; font-size:12px; white-space:nowrap; }
 .cleaning-header > .button { width:auto; padding:6px 8px; min-height:40px; min-inline-size:0; font-size:12px; white-space:nowrap; }
 .cleaning-workspace > .panel-body { padding:12px; }
 .cleaning-today { gap:18px; }
 .cleaning-week-nav { gap:4px; }
 .cleaning-week-nav strong { font-size:12px; }
 .cleaning-week-nav [data-cleaning-current-week] { padding:4px; font-size:11px; }
 .cleaning-week-nav .button { min-width:28px; min-inline-size:28px; }
 .cleaning-planning-scroll { display:none; }
 .cleaning-mobile-days { display:grid; gap:16px; }
 .cleaning-mobile-days h3 { margin:0 0 6px; font-size:13px; text-transform:capitalize; }
 .cleaning-mobile-entry { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); align-items:center; gap:10px; }
 .cleaning-mobile-entry .cleaning-pill { min-height:40px; padding:8px; font-size:12px; }
 .cleaning-mobile-entry > .cleaning-provider-name { font-size:11px; color:var(--text-soft); }
 .cleaning-assignment select { font-size:16px; }
}
.cleaning-header .segmented button[aria-pressed="true"] { color:var(--primary-dark); background:var(--primary-soft); }

/* T44 — retour des captures : attribution et détail lisibles. */
.cleaning-card.is-unassigned { border-color:var(--red); border-left-width:3px; background:var(--red-soft); }
.cleaning-card-footer .cleaning-progress { flex:none; }
.cleaning-card-footer .cleaning-card-provider { display:flex; align-items:center; gap:5px; min-width:0; min-inline-size:0; flex:0 1 auto; max-width:70%; font-size:12px; }
.cleaning-card-provider > [aria-hidden] { flex:none; }
.cleaning-side-panel[open] { gap:8px; }
.cleaning-side-panel .cleaning-next-arrival { margin:0 0 10px; }
.cleaning-panel-summary { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:10px; font-size:12px; }
.cleaning-state-badge { display:inline-block; padding:3px 7px; border-radius:6px; font-weight:700; }
.cleaning-state-badge.is-todo { background:var(--surface-muted); color:var(--text); }
.cleaning-state-badge.is-current { background:var(--amber-soft); color:var(--amber); }
.cleaning-state-badge.is-done { background:var(--green-soft); color:var(--green); }
.cleaning-side-panel .cleaning-assignment { margin:12px 0; }
.cleaning-side-panel .cleaning-photo-empty { margin:8px 0 0; color:var(--text-soft); font-size:12px; }

/* T46 — Paramètres : listes lisibles et réglages dans le panneau commun. */
.settings-content > h2 { font-size:18px; }
.settings-connections { padding:0 16px; }
.settings-connection-row { display:grid; grid-template-columns:32px minmax(0,1fr) auto 16px; align-items:center; gap:12px; width:100%; min-height:64px; padding:14px 0; border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--text); text-align:left; }
.settings-connection-row:last-child { border-bottom:0; }
.settings-service-icon { display:grid; place-items:center; color:var(--primary-dark); }
.settings-service-icon svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.settings-email-status { display:block; font-weight:400; overflow-wrap:break-word; }
.settings-service-name { font-weight:600; overflow-wrap:break-word; }
.settings-connection-row .pill { white-space:normal; text-align:center; }
.settings-messages-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.settings-messages-heading h2 { margin:0; }
.settings-messages-heading label { display:flex; flex-wrap:wrap; align-items:center; gap:8px; min-width:0; }
.settings-messages-heading select { max-width:360px; min-width:0; width:100%; }
.settings-content .panel-body .settings-message-tabs { display:flex; width:100%; flex-direction:row; flex-wrap:nowrap; gap:2px; margin:0 0 16px; padding:3px; }
.settings-content .panel-body .settings-message-tabs button { flex:1 1 0; min-width:0; min-inline-size:0; padding:8px 3px; font-size:12px; white-space:nowrap; }
.auto-reply-settings .panel-body { display:grid; gap:18px; }
.auto-reply-levels { margin:0; padding:0; border:0; }
.auto-reply-levels legend { margin-bottom:10px; font-weight:700; }
.auto-reply-level-choices { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.auto-reply-level-choice { position:relative; min-width:0; margin:0; cursor:pointer; }
.auto-reply-level-choice > input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.auto-reply-level-choice-copy { display:flex; min-height:132px; flex-direction:column; gap:12px; padding:16px; border:1px solid var(--line-strong); border-radius:var(--radius-card,14px); background:var(--surface); color:var(--text-soft); line-height:1.45; transition:border-color 160ms ease,background-color 160ms ease,box-shadow 160ms ease; }
.auto-reply-level-choice-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; color:var(--text); }
.auto-reply-level-choice-heading strong { font-size:16px; }
.auto-reply-level-choice-heading small { padding:3px 8px; border-radius:var(--radius-control); background:var(--primary-soft); color:var(--primary-dark); font-size:11px; font-weight:700; }
.auto-reply-level-choice > input:checked + .auto-reply-level-choice-copy { border-color:var(--primary); background:var(--surface-strong); box-shadow:var(--shadow-soft); }
.auto-reply-level-choice > input:focus-visible + .auto-reply-level-choice-copy { outline:2px solid var(--primary); outline-offset:3px; }
@media (hover: hover) and (pointer: fine) {
.auto-reply-level-choice:hover .auto-reply-level-choice-copy { border-color:var(--primary); }
}
.auto-reply-levels > small { display:block; margin:10px 0 0; color:var(--text-soft); }
.auto-reply-inherit { display:flex!important; grid-template-columns:auto 1fr!important; align-items:center; gap:8px!important; margin-top:12px!important; }
.auto-reply-inherit input { width:auto!important; min-height:auto!important; }
.auto-reply-pause-alert,.auto-reply-suggestion { padding:14px 16px; border:1px solid var(--line-strong); border-radius:var(--radius-card,14px); background:var(--surface-soft); }
.auto-reply-pause-alert p,.auto-reply-suggestion p { margin:5px 0 0; }
.auto-reply-queue,.auto-reply-history { border-top:1px solid var(--line); padding-top:16px; }
.auto-reply-queue article,.auto-reply-history article { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:14px 0; border-bottom:1px solid var(--line); }
.auto-reply-queue article small,.auto-reply-history article small { display:block; margin-top:3px; color:var(--text-soft); }
.auto-reply-queue article p,.auto-reply-history article p { margin:8px 0 0; white-space:pre-wrap; }
.auto-reply-queue article > div:last-child { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; }
.auto-reply-level-marker { width:fit-content; margin:0 0 10px; padding:4px 9px; border-radius:var(--radius-sm); background:var(--surface-soft); color:var(--text-soft); font-size:12px; }
.message-send-queue { display:flex; align-items:center; gap:12px; padding:8px 12px; border-bottom:1px solid var(--line); background:var(--surface-soft); font-size:12px; }
.message-send-queue > div { display:flex; gap:6px; min-width:0; overflow:auto; }
.message-send-queue button { border:1px solid var(--line); border-radius:var(--radius-control); padding:5px 9px; background:var(--surface); color:var(--text); white-space:nowrap; }
.settings-template-list { display:grid; margin-top:16px; }
.settings-template-list .button { display:flex; justify-content:space-between; text-align:left; white-space:normal; }
.settings-content .automatic-template summary { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.settings-content .automatic-template summary > span:first-child { flex:1 1 180px; }
.settings-cohost-link { color:var(--primary-dark); padding:12px 0; font-weight:600; }
.company-logo-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.company-logo-preview { width:80px; height:80px; object-fit:contain; }
.company-logo-controls [role=status] { flex-basis:100%; margin:0; }
.privacy-summary p { margin:0 0 8px; }
.privacy-explanation { margin:16px 0 24px; }
.privacy-action-card { border:1px solid var(--line); border-radius:var(--radius); padding:16px; margin:16px 0; }
.privacy-action-card h3 { margin-top:0; }
.privacy-action-card select { width:100%; min-width:0; }
.privacy-journal { margin-top:20px; }
.settings-connection-panel { width:min(560px,100vw); }
.settings-connection-panel .panel { margin-top:16px; box-shadow:none; }
.settings-connection-panel .panel-header,.settings-connection-panel .panel-body { padding:12px; }
.settings-connection-panel .settings-form { min-width:0; }
.settings-connection-panel input,.settings-connection-panel select { min-width:0; max-width:100%; }
.settings-connection-panel .settings-actions,.settings-connection-panel .row-top { flex-wrap:wrap; }
.settings-connection-panel .button { white-space:normal; height:auto; }
.settings-connection-panel .path-preview code { white-space:normal; overflow-wrap:break-word; }
.settings-ical-property { padding:16px 0; border-bottom:1px solid var(--line); }
.settings-connection-panel .form-grid { display:block; padding:0; }
.settings-connection-panel fieldset { min-width:0; }
.settings-connection-panel .modal-actions { flex-wrap:wrap; }
@media(max-width:700px) {
 .auto-reply-level-choices { grid-template-columns:1fr; }
 .auto-reply-level-choice-copy { min-height:0; }
 .auto-reply-queue article,.auto-reply-history article { grid-template-columns:1fr; }
 .auto-reply-queue article > div:last-child { justify-content:flex-start; }
 .settings-connection-row { grid-template-columns:24px minmax(0,1fr) auto 12px; gap:8px; }
 .settings-connection-row .pill { max-width:100px; font-size:11px; }
 .settings-messages-heading label { width:100%; }
 .settings-messages-heading select { max-width:100%; }
 .settings-connection-panel { width:100%; max-width:100%; }
 .privacy-action-card { padding:12px; }
 .privacy-action-card .button { white-space:normal; height:auto; }
}

/* T47 — live intervention status, using the shared T48 theme tokens. */
.cleaning-check-summary { margin:8px 0; color:var(--text-soft); font-size:13px; }
.cleaning-problem-badge { display:inline-block; width:fit-content; max-width:100%; padding:4px 8px; border-radius:8px; background:var(--red-soft); color:var(--red); font-size:12px; font-weight:700; white-space:normal; }
.cleaning-problem-detail { display:grid; gap:12px; padding:16px 0; border-top:1px solid var(--line); }
.cleaning-problem-detail h3 { color:var(--red); margin:0; font-size:14px; }
.cleaning-problem-detail p { margin:0; white-space:pre-wrap; }
.cleaning-problem-detail small { color:var(--text-soft); }
.cleaning-problem-detail img { width:100%; max-height:240px; object-fit:contain; border-radius:12px; background:var(--surface-muted); }
.cleaning-pill.has-problem { border-inline-start:3px solid var(--red); flex-wrap:wrap; }
.cleaning-pill .cleaning-problem-badge { flex:0 0 100%; font-size:11px; }
.cleaning-alert-banner { display:flex; width:fit-content; max-width:100%; flex-wrap:wrap; gap:12px; }
.today-cleaning-problems { margin-bottom:24px; }

/* T52 — compact page tops, excluding the calendar whose layout is frozen. */
@media (min-width:901px) {
 body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .topbar {
   display:flex; flex-wrap:nowrap; justify-content:flex-start; align-items:center; gap:16px;
   min-height:44px; padding-block:0; margin-bottom:8px;
 }
 body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .topbar > div:first-child { flex:0 0 auto; }
 body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .page-subnav {
   flex:0 1 auto; align-self:center; width:auto; min-width:0; margin:0; padding:2px;
 }
 body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .topbar-actions { flex:0 0 auto; margin-left:auto; }
}
@media(max-width:600px) {
 .today-date { margin-left:18px; }
}

/* T53 — one calendar surface, a single compact toolbar and a full-width grid. */
body[data-current-view="calendar"] .topbar,
body[data-current-view="calendar"] > .page-subnav { display:none !important; }
body[data-current-view="calendar"] .main-area { display:block; min-width:0; padding:10px; }
body[data-current-view="calendar"] #calendarView,
body[data-current-view="calendar"] .calendar-layout,
body[data-current-view="calendar"] .calendar-surface,
body[data-current-view="calendar"] .calendar-workspace,
body[data-current-view="calendar"] .calendar-grid-area { width:100%; min-width:0; max-width:none; }
body[data-current-view="calendar"] .calendar-layout { display:block; }
body[data-current-view="calendar"] .calendar-surface { overflow:hidden; }
body[data-current-view="calendar"] .calendar-planning-body { padding:8px; }
body[data-current-view="calendar"] .calendar-toolbar {
  position:relative; flex-wrap:nowrap; width:100%; min-height:40px; margin:0 0 8px; background:transparent;
}
.calendar-action-short { display:none; }
.calendar-title { flex:0 0 auto; margin:0 10px 0 2px; font-size:21px; line-height:1.2; white-space:nowrap; }
.calendar-month-control { position:relative; display:grid; place-items:center; flex:0 0 122px; min-height:36px; padding:6px 10px; border:1px solid var(--line); border-radius:var(--control-radius); background:color-mix(in srgb,var(--surface) 82%,transparent); box-shadow:var(--shadow-glass-sm); font-size:12px; font-weight:700; white-space:nowrap; cursor:pointer; }
.calendar-month-control input { position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
body .calendar-toolbar > input[type=search] { flex:1 1 120px; width:auto; max-width:280px; }
.calendar-panel-toggle svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.calendar-workspace.is-collapsed .calendar-grid-area { width:100%; }
.calendar-grid-area .stay-timeline-scroll { width:100%; border-radius:12px; }
.calendar-view-switcher { flex:0 0 auto; padding:2px; }
.calendar-view-switcher button { min-height:32px; padding:4px 9px; font-size:11px; white-space:nowrap; }
.calendar-list-view { display:grid; gap:8px; max-height:calc(100dvh - 150px); overflow:auto; padding-right:2px; }
.calendar-day-agenda { min-width:0; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--surface) 88%,transparent); overflow:hidden; }
.calendar-day-agenda > header { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; padding:10px 12px; border-bottom:1px solid var(--line); background:var(--surface-muted); }
.calendar-day-agenda > header h3 { margin:0; font-size:14px; text-transform:capitalize; }
.calendar-day-agenda > header p { margin:2px 0 0; color:var(--text-soft); font-size:11px; }
.calendar-day-agenda > header > span { flex:none; color:var(--text-soft); font-size:11px; }
.calendar-agenda-rows { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; background:var(--line); }
.calendar-agenda-item { display:grid; grid-template-columns:54px minmax(0,1fr); gap:10px; align-items:center; min-width:0; min-height:48px; padding:7px 10px; border:0; border-left:3px solid var(--line-strong); border-radius:0; background:var(--surface); color:var(--text); text-align:left; }
@media (hover: hover) and (pointer: fine) {
.calendar-agenda-item:hover { background:var(--primary-soft); }
}
.calendar-agenda-item time { color:var(--text-soft); font-size:11px; }
.calendar-agenda-item span { min-width:0; }
.calendar-agenda-item strong,.calendar-agenda-item small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.calendar-agenda-item strong { font-size:12px; }
.calendar-agenda-item small { margin-top:2px; color:var(--text-soft); font-size:10px; }
.calendar-agenda-item.is-arrival { border-left-color:var(--green); }
.calendar-agenda-item.is-departure { border-left-color:var(--primary); }
.calendar-agenda-item.is-cleaning { border-left-color:var(--amber); }
.calendar-agenda-item.is-block { border-left-color:var(--text-soft); }
.calendar-agenda-item.is-free { border-left-color:var(--line); }
.calendar-month-overview { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,320px); align-items:start; gap:10px; min-width:0; }
.calendar-month-overview-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); align-self:start; min-width:0; border-top:1px solid var(--line); border-left:1px solid var(--line); }
.calendar-overview-day { display:block; min-width:0; width:100%; height:104px; padding:5px; overflow:hidden; border:0; border-right:1px solid var(--line); border-bottom:1px solid var(--line); border-radius:0; background:var(--surface); color:var(--text); text-align:left; }
@media (hover: hover) and (pointer: fine) {
.calendar-overview-day:hover { background:var(--primary-soft); }
}
.calendar-overview-day.is-muted { background:var(--surface-muted); opacity:.62; }
.calendar-overview-day.is-today { box-shadow:inset 0 3px var(--primary); }
.calendar-overview-day.is-selected { box-shadow:inset 0 0 0 2px var(--primary); }
.calendar-overview-date { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:28px; padding:2px 4px; border-radius:8px; color:var(--text); }
.calendar-overview-date small { color:var(--text-soft); font-size:9px; }
.calendar-overview-pills { display:grid; gap:3px; margin-top:3px; }
.calendar-overview-pills span { display:block; overflow:hidden; padding:2px 4px; border-radius:5px; background:var(--surface-muted); color:var(--text); font-size:9px; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.calendar-overview-pills .is-arrival { background:color-mix(in srgb,var(--green) 18%,var(--surface)); }
.calendar-overview-pills .is-departure { background:color-mix(in srgb,var(--primary) 15%,var(--surface)); }
.calendar-overview-pills .is-cleaning { background:color-mix(in srgb,var(--amber) 18%,var(--surface)); }
.calendar-overview-pills .is-block { background:color-mix(in srgb,var(--text-soft) 14%,var(--surface)); }
.calendar-month-detail { min-width:0; max-height:calc(100dvh - 160px); position:sticky; top:0; align-self:start; overflow:auto; }
.calendar-month-detail.is-empty { display:grid; place-items:center; min-height:220px; border:1px dashed var(--line-strong); border-radius:12px; color:var(--text-soft); }
.calendar-month-detail.is-empty p { margin:0; }
.calendar-month-detail .calendar-agenda-rows { grid-template-columns:1fr; }
.calendar-year-view { min-width:0; max-height:calc(100dvh - 150px); overflow:auto; }
.calendar-year-view > header { display:flex; align-items:baseline; gap:12px; margin-bottom:8px; }
.calendar-year-view > header h2,.calendar-year-view > header p { margin:0; }
.calendar-year-view > header p { color:var(--text-soft); font-size:12px; }
.calendar-year-months { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; min-width:0; }
.calendar-year-month { min-width:0; padding:10px; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--surface) 88%,transparent); color:var(--text); text-align:left; }
@media (hover: hover) and (pointer: fine) {
.calendar-year-month:hover { border-color:var(--primary); background:var(--primary-soft); }
}
.calendar-year-month > header { display:flex; justify-content:space-between; gap:8px; margin-bottom:7px; text-transform:capitalize; }
.calendar-year-month > header span { color:var(--text-soft); font-size:10px; }
.calendar-year-weekdays,.calendar-year-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
.calendar-year-weekdays b { color:var(--text-soft); font-size:8px; text-align:center; }
.calendar-year-day,.calendar-year-days .is-empty { display:grid; place-items:center; aspect-ratio:1; min-width:0; border-radius:3px; font-size:7px; }
.calendar-year-day { background:color-mix(in srgb,var(--primary) calc(var(--calendar-occupancy) * 72%),var(--surface-muted)); color:var(--text); }
.calendar-year-day.is-today { outline:2px solid var(--primary); outline-offset:-1px; font-weight:800; }
@media (min-width:901px) {
  body[data-current-view="calendar"] .calendar-toolbar {
    --calendar-topbar-tools-width:232px;
    --calendar-topbar-tools-gap:8px;
    box-sizing:border-box;
    flex-wrap:wrap;
    padding-right:calc(var(--calendar-topbar-tools-width) + var(--calendar-topbar-tools-gap));
  }
  body[data-current-view="calendar"] .calendar-toolbar > .topbar-tools {
    position:absolute;
    top:0;
    right:0;
    width:var(--calendar-topbar-tools-width);
    justify-content:flex-end;
    margin:0;
  }
  body[data-current-view="calendar"] .calendar-toolbar-actions { margin-right:20px; }
  body[data-current-view="calendar"] .calendar-view-switcher { order:8; flex:0 0 100%; width:max-content; }
  body[data-current-view="calendar"] .calendar-search-control { flex-basis:160px; min-width:160px; }
}
@media (min-width:901px) and (max-width:1280px) {
  body[data-current-view="calendar"] .calendar-toolbar { flex-wrap:wrap; }
  body[data-current-view="calendar"] .calendar-search-control { max-width:none; }
  .calendar-toolbar-actions { min-width:0; margin-left:auto; }
  .calendar-month-overview { grid-template-columns:1fr; }
  .calendar-month-detail { position:static; }
  .calendar-year-months { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (min-width:901px) {
  body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .topbar { align-items:center; }
  body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) #pageTitle,
  body:not([data-current-view="calendar"]):has(.topbar > .page-subnav:not([hidden])) .page-subnav { align-self:center; }
}
@media (max-width:900px), (display-mode:standalone) {
  body[data-current-view="calendar"] .main-area { padding:4px; overflow-x:hidden; }
  body[data-current-view="calendar"] .calendar-planning-body { padding:4px; }
  body[data-current-view="calendar"] .calendar-toolbar { display:grid; grid-template-columns:auto 36px 36px minmax(80px,1fr) auto auto; grid-template-rows:40px 40px; gap:4px; }
  .calendar-title { display:none; }
  .calendar-toolbar > [data-calendar-today] { grid-column:1; grid-row:1; }
  .calendar-toolbar > [data-calendar-prev] { grid-column:2; grid-row:1; }
  .calendar-toolbar > [data-calendar-next] { grid-column:3; grid-row:1; }
  .calendar-toolbar .calendar-month-control { grid-column:4 / 7; grid-row:1; }
  .calendar-month-control { min-width:0; width:100%; min-height:40px; padding-inline:6px; }
  body .calendar-toolbar > input[type=search] { grid-column:1 / 4; grid-row:2; width:100%; max-width:none; min-height:40px; padding-inline:8px; font-size:11px; }
  .calendar-toolbar .calendar-filter-menu { grid-column:4; grid-row:2; }
  .calendar-toolbar-actions { grid-column:5 / 7; grid-row:2; flex-wrap:nowrap; justify-content:flex-end; gap:3px; }
  .calendar-toolbar-actions .button { min-width:0; min-inline-size:0; padding-inline:6px; font-size:11px; }
  .calendar-action-full { display:none; }
  .calendar-action-short { display:inline; }
  .calendar-toolbar-actions .calendar-panel-toggle { flex:0 0 36px; width:36px; }
  .calendar-grid-area :is(.stay-timeline-scroll,.property-month) { max-height:calc(100dvh - 230px); }
  .calendar-view-switcher { grid-column:1 / -1; grid-row:3; width:100%; overflow:auto; }
  .calendar-view-switcher button { flex:1 0 auto; min-height:40px; }
  .calendar-list-view,.calendar-year-view { max-height:calc(100dvh - 280px); }
  .calendar-agenda-rows { grid-template-columns:1fr; }
  .calendar-month-overview { grid-template-columns:1fr; overflow:auto; }
  .calendar-month-overview-grid { min-width:650px; }
  .calendar-month-detail { position:static; }
  .calendar-year-months { grid-template-columns:1fr; }
}

/* T55: only the perimeter of adjacent selected nights is outlined. */
.stay-night-price.is-selected {
  --selection-left:0px; --selection-right:0px; --selection-top:0px; --selection-bottom:0px;
  outline:none;
  background-image:linear-gradient(color-mix(in srgb,var(--primary) 12%,transparent),color-mix(in srgb,var(--primary) 12%,transparent));
  box-shadow:inset var(--selection-left) 0 var(--primary), inset var(--selection-right) 0 var(--primary), inset 0 var(--selection-top) var(--primary), inset 0 var(--selection-bottom) var(--primary);
}
.stay-night-price.selection-left { --selection-left:2px; }
.stay-night-price.selection-right { --selection-right:-2px; }
.stay-night-price.selection-top { --selection-top:2px; }
.stay-night-price.selection-bottom { --selection-bottom:-2px; }
.stay-night-price, .month-night-select { user-select:none; -webkit-touch-callout:none; }
#calendarView.is-selecting .stay-bar { pointer-events:none; }
.stay-night-price.is-long-pressing, .month-night-select.is-long-pressing {
  background-color: color-mix(in srgb, var(--primary) 24%, transparent);
  transition: background-color 450ms linear, box-shadow 450ms linear;
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary) 68%, transparent);
}
.calendar-mixed-value { color:var(--text-muted); font-weight:normal; }
.calendar-selection-count { min-height:1.5em; }
#calendarSelectionAnnouncement.calendar-selection-announcement { position:absolute; width:1px !important; max-width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

/* T65 — client identity, developer-only reserve, and readable two-line titles. */
.sidebar :is(#reserveDrawer,.lab-mention)[hidden] { display:none; }
.developer-mode-setting { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:20px; padding-top:16px; border-top:1px solid var(--line); }
.developer-mode-setting > span { display:grid; gap:4px; }
.developer-mode-setting small { color:var(--text-soft); }
.developer-mode-setting input { flex:none; width:42px; height:24px; }

:is(
  .today-action > strong,
  .today-arrival > strong,
  .calendar-property-name strong,
  .calendar-month-context strong,
  .reservation-compact-row > button > strong,
  .property-view-list .publication-name,
  .property-view-cards .su-property-row-copy strong,
  .property-dense-table td button,
  .cleaning-name,
  .cleaning-provider-name,
  .finance-stay-link,
  .finance-owner-name,
  .messages-conversations .su-thread strong,
  .message-heading-copy > strong,
  .message-heading-property
) {
  display:-webkit-box;
  overflow:hidden;
  max-height:2.5em;
  white-space:normal;
  overflow-wrap:break-word;
  text-overflow:clip;
  line-height:1.25;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}

@media (min-width:900px) {
  .messages-back { display:none !important; }
}

/* T66 — sourced actions, with the same surfaces and radii as T64–T65. */
.earnings-today { gap:16px; }
.dashboard-widgets-page{max-width:100%}.dashboard-widget-toolbar{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.dashboard-widget-add{padding:14px 16px;border:1px dashed var(--line-strong);border-radius:var(--card-radius);background:var(--surface-muted)}.dashboard-widget-add h2{margin:0 0 10px;font-size:15px}.dashboard-widget-add>div{display:flex;flex-wrap:wrap;gap:8px}.dashboard-widget-add button,.dashboard-widget-actions button{min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--text);cursor:pointer}.dashboard-widget-list{display:grid;gap:18px}.dashboard-widget{min-width:0;overflow:clip;border:1px solid var(--glass-edge);border-radius:var(--card-radius);background:var(--glass-surface);box-shadow:var(--shadow-glass)}.dashboard-widget[draggable=true]{outline:1px dashed var(--primary-line);outline-offset:3px}.dashboard-widget.is-dragging{opacity:.55}.dashboard-widget-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 16px;border-bottom:1px solid var(--line)}.dashboard-widget-heading h2{margin:0;font-size:17px}.dashboard-widget-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.dashboard-widget-handle{color:var(--text-soft);cursor:grab}.dashboard-widget-body{min-width:0;padding:18px}.dashboard-widget-tasks .dashboard-widget-body{display:grid;gap:16px}.dashboard-widget-empty{min-height:90px;display:grid;place-items:center;color:var(--text-soft);text-align:center}.dashboard-widget-empty p{margin:0}
.dashboard-occupation{display:flex;align-items:center;justify-content:center;gap:28px;flex-wrap:wrap}.dashboard-occupation p{margin:6px 0;color:var(--text-soft)}.dashboard-ring{--value:0;position:relative;display:grid;place-content:center;width:146px;aspect-ratio:1;flex:0 0 146px;border-radius:50%;text-align:center;background:conic-gradient(var(--primary) calc(var(--value)*1%),var(--surface-strong) 0)}.dashboard-ring:after{content:"";position:absolute;inset:16px;border-radius:50%;background:var(--surface)}.dashboard-ring>*{position:relative;z-index:1}.dashboard-ring strong{font-size:30px;line-height:1}.dashboard-ring span{margin-top:4px;color:var(--text-soft);font-size:12px}
.dashboard-upcoming{display:grid;gap:5px;min-width:0}.dashboard-upcoming-dates,.dashboard-upcoming-row{display:grid;grid-template-columns:minmax(180px,1.4fr) repeat(15,minmax(10px,1fr));align-items:center;gap:4px}.dashboard-upcoming-dates time{color:var(--text-soft);font-size:10px;text-align:center}.dashboard-upcoming-row>strong{min-width:0;white-space:normal;line-height:1.2;font-size:12px}.dashboard-night{width:100%;min-width:0;min-height:24px;padding:0;border:0;border-radius:5px;background:var(--surface-strong);box-shadow:none}.dashboard-night.is-booked{background:var(--primary)}.dashboard-night.is-isolated{background:var(--amber);box-shadow:inset 0 0 0 2px var(--surface)}.dashboard-widget-key{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px;color:var(--text-soft);font-size:11px}.dashboard-widget-key span{display:flex;align-items:center;gap:5px}.dashboard-widget-key i{width:12px;height:12px;border-radius:4px;background:var(--surface-strong)}.dashboard-widget-key i.is-booked{background:var(--primary)}.dashboard-widget-key i.is-isolated{background:var(--amber)}
.dashboard-timeline{display:grid;gap:9px}.dashboard-timeline-hours,.dashboard-timeline-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,5fr);gap:12px;align-items:center}.dashboard-timeline-hours{grid-template-columns:minmax(120px,1fr) repeat(7,minmax(0,5fr));color:var(--text-soft);font-size:10px}.dashboard-timeline-hours time{text-align:center}.dashboard-timeline-row>strong{overflow:clip;white-space:nowrap;font-size:12px}.dashboard-timeline-track{position:relative;min-width:0;height:62px;border-radius:10px;background:linear-gradient(90deg,var(--line) 1px,transparent 1px) 0 0/16.666% 100%,var(--surface-muted)}.dashboard-now{position:absolute;z-index:4;inset:-5px auto -5px 0;width:2px;background:var(--red)}.dashboard-timeline-event{position:absolute;left:var(--event-left);top:4px;z-index:2;max-width:32%;min-height:24px;padding:3px 8px;transform:translateX(-12%);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-strong);color:var(--text);font-size:10px;white-space:nowrap;box-shadow:none}.dashboard-timeline-event.is-departure{z-index:3;background:var(--surface-strong)}.dashboard-timeline-event.is-cleaning{top:34px;width:var(--event-width);max-width:none;min-width:28px;overflow:clip;transform:none;background:var(--green-faint);border-color:var(--green)}.dashboard-timeline-event.is-arrival{z-index:3;background:var(--rose);border-color:var(--red)}.dashboard-timeline-event.is-unassigned{border-style:dashed}.dashboard-timeline-event.is-cleaning.has-conflict{outline:2px solid var(--red);outline-offset:2px}.dashboard-timeline-row>p{grid-column:2;margin:-5px 0 4px;color:var(--red);font-size:11px}
.dashboard-reviews{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,2fr);gap:24px;width:100%;padding:0;border:0;background:transparent;color:var(--text);text-align:left;box-shadow:none}.dashboard-reviews>div:first-child{display:grid;align-content:center;justify-content:center;text-align:center}.dashboard-reviews>div:first-child strong{font-size:42px}.dashboard-reviews>div:first-child small{display:block;color:var(--text-soft)}.dashboard-reviews>div:last-child{display:grid;gap:7px}.dashboard-reviews>div:last-child>span{display:grid;grid-template-columns:38px minmax(0,1fr) 25px;gap:8px;align-items:center;font-size:11px}.dashboard-reviews b{font-weight:600}.dashboard-reviews i{height:8px;overflow:clip;border-radius:var(--radius-sm);background:var(--surface-strong)}.dashboard-reviews em{display:block;height:100%;border-radius:inherit;background:var(--amber)}
.dashboard-countries{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:28px}.dashboard-country-donut{position:relative;display:grid;place-content:center;width:140px;aspect-ratio:1;border-radius:50%;text-align:center}.dashboard-country-donut:after{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--surface)}.dashboard-country-donut>*{position:relative;z-index:1}.dashboard-country-donut strong{font-size:28px}.dashboard-country-donut span{color:var(--text-soft);font-size:11px}.dashboard-countries ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.dashboard-countries li{display:grid;grid-template-columns:10px minmax(0,1fr) auto 28px;gap:8px;align-items:center}.dashboard-countries li i{width:10px;height:10px;border-radius:50%;background:var(--primary)}.dashboard-countries li i.is-violet{background:var(--nav-reservations)}.dashboard-countries li i.is-blue{background:var(--nav-calendar)}.dashboard-countries li i.is-green{background:var(--green)}.dashboard-countries li i.is-amber{background:var(--amber)}.dashboard-countries li i.is-gray{background:var(--text-soft)}.dashboard-countries li small{color:var(--text-soft);text-align:right}
.dashboard-simple-metric{display:grid;justify-items:center;gap:5px}.dashboard-simple-metric strong{font-size:36px}.dashboard-simple-metric small{color:var(--text-soft)}.dashboard-event-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.dashboard-event-list li{display:grid;grid-template-columns:52px minmax(110px,.8fr) minmax(0,1fr);gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.dashboard-heatmap{display:grid;grid-template-columns:repeat(20,minmax(8px,1fr));gap:5px}.dashboard-heatmap i{aspect-ratio:1;border-radius:4px;background:color-mix(in srgb,var(--primary) calc(var(--level)*100%),var(--surface-strong))}.dashboard-booking-pace{display:flex;align-items:end;justify-content:space-around;height:130px;border-bottom:1px solid var(--line)}.dashboard-booking-pace span{display:grid;align-items:end;justify-items:center;height:100%}.dashboard-booking-pace i{align-self:end;width:22px;max-height:110px;border-radius:6px 6px 0 0;background:var(--primary)}.dashboard-booking-pace small{color:var(--text-soft)}.dashboard-health{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-health span{display:grid;gap:4px;padding:16px;border-radius:14px;background:var(--surface-muted);color:var(--text-soft)}.dashboard-health strong{color:var(--text);font-size:24px}
@media(min-width:901px) and (max-width:1100px){.today-compact .today-arrival{grid-template-columns:60px 20px minmax(120px,1fr) minmax(160px,1.2fr) auto;gap:8px}}
@media(max-width:600px){.dashboard-widget-heading{align-items:flex-start;padding:9px 11px}.dashboard-widget-heading h2{font-size:15px}.dashboard-widget-body{padding:12px 10px}.dashboard-widget-actions{gap:3px}.dashboard-widget-actions button{min-height:32px;padding:5px 7px;font-size:11px}.dashboard-widget-handle{display:none}.dashboard-upcoming-dates,.dashboard-upcoming-row{grid-template-columns:minmax(84px,1fr) repeat(15,minmax(7px,1fr));gap:2px}.dashboard-night{min-height:22px}.dashboard-upcoming-row>strong{font-size:10px}.dashboard-timeline-hours,.dashboard-timeline-row{grid-template-columns:minmax(72px,.8fr) minmax(0,3fr);gap:6px}.dashboard-timeline-hours{grid-template-columns:minmax(72px,.8fr) repeat(7,minmax(0,3fr))}.dashboard-timeline-hours time:nth-of-type(even){visibility:hidden}.dashboard-timeline-event{max-width:42%;padding-inline:5px;font-size:9px}.dashboard-timeline-event.is-cleaning{max-width:none}.dashboard-timeline-row>strong{font-size:10px}.dashboard-reviews{grid-template-columns:90px minmax(0,1fr);gap:12px}.dashboard-reviews>div:first-child strong{font-size:32px}.dashboard-countries{grid-template-columns:95px minmax(0,1fr);gap:14px}.dashboard-country-donut{width:90px}.dashboard-country-donut:after{inset:12px}.dashboard-country-donut strong{font-size:22px}.dashboard-health{grid-template-columns:1fr}.dashboard-heatmap{grid-template-columns:repeat(15,minmax(8px,1fr))}.dashboard-event-list li{grid-template-columns:45px minmax(0,1fr)}.dashboard-event-list li span{grid-column:2}}
/* T78 — two-column dashboard rhythm: small widgets use one cell, large widgets span both. */
.dashboard-widget-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
.dashboard-widget.is-large { grid-column:1 / -1; }
@media(max-width:700px) {
  .dashboard-widget-list { grid-template-columns:minmax(0,1fr); }
  .dashboard-widget.is-large { grid-column:auto; }
}
.earnings-header h2 { margin:0; font-size:clamp(20px,2.1vw,28px); line-height:1.3; font-weight:600; text-wrap:balance; }
.earnings-header h2 span { color:var(--text); }
.earnings-header p { margin:8px 0 0; max-width:80ch; font-size:16px; line-height:1.5; color:var(--text-soft); }
.earnings-counters { display:flex; flex-wrap:wrap; gap:8px 20px; padding:0 0 12px; border-bottom:1px solid var(--line); }
.earnings-counters button { display:inline-flex; align-items:baseline; gap:5px; min-height:36px; padding:0; border:0; background:transparent; color:var(--text-soft); font:inherit; font-size:16px; cursor:pointer; }
.earnings-counters strong { font-size:16px; font-weight:600; color:var(--text); }
.earnings-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.earnings-card { display:grid; grid-template-columns:24px minmax(0,1fr); gap:12px; padding:20px; border:1px solid var(--line); border-radius:var(--radius-lg); background:var(--surface); color:var(--text); }
.earnings-icon { color:var(--text-soft); padding-top:2px; }
.earnings-copy { min-width:0; }
.earnings-copy h3 { margin:0; font-size:16px; font-weight:600; line-height:1.4; }
.earnings-copy p { margin:4px 0 0; font-size:16px; color:var(--text-soft); line-height:1.4; }
.earnings-copy :is(h3,p) { display:block; overflow:visible; max-height:none; white-space:normal; overflow-wrap:break-word; text-overflow:clip; -webkit-line-clamp:unset; }
.earnings-value { grid-column:2; display:flex; flex-direction:column; gap:2px; }
.earnings-value strong { font-size:24px; line-height:1.3; font-weight:600; font-variant-numeric:tabular-nums; }
.earnings-value small { font-size:16px; color:var(--text-soft); }
.earnings-details { grid-column:2; min-width:0; font-size:16px; line-height:1.4; }
.earnings-details ul { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.earnings-details li { display:flex; flex-direction:column; gap:2px; overflow-wrap:break-word; }
.earnings-details small { font-size:16px; color:var(--text-soft); }
.earnings-details summary { padding:12px 0; cursor:pointer; color:var(--text); }
.earnings-more-messages { grid-column:1 / -1; justify-self:start; min-height:44px; font-size:16px; }
.earnings-card > button { grid-column:2; justify-self:start; min-height:44px; font-size:16px; white-space:normal; }
.earnings-today .today-action > :is(strong,small) { display:block; overflow:visible; max-height:none; white-space:normal; text-overflow:clip; -webkit-line-clamp:unset; font-size:16px; line-height:1.4; }
.earnings-today .today-action { grid-template-columns:20px minmax(0,1fr) auto; }
.earnings-today .today-action > strong { grid-column:2; }
.earnings-today .today-action > small { grid-column:2; grid-row:2; }
.earnings-today .today-action > .pill { grid-column:3; grid-row:1; }
.earnings-today .today-action > button { grid-column:3; grid-row:2; font-size:16px; }
@media(max-width:900px) {
  .earnings-cards { grid-template-columns:minmax(0,1fr); }
  .earnings-card { padding:16px; }
  .earnings-counters { gap:4px 14px; }
  .earnings-counters button, .earnings-counters strong { font-size:16px; }
}

/* T96: keep the financial decomposition readable below the compact mobile row. */
@media (max-width:767px) {
 .finance-table .finance-secondary-amount[data-finance-label] { display:flex; grid-column:1 / -1; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:2px 8px; padding-block:3px; font-size:11px; }
 .finance-table [data-finance-label]::before { content:attr(data-finance-label); color:var(--text-soft); margin-right:auto; }
 .finance-table [data-finance-label] small { flex-basis:100%; text-align:right; white-space:normal; }
}

/* T101: designation remains readable in the invoice editor and preview. */
.invoice-line textarea{width:100%;min-width:0;min-height:80px;box-sizing:border-box;white-space:pre-wrap;overflow-wrap:break-word;resize:vertical}
.invoice-line textarea:disabled{opacity:1;color:var(--text-soft);background:var(--surface-muted)}
