/* Product interface styling inspired by the polished local demo. */
:root {
  --ink: #1d2939;
  --ink-soft: #667085;
  --forest: #0f766e;
  --forest-deep: #162536;
  --mint: #dff8f2;
  --gold: #d6a84b;
  --paper: #ffffff;
  --canvas: #f5f7f8;
  --line: #e1e7ec;
  --danger: #b42318;
  --success: #067647;
  --warning: #a15c07;
  --shadow: 0 8px 24px rgba(16, 24, 40, .055);
  --radius: 16px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body { background: var(--canvas); }
/* The signed-in header already identifies the local pilot. Keep the welcome notice on login only. */
body:has(.shell) > .pilot-notice { display: none; }
.shell { grid-template-columns: 264px minmax(0, 1fr); }
.sidebar {
  z-index: 50;
  height: 100dvh;
  min-height: 0;
  overflow: hidden;
  gap: 24px;
  padding: 24px 18px 18px;
  color: #e5edf4;
  background: #162536;
  border-right: 1px solid #27384a;
}
.brand { gap: 11px; font-size: 15px; }
.brand-mark, .loading-mark {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: linear-gradient(145deg, #16a394, #0f766e);
  box-shadow: 0 7px 18px rgba(15, 118, 110, .24);
  font: 750 21px/1 ui-sans-serif, system-ui, sans-serif;
}
.brand small { color: #9cafc1; font-size: 9px; letter-spacing: .1em; }
.sidebar > .brand, .sidebar-footer { flex-shrink: 0; }
.sidebar-nav { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior: contain; align-content: start; gap: 5px; padding: 3px; scrollbar-width: thin; scrollbar-color: #73879a transparent; }
.sidebar-nav .nav-button { min-height: 44px; }
.nav-button:focus-visible { outline: 2px solid #5eead4; outline-offset: -2px; }
.nav-label { margin: 0 10px 7px; color: #91a4b8; font-size: 9px; letter-spacing: .13em; }
.nav-button { min-height: 40px; padding: 9px 11px; color: #c2cfda; border-radius: 10px; font-size: 12px; font-weight: 620; transition: background .16s ease, color .16s ease, transform .16s ease; }
.nav-button:hover, .nav-button:focus-visible { color: #fff; background: #22374b; }
.nav-button.active { color: #fff; background: #0f766e; box-shadow: 0 4px 12px rgba(15, 118, 110, .2); }
.nav-icon { width: 20px; font-size: 15px; }
.sidebar-footer { gap: 8px; }
.user-chip { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px; border-color: #34475a; border-radius: 12px; }
.user-chip > span:last-child { display: grid; min-width: 0; gap: 3px; }
.user-chip strong, .user-chip small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-chip strong { color: #f6f8fa; font-size: 11px; }
.user-chip small { color: #9cafc1; font-size: 10px; }
.user-avatar { display: grid; flex: 0 0 34px; place-items: center; width: 34px; height: 34px; color: #0d4944; background: #ccfbf1; border-radius: 9px; font-size: 9px; font-weight: 850; }
.workspace { min-width: 0; }
.desktop-topbar {
  position: sticky;
  top: 0;
  z-index: 45;
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px clamp(22px, 3vw, 46px);
  background: rgba(255, 255, 255, .9);
  border-bottom: 1px solid rgba(226, 231, 236, .9);
  backdrop-filter: blur(16px);
}
.topbar-breadcrumb { display: flex; align-items: center; gap: 8px; min-width: 0; color: #98a2b3; font-size: 11px; }
.topbar-breadcrumb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar-breadcrumb i { color: #d0d5dd; font-style: normal; }
.topbar-breadcrumb strong { overflow: hidden; color: #344054; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.live-status { display: flex; align-items: center; gap: 7px; padding: 7px 9px; color: #526171; background: #f7f9fa; border: 1px solid #e2e7ec; border-radius: 9px; font-size: 10px; font-weight: 700; white-space: nowrap; }
.live-status i { width: 7px; height: 7px; background: #f0a33a; border-radius: 50%; box-shadow: 0 0 0 3px #fff1d6; }
.topbar-avatar { display: grid; place-items: center; width: 34px; height: 34px; color: #0d4944; background: #ccfbf1; border: 0; border-radius: 10px; font-size: 9px; font-weight: 850; }
.main { max-width: 1680px; margin: 0 auto; padding: 30px clamp(22px, 3vw, 46px) 60px; }
.page-header { align-items: center; margin-bottom: 22px; }
.eyebrow { margin-bottom: 6px; color: #0f766e; font-size: 10px; letter-spacing: .14em; }
h1 { font: 720 clamp(27px, 3vw, 36px)/1.15 ui-sans-serif, system-ui, sans-serif; letter-spacing: -.035em; }
h2 { font: 710 clamp(18px, 2vw, 23px)/1.25 ui-sans-serif, system-ui, sans-serif; letter-spacing: -.025em; }
h3 { font-size: 15px; letter-spacing: -.015em; }
.lede { color: #667085; font-size: 13px; line-height: 1.55; }
.card { padding: clamp(18px, 2vw, 24px); background: #fff; border-color: #e3e8ed; box-shadow: var(--shadow); }
.card + .card { margin-top: 16px; }
.grid > .card { margin: 0; min-width: 0; }
.card + .grid, .grid + .card, .grid + .grid { margin-top: 16px; }
.card-header { align-items: center; margin-bottom: 16px; }
.grid { gap: 14px; }
.booking-capacity-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, .38fr);
  align-items: center;
  gap: 14px;
  margin: 12px 0;
  padding: 14px 16px;
  background: #f0fdfa;
  border: 1px solid #bce9df;
  border-radius: 12px;
}
.booking-capacity-summary strong, .booking-capacity-summary span { display: block; }
.booking-capacity-summary strong { color: #134e4a; font-size: 13px; }
.booking-capacity-summary span { margin-top: 3px; color: #526171; font-size: 12px; }
.booking-unit-breakdown { display: block; margin-top: 6px; color: #0f766e; font-size: 12px; font-weight: 650; }
.booking-capacity-summary progress { width: 100%; height: 10px; accent-color: #0f766e; }
.booking-add-unit { display: grid; gap: 12px; margin: 16px 0; padding: 16px; background: linear-gradient(180deg, #fbfdfd, #f7fafb); border: 1px solid #e3e8ed; border-radius: 14px; }
.booking-add-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.booking-add-heading h3, .booking-add-heading p { margin: 0; }
.booking-add-heading h3 { font-size: 14px; }
.booking-add-heading p { margin-top: 4px; color: #667085; font-size: 12px; }
.booking-add-count, .booking-add-type { display: inline-flex; align-items: center; padding: 4px 8px; color: #475467; background: #eef2f5; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.booking-add-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 265px), 1fr)); gap: 10px; }
.booking-add-card { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; padding: 14px; background: #fff; border: 1px solid #dbe4e8; border-radius: 12px; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.booking-add-card:hover { border-color: #9bd9d0; box-shadow: 0 5px 16px rgba(16, 24, 40, .06); transform: translateY(-1px); }
.booking-add-card.fits-capacity { background: #fbfffe; border-color: #9bd9d0; }
.booking-add-card h4, .booking-add-card p { margin: 0; }
.booking-add-card h4 { margin-top: 7px; font-size: 14px; }
.booking-add-card p { margin-top: 3px; color: #667085; font-size: 12px; }
.booking-add-type { padding: 3px 7px; color: #0f766e; background: #e7f7f3; font-size: 10px; }
.booking-add-card-action { display: grid; justify-items: end; gap: 7px; }
.booking-add-card-action > small { color: #667085; font-size: 11px; white-space: nowrap; }
.booking-capacity-hint { display: block; margin-top: 6px; color: #667085; font-size: 12px; }
.access-codes-workspace { display: grid; gap: 18px; min-width: 0; }
.access-codes-workspace > .page-header, .access-codes-workspace > .card { margin: 0; min-width: 0; }
.access-codes-workspace .card-header { flex-wrap: wrap; }
.access-code-card > div { min-width: 0; overflow-wrap: anywhere; }
.access-code-list { display: grid; gap: 12px; }
.access-code-card { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; border: 1px solid #dbe4e8; border-radius: 14px; background: #fff; }
.access-code-card h3, .access-code-card p { margin: 0; }
.access-code-card h3 { margin: 5px 0; }
.access-code-secret { display: flex; align-items: center; gap: 12px; }
.access-code-secret code { min-width: 92px; color: #134e4a; font-size: 18px; font-weight: 750; letter-spacing: .08em; text-align: center; }
@media(max-width:700px) { .access-code-card, .access-code-secret { align-items: stretch; flex-direction: column; } }
.booking-selected-units { display: grid; gap: 12px; margin-top: 14px; }
.booking-wizard-form { display: grid; gap: 16px; }
.booking-direct-editor { display: grid; gap: 16px; }
.booking-direct-editor > .card.full { margin: 0; min-width: 0; }
.booking-direct-editor > .form-actions { justify-content: flex-end; gap: 10px; padding: 14px; background: rgba(255,255,255,.96); border: 1px solid #e4e9ed; border-radius: 14px; }
.extension-contract { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; border-left: 4px solid #28766d; }
.extension-contract > div { display: grid; gap: 6px; align-content: start; }
.extension-contract b { color: #244c47; font-size: 13px; }
.extension-contract span { color: #667085; font-size: 13px; line-height: 1.5; }
.server-bookings > .server-workspace > .page-header .lede { max-width: 64ch; }
.server-bookings .booking-review-grid { margin-top: 10px; }
.server-bookings .booking-unit-card > header > strong { color: #285a53; white-space: nowrap; }
.server-bookings .booking-search-shell { display: grid; gap: 0; margin: 0 0 16px; padding: 10px 12px; }
.server-bookings .booking-search-toolbar { display: flex; align-items: center; gap: 12px; min-width: 0; }
.server-bookings .booking-search-toggle { flex: 0 0 auto; min-height: 40px; gap: 8px; white-space: nowrap; }
.server-bookings .booking-search-toggle > span:first-child { display: inline-grid; place-items: center; width: 20px; height: 20px; color: #0f766e; border-radius: 7px; background: #e7f7f3; font-size: 20px; line-height: 1; }
.server-bookings .booking-search-chevron { margin-left: 2px; color: #667085; font-size: 14px; }
.server-bookings .booking-search-summary { flex: 1 1 auto; min-width: 0; margin: 0; overflow: hidden; color: #667085; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.server-bookings .booking-search-summary:not(:only-child) { color: #344054; }
.server-bookings .booking-search-toolbar > [data-booking-action="reset-search"] { flex: 0 0 auto; min-height: 36px; padding: 7px 10px; color: #526171; font-size: 12px; }
.server-bookings .booking-search-panel { margin-top: 12px; padding-top: 14px; border-top: 1px solid #e8edef; }
.server-bookings .booking-search-panel[hidden] { display: none !important; }
.server-bookings .booking-search-form { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.server-bookings .booking-search-row--primary { display: grid; grid-template-columns: minmax(0,2fr) minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.server-bookings .booking-search-row--dates { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; align-items: start; gap: 12px; padding-top: 14px; border-top: 1px solid #edf1f3; }
.server-bookings .booking-search-form .booking-search-actions { grid-column: auto; margin: 0; padding-top: 25px; }
.server-bookings .booking-notes-content { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media(max-width:900px) { .server-bookings .booking-search-row--primary { grid-template-columns: repeat(2,minmax(0,1fr)); } .server-bookings .booking-search-query { grid-column: 1/-1; } }
@media(max-width:540px) { .server-bookings .booking-search-row--primary, .server-bookings .booking-search-row--dates { grid-template-columns: minmax(0,1fr); } .server-bookings .booking-search-form .booking-search-actions { padding-top:0; } .server-bookings .booking-search-actions .button { width:100%; } }
.server-bookings .booking-search-form > .field:first-child { grid-column: span 2; }
.server-bookings .booking-search-form .form-actions { grid-column: 1 / -1; justify-content: flex-end; margin-top: 0; }
.booking-wizard-steps { box-sizing: border-box; width: 100%; margin: 0 0 16px; padding: 16px 20px; background: #fff; border: 1px solid #e4e9ed; border-radius: 14px; box-shadow: 0 2px 8px rgba(16,24,40,.04); }
.booking-wizard-steps ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.booking-wizard-step span { overflow-wrap: anywhere; }
@media(max-width:700px){.booking-wizard-steps ol{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:12px}.booking-wizard-steps .booking-wizard-step{font-size:11px}.booking-wizard-steps li:nth-child(3)::after{display:none}}
.booking-wizard-steps li { position: relative; }
.booking-wizard-steps li:not(:last-child)::after { position: absolute; top: 16px; left: calc(50% + 22px); width: calc(100% - 32px); height: 1px; background: #e1e7eb; content: ""; }
.booking-customer-picker, .booking-wizard-form { box-sizing: border-box; width: 100%; }
.booking-customer-picker { margin-bottom: 14px; }
.booking-customer-picker > h2, .booking-wizard-panel > h2 { margin-top: 0; }
.room-guest-names { grid-column: 1 / -1; display: grid; gap: 9px; margin: 4px 0 0; padding: 12px; border: 1px solid #e4e9ed; border-radius: 12px; }
.room-guest-names legend { padding: 0 6px; color: #475467; font-size: 12px; font-weight: 700; }
.room-guest-row { display: grid; grid-template-columns: 58px 88px minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 8px; }
.room-guest-row span { color: #667085; font-size: 11px; font-weight: 650; }
.booking-wizard-step { display: flex; flex-direction: column; align-items: center; gap: 7px; min-width: 0; color: #8994a2; font-size: 12px; font-weight: 650; text-align: center; }
.booking-wizard-step b { position: relative; z-index: 1; display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #d9e0e5; border-radius: 50%; background: #fff; font-size: 12px; }
.booking-wizard-step.active { color: #0f766e; }
.booking-wizard-step.active b, .booking-wizard-step.done b { color: #fff; border-color: #0f766e; background: #0f766e; }
.booking-wizard-step span { max-width: 100%; line-height: 1.25; }
.booking-wizard-panel[hidden], [data-booking-step-panel][hidden] { display: none !important; }
.booking-wizard-panel { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); align-content: start; gap: 14px; padding: 2px 0; }
.booking-separate-rooms { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 14px 16px; background: #f1faf8; border: 1px solid #cfe8e3; border-radius: 12px; }
.booking-separate-rooms > div { display: grid; gap: 4px; }
.booking-separate-rooms strong { color: #245d55; font-size: 13px; }
.booking-separate-rooms small { color: #667085; font-size: 12px; line-height: 1.45; }
.booking-separate-rooms .full { flex-basis: 100%; }
.booking-availability-result { grid-column: 1 / -1; display: grid; gap: 12px; padding: 14px; color: #245d55; background: #f8fbfa; border: 1px solid #dcebe7; border-radius: 13px; }
.booking-dialog:has(.booking-wizard-form) { height: min(94dvh, 1000px); }
.booking-dialog-content:has(.booking-wizard-form) { flex: 1; }
@media(max-width:640px) { .booking-dialog:has(.booking-wizard-form) { height: 100dvh; } }
[data-booking-availability-region] { grid-column: 1 / -1; min-width: 0; overflow-anchor: none; }
.booking-availability-progress { min-height: 1.5em; margin: 0 0 8px; color: #667085; font-size: 13px; }
[data-booking-availability-region][aria-busy="true"] .booking-availability-result { opacity: .55; }
.booking-availability-result > header { display: grid; gap: 4px; }
.booking-availability-result > header strong { font-size: 15px; }
.booking-availability-result small { color: #667085; line-height: 1.45; }
.booking-availability-cards { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(100%,235px),1fr)); gap: 10px; }
.booking-availability-card { display: grid; gap: 11px; min-width: 0; padding: 13px; background: #fff; border: 1px solid #dfe7e5; border-radius: 11px; box-shadow: 0 2px 7px rgba(16,24,40,.035); }
.booking-availability-card > div:first-child { display: grid; gap: 4px; }
.booking-availability-card > div:first-child strong { color: #193b39; font-size: 15px; }
.booking-availability-card > div:first-child small { color: #667085; font-size: 11px; }
.booking-availability-capacity { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding-top: 8px; border-top: 1px solid #edf1f0; color: #344054; font-size: 12px; font-weight: 700; }
.booking-availability-fit { display: block; padding: 6px 8px; border-radius: 7px; font-size: 11px; font-weight: 700; }
.booking-availability-fit.fits { color: #146050; background: #e8f7f1; }
.booking-availability-fit.partial { color: #855600; background: #fff6df; }
.booking-property-groups { display: grid; gap: 22px; min-width: 0; }
.booking-overflow-choice { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr) minmax(200px,280px); align-items: center; gap: 14px; padding: 18px; border: 1px solid #b8d8d0; border-radius: 14px; background: #edf8f4; }
.booking-overflow-choice strong { color: #1d5b4d; font-size: 14px; }
.booking-overflow-choice p { margin: 5px 0 0; color: #556e66; font-size: 12px; line-height: 1.5; }
.booking-overflow-choice .field { margin: 0; min-width: 0; }
.booking-property-allocations { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.booking-property-allocation { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 8px 10px; border: 1px solid #d1e5dd; border-radius: 9px; background: #fff; color: #556e66; font-size: 12px; }
.booking-property-allocation strong { font-size: 12px; }
@media(max-width:700px) { .booking-overflow-choice { grid-template-columns: minmax(0,1fr); padding: 14px; } }
.booking-property-group { min-width: 0; overflow: hidden; background: #fff; border: 1px solid #cadbd8; border-radius: 16px; box-shadow: 0 3px 12px rgba(16,42,38,.04); }
.booking-property-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; background: #eaf3f1; border-bottom: 1px solid #d6e5e1; }
.booking-group-eyebrow { color: #52736c; font-size: 10px; font-weight: 750; letter-spacing: .12em; }
.booking-property-heading h3 { margin: 4px 0 0; color: #183e37; font-size: 18px; }
.booking-property-heading p { margin: 5px 0 0; color: #5f746e; font-size: 12px; }
.booking-group-count { flex-shrink: 0; padding: 6px 9px; border: 1px solid #d0e2dc; border-radius: 8px; color: #3d655b; background: #fff; font-size: 11px; font-weight: 650; }
.booking-property-content { display: grid; gap: 18px; padding: 16px; }
.booking-unit-group { min-width: 0; padding: 14px; border: 1px solid #e0e7e9; border-radius: 12px; background: #f6f8fa; }
.booking-unit-heading { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; padding-left: 10px; border-left: 3px solid #6b9d93; }
.booking-unit-heading h4 { margin: 0; color: #263f48; font-size: 15px; }
.booking-unit-heading p { margin: 4px 0 0; color: #667085; font-size: 12px; }
.booking-direct-rooms { padding: 0; border: 0; background: transparent; }
.booking-group-cards { grid-template-columns: repeat(2,minmax(0,1fr)); align-items: stretch; }
.booking-group-cards > .booking-whole-option { grid-column: 1 / -1; border-color: #9fc9be; background: #f0faf6; }
.booking-whole-label { color: #21735e; font-size: 10px; font-weight: 750; letter-spacing: .05em; text-transform: uppercase; }
.booking-property-group .booking-add-card { flex-wrap: wrap; }
.booking-property-group .booking-add-card-main { flex: 1 1 170px; min-width: 0; }
.booking-property-group .booking-add-card-action { margin-left: auto; }
.booking-property-group :is(h3,h4,p,strong,small) { overflow-wrap: anywhere; }
@media(max-width:700px) {
  .booking-group-cards { grid-template-columns: minmax(0,1fr); }
  .booking-property-heading { padding: 13px; flex-wrap: wrap; }
  .booking-property-content { padding: 10px; gap: 12px; }
  .booking-unit-group { padding: 10px; }
  .booking-direct-rooms { padding: 0; }
  .booking-property-group .booking-availability-capacity { flex-wrap: wrap; }
}
.booking-wizard-panel > h2, .booking-wizard-panel > h3, .booking-wizard-panel > .help, .booking-wizard-panel > .booking-capacity-summary, .booking-wizard-panel > .booking-add-unit, .booking-wizard-panel > .booking-selected-units, .booking-wizard-panel > .booking-review-grid, .booking-wizard-panel > .booking-review-units, .booking-wizard-panel > .booking-price-summary, .booking-wizard-panel > .empty { grid-column: 1 / -1; }
.booking-wizard-panel > h2 { margin: 0; }
.booking-wizard-actions { display: flex; justify-content: space-between; gap: 10px; padding-top: 14px; border-top: 1px solid #e7ecef; }
.booking-price-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; padding: 14px; background: #f8fafc; border: 1px solid #e3e8ed; border-radius: 12px; }
.booking-price-summary > div { display: grid; gap: 5px; }
.booking-price-summary span, .booking-price-summary small { color: #667085; font-size: 12px; }
.booking-price-summary strong { color: #344054; font-size: 15px; }
.booking-price-summary .booking-price-total { padding-left: 14px; border-left: 1px solid #dbe4e8; }
.booking-price-summary .booking-price-total strong { color: #0f766e; font-size: 18px; }
.booking-price-summary > small { grid-column: 1 / -1; }
.booking-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.booking-review-grid article { display: grid; align-content: start; gap: 5px; padding: 13px; background: #f8fafc; border: 1px solid #e3e8ed; border-radius: 11px; }
.booking-review-grid span, .booking-review-grid small { color: #667085; font-size: 11px; }
.booking-review-grid strong { color: #344054; font-size: 13px; overflow-wrap: anywhere; }
.booking-review-units { display: grid; gap: 8px; }
.booking-review-unit { display: grid; grid-template-columns: minmax(150px, 1.3fr) minmax(120px, .8fr) minmax(130px, 1fr); gap: 10px; align-items: center; padding: 12px; border: 1px solid #e3e8ed; border-radius: 10px; background: #fff; font-size: 12px; }
.booking-review-unit > div { display: grid; gap: 3px; }
.booking-review-unit small { color: #667085; font-size: 11px; }
@media(max-width:700px) { .booking-wizard-steps { padding: 12px 8px; } .booking-wizard-steps ol { gap: 3px; } .booking-wizard-steps li:not(:last-child)::after { top: 12px; left: calc(50% + 15px); width: calc(100% - 20px); } .booking-wizard-step { gap: 5px; font-size: 9px; } .booking-wizard-step b { width: 26px; height: 26px; } .booking-wizard-step span { width: 100%; line-height: 1.15; } .booking-separate-rooms { align-items: flex-start; flex-direction: column; } .booking-review-unit { grid-template-columns: 1fr; } .booking-price-summary .booking-price-total { padding: 0; border: 0; } }
.booking-unit-card { padding: 18px; background: #fff; border: 1px solid #dbe4e8; border-radius: 16px; box-shadow: 0 3px 12px rgba(16, 24, 40, .055); }
.booking-unit-card > header.booking-unit-heading { display: flex; align-items: flex-start; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid #edf1f3; }
.booking-unit-remove-row { padding-top: 10px; }
.booking-unit-title { display: flex; align-items: center; min-width: 0; gap: 10px; }
.booking-unit-title > div { min-width: 0; }
.booking-unit-card > header strong, .booking-unit-card > header small { display: block; }
.booking-unit-card > header strong { color: #193b39; font-size: 17px; }
.booking-unit-card > header small { margin-top: 4px; color: #667085; font-size: 12px; }
.booking-unit-index { display: inline-grid; place-items: center; width: 27px; height: 27px; margin-right: 9px; color: #0f766e; background: #e7f7f3; border-radius: 9px; font-size: 12px; font-weight: 750; vertical-align: middle; }
.booking-unit-remove { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-height: 36px; padding: 7px 11px; color: #a13d3d; background: #fff; border: 1px solid #f0caca; border-radius: 9px; font-size: 12px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.booking-unit-remove:hover { background: #fff5f5; border-color: #e8aaaa; }
.booking-unit-remove:disabled { opacity: .5; cursor: not-allowed; }
.booking-unit-fields { display: grid; gap: 15px; padding-top: 15px; }
.booking-unit-main-fields { display: grid; grid-template-columns: minmax(180px,1fr) minmax(180px,1fr); gap: 12px; }
.booking-unit-main-fields > label, .booking-unit-contact-fields > label, .booking-unit-breakfast label { display: grid; gap: 6px; color: #475467; font-size: 12px; font-weight: 650; }
.booking-unit-contact { padding: 13px; background: #f8fafb; border: 1px solid #e8edef; border-radius: 12px; }
.booking-unit-contact h4 { margin: 0 0 10px; color: #344054; font-size: 13px; }
.booking-unit-contact-fields { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.booking-unit-contact-fields .employee-choice { display: flex; align-items: center; align-self: end; min-height: 40px; gap: 8px; }
.booking-unit-breakfast { background: #fffdf7; border-color: #f0ebd9; }
.booking-unit-breakfast .booking-unit-contact-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
.booking-unit-fields > label { display: grid; gap: 5px; color: #475467; font-size: 12px; }
.booking-unit-fields .employee-choice { display: flex; align-items: center; gap: 8px; }
.booking-no-units { margin: 0; padding: 18px; color: #667085; background: #f8fafc; border: 1px dashed #cbd5df; border-radius: 12px; font-size: 13px; }
@media(max-width:700px) { .booking-add-card { align-items: flex-start; flex-direction: column; } .booking-add-card-action { width: 100%; grid-template-columns: 1fr auto; align-items: center; } .booking-add-card-action .button { width: auto; } .booking-unit-card > header.booking-unit-heading { align-items: flex-start; } .booking-unit-main-fields, .booking-unit-contact-fields, .booking-unit-breakfast .booking-unit-contact-fields { grid-template-columns: minmax(0,1fr) minmax(0,1fr); } .booking-unit-remove { min-height: 34px; padding-inline: 8px; } .room-guest-row { grid-template-columns: 48px 78px repeat(3,minmax(0,1fr)); gap: 6px; } .extension-contract { grid-template-columns: 1fr; } .booking-direct-editor > .form-actions { position: sticky; bottom: 8px; z-index: 2; box-shadow: 0 6px 24px rgba(16,24,40,.12); } }
@media(max-width:700px) { .server-bookings .booking-search-shell { padding: 9px; } .server-bookings .booking-search-toolbar { flex-wrap: wrap; gap: 8px; } .server-bookings .booking-search-toggle { flex: 1 1 auto; justify-content: center; } .server-bookings .booking-search-summary { flex-basis: 100%; order: 3; white-space: normal; } .server-bookings .booking-search-toolbar > [data-booking-action="reset-search"] { flex: 0 0 auto; } .server-bookings .booking-search-form > .field:first-child { grid-column: 1 / -1; } }
@media(max-width:420px) { .booking-unit-card { padding: 13px; } .booking-unit-main-fields, .booking-unit-contact-fields, .booking-unit-breakfast .booking-unit-contact-fields { grid-template-columns: minmax(0,1fr); } .booking-unit-title { gap: 7px; } .booking-unit-title .booking-unit-index { margin-right: 0; flex: 0 0 auto; } .booking-unit-card > header strong { font-size: 15px; } .room-guest-row { grid-template-columns: 42px 64px repeat(3,minmax(0,1fr)); gap: 4px; } }
.button { min-height: 40px; padding: 8px 14px; background: linear-gradient(180deg, #14847b, #0f766e); border-color: #0f766e; border-radius: 9px; font-size: 12px; font-weight: 720; box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 4px 12px rgba(15, 118, 110, .14); }
.button:hover { background: #0b655f; box-shadow: 0 6px 16px rgba(15, 118, 110, .2); }
.button.secondary { color: #344054; background: #fff; border-color: #d5dce3; box-shadow: 0 1px 2px rgba(16, 24, 40, .04); }
.button.secondary:hover { color: #0f766e; background: #f0fdfa; border-color: #9bd9d0; }
.button.ghost { box-shadow: none; }
.button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline-color: rgba(20, 184, 166, .3); }
input, select, textarea { border-color: #d0d5dd; border-radius: 9px; }
input:focus, select:focus, textarea:focus { border-color: #2aa99b; box-shadow: 0 0 0 3px rgba(42, 169, 155, .12); outline: 0; }
table { min-width: 760px; }
th { font-size: 10px; }
td { font-size: 13px; line-height: 1.45; }
.badge { font-size: 10px; }
.toast { border-radius: 10px; box-shadow: 0 12px 28px rgba(15, 23, 42, .2); }

/* Keep sign-in visible beside the welcome panel on compact desktop windows. */
@media (min-width: 681px) and (max-width: 980px) {
  .auth-layout, .installer-layout {
    min-height: 100svh;
    grid-template-columns: minmax(240px, .9fr) minmax(360px, 1.1fr);
  }
  .auth-story { min-height: 100svh; padding: 30px clamp(18px, 3vw, 32px); }
  .auth-main, .installer-main { padding: 24px clamp(18px, 3vw, 32px); }
  .story-copy h1 { margin-top: 28px; font-size: clamp(34px, 4.3vw, 46px); }
  .story-copy p { font-size: 15px; }
  .story-list { gap: 9px; margin-top: 20px; }
}

@media (max-width: 680px) {
  .auth-layout, .installer-layout { grid-template-columns: 1fr; }
  .auth-story { min-height: 260px; }
}

@media (max-width: 980px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .workspace { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr); }
  .main { width: 100%; box-sizing: border-box; }
  .desktop-topbar { display: none; }
  .mobile-topbar { position: sticky; top: 0; z-index: 45; padding: 10px 16px; background: rgba(22, 37, 54, .97); flex-wrap: wrap; }
  .mobile-topbar .brand { font-size: 14px; }
  .mobile-topbar .brand-mark { width: 36px; height: 36px; font-size: 19px; }
  .mobile-nav { display: flex; gap: 5px; overflow-x: auto; padding: 8px 12px; color: #e5edf4; background: #162536; scrollbar-width: thin; }
  .mobile-nav .nav-button { flex: 0 0 auto; width: auto; min-height: 44px; padding: 8px 10px; }
  .mobile-topbar-actions { flex-wrap: wrap; min-width: 0; max-width: 100%; }
  .mobile-topbar-actions .button { min-height: 44px; }
}
@media (max-width: 700px) {
  .booking-capacity-summary { grid-template-columns: 1fr; }
  .main { padding: 22px 15px 44px; }
  .page-header { align-items: flex-start; }
  h1 { font-size: clamp(26px, 8vw, 34px); }
  .card { border-radius: 14px; }
  .button { min-height: 40px; }
}

.field-label-row { display:flex; align-items:center; gap:7px; }
.info-help { position:relative; display:inline-flex; flex:0 0 auto; }
.info-help > summary { display:grid; place-items:center; width:19px; height:19px; border:1px solid #8ba0ad; border-radius:50%; color:#31556a; font-size:12px; font-weight:700; line-height:1; cursor:pointer; list-style:none; }
.info-help > summary::-webkit-details-marker { display:none; }
.info-help > div { position:absolute; z-index:50; top:calc(100% + 8px); left:0; width:min(310px,75vw); padding:12px 14px; border:1px solid #d5e0e7; border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(24,46,62,.16); color:#324757; font-size:13px; font-weight:400; }
.info-help > div p { margin:5px 0 0; line-height:1.5; }
.booking-service-picker{grid-column:1/-1;padding:1.15rem;border:1px solid var(--line,#dce4ee);border-radius:16px;background:linear-gradient(145deg,#fbfdff,#f5f8fc)}
.booking-service-picker h3{margin:0 0 .3rem}.booking-service-picker>p{margin:.25rem 0 1rem;color:var(--muted,#667085);font-size:.92rem}
.booking-service-option{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(6rem,8rem);align-items:center;gap:.85rem;padding:.8rem 0;border-top:1px solid var(--line,#dce4ee)}
.booking-service-name strong,.booking-service-name small,.booking-service-quantity span{display:block}.booking-service-name small,.booking-service-quantity span{color:var(--muted,#667085);font-size:.82rem}.booking-service-quantity input{width:100%;margin-top:.25rem}
.booking-service-option>input{width:1.15rem;height:1.15rem;accent-color:var(--accent,#315efb)}
@media(max-width:560px){.booking-service-option{grid-template-columns:auto minmax(0,1fr)}.booking-service-quantity{grid-column:2}}

.booking-unit-card[data-selected-unit]{scroll-margin-block:16px}.booking-unit-card[data-selected-unit]:focus{outline:2px solid #0f766e;outline-offset:3px}

.booking-wizard-form>.booking-wizard-panel{grid-column:1/-1}.server-unit.booking-unit-card{display:block;min-width:0}.booking-unit-fields{width:100%;box-sizing:border-box}.room-guest-row input,.room-guest-row select{min-width:0;width:100%;box-sizing:border-box}

/* A whole apartment has one price and distinct room guest lists. */
.unit-room-guest-group { min-width:0; padding:16px; border:1px solid #dce6e7; border-radius:12px; background:#f8fbfb; }
.unit-room-guest-group > header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.unit-room-guest-group h4 { margin:0; color:#153c3a; font-size:15px; }
.unit-room-guest-group > header small { color:#526c6a; white-space:nowrap; }
.unit-room-guest-group > .field { max-width:220px; margin-bottom:12px; }
.unit-room-guest-group .room-guest-names { background:#fff; }
.unit-room-guest-summary { display:block; margin-top:8px; line-height:1.6; }
@media(max-width:640px) {
  .unit-room-guest-group { padding:12px; }
  .unit-room-guest-group .room-guest-row { grid-template-columns:1fr 1fr; }
  .unit-room-guest-group .room-guest-row input[type="tel"] { grid-column:1/-1; }
}

.property-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:min(760px,58vw)}
.property-header-actions .button{display:inline-flex;align-items:center;gap:9px;white-space:nowrap}
.property-action-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 5px;border-radius:999px;background:#e8f2f1;color:#17645f;font-size:12px;font-weight:750}
.property-detail-backdrop{z-index:90;padding:clamp(10px,3vw,32px)}
.property-detail-dialog{width:min(1080px,100%);max-height:min(92dvh,900px);display:flex;flex-direction:column;overflow:hidden}
.property-detail-dialog .customer-dialog-header{flex:0 0 auto}
.property-detail-dialog-content{overflow:auto;overscroll-behavior:contain;padding:0 clamp(14px,2vw,24px) 24px}
.property-detail-dialog-content>.card{margin:0;box-shadow:none;border:0;padding:8px 0 20px}
.property-detail-dialog-content .table-wrap{max-height:42vh;overflow:auto}
@media(max-width:700px){.property-header-actions{max-width:none;width:100%;justify-content:flex-start}.property-header-actions .button{flex:1 1 44%;justify-content:space-between;white-space:normal}.property-detail-dialog{width:100%;max-height:calc(100dvh - 16px);border-radius:14px}.property-detail-backdrop{padding:8px}.property-detail-dialog-content .table-wrap{max-height:34vh}}

.property-detail-dialog-content tbody td small{display:block;margin-top:3px;color:var(--muted,#667085);font-size:.78rem}
.property-detail-dialog .customer-dialog-header .button{min-height:38px}

.booking-unit-room-stays{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:14px;margin-top:18px}
.booking-unit-card>header.booking-saved-unit-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid #e6eeeb}
.booking-saved-unit-heading>div{min-width:0}.booking-saved-unit-heading>strong{flex-shrink:0;padding:10px 14px;border-radius:10px;background:#edf6f3}
.booking-unit-room-stay{min-width:0;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid #dce6e3;border-radius:14px;background:#f7faf9}
.booking-unit-room-stay-heading>strong{font-size:16px;color:#193b39}.booking-unit-room-stay-heading .badge{font-size:10px;letter-spacing:.025em}
.booking-unit-room-stay-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.booking-unit-room-guests{display:grid;gap:4px;overflow-wrap:anywhere}
.booking-unit-room-stay .button-row{margin-top:auto;padding-top:4px;display:flex;flex-wrap:wrap;gap:8px}
.booking-unit-room-stay>.muted{display:block;line-height:1.5}
@media(max-width:600px){.booking-unit-card>header.booking-saved-unit-heading{flex-direction:column;gap:12px}.booking-unit-room-stays{grid-template-columns:minmax(0,1fr)}.booking-unit-room-stay{padding:15px}.booking-unit-room-stay .button{flex:1 1 auto}}
body.resource-types-modal-open{overflow:hidden}
.page-header-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px}
.page-header-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:9px;white-space:nowrap}
.resource-types-modal-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:clamp(10px,3vw,32px);background:rgba(12,27,35,.62);backdrop-filter:blur(5px)}
.resource-types-modal{width:min(1120px,100%);height:min(92dvh,920px);display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.8);border-radius:20px;background:#f7f9f8;box-shadow:0 28px 90px rgba(7,24,30,.36);outline:none}
.resource-types-modal-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 22px;border-bottom:1px solid #dce6e3;background:rgba(255,255,255,.97)}
.resource-types-modal-header .eyebrow{margin:0}
.resource-types-modal-content{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:4px clamp(14px,2.5vw,30px) 24px}
.resource-types-modal-content .resource-type-workspace{min-height:100%;display:flex;flex-direction:column;gap:16px}
.resource-types-modal-content .resource-type-workspace>.page-header{flex:0 0 auto;margin:0;padding:16px 2px 2px}
.resource-types-modal-content .resource-type-workspace>.card{flex:1 0 auto;margin:0}
.resource-types-modal-content .resource-type-workspace .table-wrap{max-height:44vh;overflow:auto}
@media(max-width:700px){
  .page-header-actions{width:100%;justify-content:flex-start}
  .page-header-actions .button{flex:1 1 45%;white-space:normal}
  .resource-types-modal-backdrop{padding:8px}
  .resource-types-modal{width:100%;height:calc(100dvh - 16px);max-height:none;border-radius:15px}
  .resource-types-modal-header{padding:10px 14px}
  .resource-types-modal-content{padding:0 10px max(16px,env(safe-area-inset-bottom))}
  .resource-types-modal-content .resource-type-workspace>.page-header{align-items:flex-start;gap:10px;padding-top:12px}
  .resource-types-modal-content .resource-type-workspace>.page-header .button{flex:0 0 auto;min-height:40px}
  .resource-types-modal-content .resource-type-workspace>.card{padding:14px 10px}
  .resource-types-modal-content .resource-type-workspace .table-wrap{max-height:42vh}
}
/* Operational overview: decisions and next actions, not month-long charts. */
.operational-dashboard { display:grid; gap:22px; }
.operations-header { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.operations-header h1 { margin:0; }
.operations-header-actions { display:flex; align-items:flex-end; gap:12px; flex-wrap:wrap; }
.operations-date { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:650; }
.operations-date input { min-height:42px; border:1px solid var(--line); border-radius:10px; padding:8px 10px; color:var(--ink); background:white; font:inherit; }
.operations-global-quick { min-height:38px; padding:8px 12px; white-space:nowrap; }
.mobile-topbar-actions { display:flex; align-items:center; gap:6px; }
.mobile-topbar-actions .operations-global-quick { min-height:36px; padding:7px 9px; font-size:11px; }
@media(max-width:600px) {
  .mobile-topbar-actions { display:grid; grid-template-columns:minmax(0,1fr) auto auto; width:100%; gap:6px; }
  .mobile-topbar-actions > .button { width:auto; min-width:0; min-height:44px; margin:0; padding:8px; }
  .mobile-topbar-actions > .operations-global-quick { max-width:none; min-height:44px; }
}
.operations-metrics { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.operations-metric { min-width:0; min-height:137px; display:flex; flex-direction:column; align-items:flex-start; justify-content:space-between; gap:7px; padding:17px; border:1px solid #dce4ed; border-radius:15px; background:#fff; color:var(--ink); text-align:left; box-shadow:0 3px 15px #182a4109; cursor:pointer; transition:border-color .15s,transform .15s,box-shadow .15s; }
.operations-metric:hover { transform:translateY(-1px); border-color:#9ab8d5; box-shadow:0 7px 18px #182a4115; }
.operations-metric.is-selected { border-color:#168675; box-shadow:inset 0 0 0 1px #168675,0 4px 14px #16867512; }
.operations-metric.is-attention { background:#fffaf0; border-color:#ead9b0; }
.operations-metric.is-attention.is-selected { border-color:#b77b15; box-shadow:inset 0 0 0 1px #b77b15; }
.operations-metric > span { color:#5a6d82; font-size:13px; font-weight:700; }
.operations-metric > strong { font-size:34px; line-height:1; letter-spacing:-.04em; }
.operations-metric > small { color:#68798c; font-size:11px; line-height:1.45; }
.operations-metric > small strong { color:#263950; }
.operations-unknown { color:#8a6216; font-weight:550; }
.operations-section { display:grid; gap:12px; }
.operations-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.operations-section-heading h2 { margin:0; font-size:20px; }
.operations-section-heading p { margin:5px 0 0; }
.operations-property-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.operations-property-grid > .card { margin:0; }
.operations-property { padding:18px; margin:0; align-self:stretch; }
.operations-property-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:15px; }
.operations-property-heading .eyebrow { margin:0 0 3px; }
.operations-property-heading h3 { margin:0; font-size:17px; }
.operations-property-link { margin:5px 0 0; padding:0; border:0; background:transparent; color:#157366; font:650 12px/1.4 system-ui,sans-serif; cursor:pointer; }
.operations-property-link:hover { text-decoration:underline; }
.operations-property-free { min-width:68px; text-align:right; color:#146f5e; font-size:25px; font-weight:760; }
.operations-property-free small { display:block; color:#758396; font-size:11px; font-weight:600; }
.operations-property-stats { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; }
.operations-property-stats > div { min-width:0; padding-top:10px; border-top:1px solid #edf0f4; }
.operations-property-stats > div > span { display:block; margin-bottom:4px; color:#728094; font-size:11px; }
.operations-property-stats > div > strong { font-size:12px; line-height:1.5; }
.operations-filter-list { display:flex; flex-wrap:wrap; gap:7px; }
.operations-filter-list .button { min-height:36px; padding:7px 11px; font-size:12px; }
.operations-activity-list { display:grid; gap:8px; }
.operations-activity-item { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; padding:14px 16px; border:1px solid #dfe6ed; border-radius:12px; background:white; color:var(--ink); text-align:left; cursor:pointer; transition:border-color .12s,background .12s; }
.operations-activity-item:hover { border-color:#8eb6a6; background:#f7fbf9; }
.operations-activity-main { display:grid; gap:5px; min-width:0; }
.operations-activity-main > strong { overflow-wrap:anywhere; }
.operations-activity-main > small { color:#6c7a8c; line-height:1.45; }
.operations-room-list { display:flex; flex-wrap:wrap; gap:5px; }
.operations-room-chip { padding:3px 7px; border:1px solid #dce5ed; border-radius:999px; color:#56687d; font-size:10px; }
.operations-activity-item > .badge { flex:none; }
.operations-more { justify-self:center; }
.operations-empty,.operations-loading { padding:22px; color:#718096; text-align:center; }
.operations-error { padding:18px; border-color:#e5c5b7; background:#fff9f6; }
.operations-error p { color:#76594e; }
@media(max-width:1100px) { .operations-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:760px) {
 .operational-dashboard { gap:17px; }
 .operations-header { align-items:flex-start; flex-direction:column; }
 .operations-header-actions { width:100%; }
 .operations-header-actions .operations-new-booking { flex:1; }
 .operations-date { flex:1; }
 .operations-date input { width:100%; }
 .operations-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .operations-metric { min-height:122px; padding:13px; }
 .operations-metric > strong { font-size:29px; }
 .operations-property-grid { grid-template-columns:1fr; }
 .operations-section-heading { align-items:flex-start; }
 .operations-filter-list { width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
 .operations-filter-list .button { min-height:42px; }
 .operations-activity-item { align-items:flex-start; padding:12px; }
 .operations-activity-item > .badge { max-width:110px; white-space:normal; text-align:center; }
 .operations-property-stats { gap:9px; }
 .mobile-topbar-actions .operations-global-quick { max-width:132px; white-space:normal; line-height:1.2; }
}

.booking-group-count { display:flex; flex-direction:column; align-items:flex-end; gap:3px; line-height:1.35; }
.booking-group-count strong { font-size:11px; font-weight:650; }
.booking-group-count small { color:#1d6356; font-size:13px; font-weight:750; white-space:nowrap; }
.booking-unit-group > .booking-unit-heading { gap:12px; }
.booking-wizard-step>button { display:flex; align-items:center; gap:inherit; width:100%; min-height:36px; padding:0; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; border-radius:6px; }
.booking-wizard-step>button:hover span { text-decoration:underline; }
.booking-wizard-step>button:focus-visible { outline:3px solid #238575; outline-offset:4px; }
.booking-wizard-step>button:disabled { cursor:wait; }

.property-setup { color:#183b37; }
.property-setup-welcome { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(280px,1fr); gap:36px; padding:clamp(24px,4vw,52px); border:1px solid #d9e7e1; border-radius:24px; background:linear-gradient(125deg,#f1f8f3,#fff 75%); box-shadow:0 14px 40px #153b3310; }
.property-setup-intro h1 { font-size:clamp(28px,3vw,42px); line-height:1.15; margin:12px 0 20px; letter-spacing:-.025em; }
.property-setup p { line-height:1.65; max-width:66ch; }
.property-setup-intro>.button { margin:12px 0 6px; min-height:48px; font-size:16px; display:inline-flex; align-items:center; gap:20px; }
.property-setup .property-setup-note { font-size:14px; color:#526a65; margin:14px 0 0; }
.property-setup-steps { display:flex; flex-direction:column; gap:12px; padding:0; margin:0; list-style:none; }
.property-setup-steps li { display:flex; gap:16px; align-items:flex-start; padding:20px; background:#fff; border:1px solid #e0e8e3; border-radius:16px; }
.property-setup-steps li[aria-current] { border-color:#319281; box-shadow:0 4px 16px #1c766211; }
.property-setup-number { display:grid; place-items:center; flex-shrink:0; width:34px; height:34px; border-radius:50%; background:#edf2ee; color:#506b61; font-weight:750; }
.property-setup-steps li[aria-current] .property-setup-number,.property-setup-steps .is-done .property-setup-number { background:#147f72; color:white; }
.property-setup-steps strong { font-size:17px; }
.property-setup-steps p { margin:4px 0 0; font-size:14px; color:#536b65; }
.property-setup-example { grid-column:1/-1; padding-top:24px; border-top:1px solid #dbe7e0; }
.property-setup-example p { margin:6px 0 0; max-width:90ch; }
.property-setup-next { border-left:4px solid #248a77; margin:18px 0; }
.property-setup-next .property-setup-steps { flex-direction:row; margin:22px 0; }
.property-setup-next .property-setup-steps li { flex:1; }
.property-setup-unit-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.property-setup-options { border:1px solid #dfe7e2; padding:16px; border-radius:12px; }
.property-setup-options summary { cursor:pointer; font-weight:650; min-height:28px; }
.property-setup-options[open] summary { margin-bottom:18px; }
.operations-activity-property { padding:18px; margin:18px 0; border:1px solid #dce6e1; border-radius:16px; background:#f4f8f5; }
.operations-activity-property>h3 { display:flex; align-items:center; gap:10px; margin:0 0 14px; font-size:17px; }
.operations-activity-property>h3::before { content:''; display:block; width:5px; height:22px; background:#298675; border-radius:4px; }
.property-setup .button { min-height:44px; white-space:normal; text-align:left; }
@media(max-width:800px) {
 .property-setup-welcome { grid-template-columns:minmax(0,1fr); gap:24px; }
 .property-setup-next .property-setup-steps { flex-direction:column; }
 .property-setup-intro>.button { width:100%; justify-content:space-between; }
 .property-setup-unit-actions { flex-direction:column; }
 .operations-activity-property { padding:12px; }
}
/* Invoice document preview follows the demo: fixed dialog, toolbar and A4 paper. */
body:has(.invoice-document-dialog) { overflow:hidden; }
.invoice-document-backdrop { position:fixed; inset:0; z-index:120; display:flex; align-items:center; justify-content:center; padding:16px; background:rgba(15,23,42,.65); backdrop-filter:blur(5px); }
.invoice-document-dialog { width:min(1120px,100%); height:calc(100dvh - 32px); display:flex; flex-direction:column; overflow:hidden; background:#e9ece9; border:1px solid #e3e8e5; border-radius:18px; box-shadow:0 26px 80px #0f172a40; outline:none; }
.invoice-dialog-header { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; gap:18px; padding:20px 26px; background:#fff; border-bottom:1px solid #e5e9e7; }
.invoice-dialog-header h1 { margin:0; font-size:21px; letter-spacing:-.03em; }
.invoice-dialog-header .eyebrow { margin:0 0 6px; font-size:10px; }
.invoice-dialog-header > button { min-width:36px; padding:7px; font-size:22px; line-height:1; }
.invoice-dialog-header > div:first-child { flex:1; }
.invoice-dialog-header > .page-help-trigger { flex:0 0 auto; width:auto; min-width:0; padding:9px 10px; font-size:13px; line-height:1.3; }
.invoice-dialog-scroll { flex:1; min-height:0; overflow:auto; overscroll-behavior:contain; padding:20px 22px 28px; }
.invoice-document-toolbar { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; margin:0 0 16px; }
.invoice-document-toolbar .button-row { flex-wrap:wrap; }
.invoice-document-badge { display:inline-flex; padding:7px 12px; border-radius:30px; color:#087565; background:#dff5ed; font-size:11px; font-weight:800; }
.invoice-document-paper { position:relative; display:flex; flex-direction:column; width:min(794px,100%); min-height:1050px; margin:0 auto 24px; padding:55px 60px 38px; color:#18201f; background:#fff; box-shadow:0 16px 50px #0f172a26; border:0; border-radius:4px; font-size:11px; line-height:1.55; overflow:hidden; }
.invoice-document-paper > *:not(.invoice-watermark) { position:relative; }
.invoice-watermark { position:absolute; top:42%; left:50%; color:rgba(161,58,50,.07); font-size:80px; font-weight:900; letter-spacing:.12em; transform:translate(-50%,-50%) rotate(-24deg); pointer-events:none; }
.invoice-brand { display:flex; justify-content:flex-end; align-items:center; gap:12px; text-align:right; }
.invoice-brand > div { display:grid; gap:3px; }
.invoice-brand strong { font-size:15px; }
.invoice-brand span:not(.invoice-brand-mark) { color:#65706d; font-size:10px; }
.invoice-brand-mark { display:grid; place-items:center; width:44px; height:44px; flex:0 0 auto; border-radius:12px; background:#0d7b72; color:white; font:bold 28px Georgia,serif; }
.invoice-address { display:grid; width:55%; gap:3px; margin-top:66px; font-size:12px; overflow-wrap:anywhere; }
.invoice-address small { margin-bottom:13px; padding-bottom:4px; color:#65706d; border-bottom:1px solid #b7bfbc; font-size:8px; }
.invoice-title { display:grid; grid-template-columns:1fr 250px; gap:30px; align-items:end; margin:55px 0 34px; }
.invoice-title h2 { margin:0; font-size:35px; letter-spacing:-.04em; color:#18201f; }
.invoice-title .eyebrow { margin:0 0 4px; font-size:10px; }
.invoice-title dl { display:grid; grid-template-columns:82px 1fr; gap:5px 10px; margin:0; font-size:10px; }
.invoice-title dt { color:#65706d; }
.invoice-title dd { margin:0; font-weight:750; overflow-wrap:anywhere; }
.invoice-document-paper > p { margin:0 0 12px; font-size:11px; }
.invoice-document-table-wrap { margin-top:16px; }
.invoice-document-paper .invoice-document-table { width:100%; min-width:0; table-layout:auto; font-size:10px; }
.invoice-document-table th,.invoice-document-table td { padding:10px 8px; vertical-align:top; border-bottom:1px solid #e6ebe8; }
.invoice-document-table th { font-size:9px; background:#f6f8fa; color:#718096; letter-spacing:.04em; }
.invoice-document-table th:last-child,.invoice-document-table td:last-child { text-align:right; white-space:nowrap; }
.invoice-document-table small { display:block; margin-top:3px; color:#65706d; }
.invoice-document-table td:nth-child(2) { width:42%; }
.invoice-document-totals { width:280px; max-width:100%; margin:20px 0 30px auto; padding-top:12px; border-top:1px solid #aeb7b3; font-size:10px; gap:7px 20px; }
.invoice-document-totals .invoice-grand-total { border-top:2px solid #0d7b72; padding-top:10px; font-size:14px; font-weight:800; }
.invoice-document-note { margin:0 0 22px; padding:13px 15px; background:#f2f5f2; border-left:4px solid #0d7b72; font-size:11px; white-space:pre-wrap; }
.invoice-document-note p { margin:4px 0 0; }
.invoice-document-paper .invoice-document-footer { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:auto; padding-top:16px; border-top:1px solid #c8cfcc; color:#65706d; font-size:9px; overflow-wrap:anywhere; }
.invoice-position-editor,.invoice-draft-confirmation,.invoice-dialog-scroll > .invoice-ledger { max-width:794px; margin:18px auto 0; }
.invoice-position-editor summary { cursor:pointer; font-weight:750; padding:4px 0; }
.invoice-position-editor .invoice-line-include input[type=checkbox] { width:18px; height:18px; min-width:18px; padding:0; margin:0; }
.invoice-position-editor input { padding:8px; font-size:12px; }
.invoice-draft-confirmation { padding:16px; border-radius:12px; background:#fff; font-size:12px; }
.invoice-dialog-scroll .invoice-ledger { background:white; }
@media(max-width:650px) {
 .invoice-document-backdrop { padding:0; }
 .invoice-document-dialog { width:100%; height:100dvh; border:0; border-radius:0; }
 .invoice-dialog-header { padding:16px; display:grid; grid-template-columns:minmax(0,1fr) auto 36px; gap:10px; }
 .invoice-dialog-header h1 { font-size:18px; }
 .invoice-dialog-scroll { padding:16px 12px; }
 .invoice-document-toolbar { align-items:flex-start; }
 .invoice-document-toolbar .button-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
 .invoice-document-toolbar .button { min-width:0; padding:9px; font-size:12px; }
 .invoice-document-paper { width:100%; min-height:0; padding:28px 18px; }
 .invoice-brand { justify-content:flex-start; text-align:left; }
 .invoice-address { width:100%; margin-top:34px; }
 .invoice-title { grid-template-columns:1fr; gap:18px; margin:32px 0 24px; }
 .invoice-title h2 { font-size:28px; }
 .invoice-document-table-wrap { overflow:auto; }
 .invoice-document-paper .invoice-document-table { min-width:590px; }
 .invoice-document-paper .invoice-document-footer { grid-template-columns:1fr; margin-top:24px; }
 .invoice-watermark { font-size:48px; }
}
@media print {
 body:has(.invoice-document-dialog) { overflow:visible; }
 .invoice-document-backdrop,.invoice-document-dialog,.invoice-dialog-scroll { position:static!important; display:block!important; width:auto!important; height:auto!important; max-height:none!important; overflow:visible!important; padding:0!important; margin:0!important; border:0!important; box-shadow:none!important; background:transparent!important; backdrop-filter:none!important; transform:none!important; }
 .invoice-dialog-header,.invoice-document-toolbar,.invoice-position-editor,.invoice-draft-confirmation,.invoice-dialog-scroll > .invoice-ledger { display:none!important; }
 .invoice-document-paper { position:absolute!important; inset:0!important; width:100%!important; min-height:0!important; padding:12mm!important; margin:0!important; box-shadow:none!important; overflow:visible!important; }
 .invoice-document-paper .invoice-document-table { min-width:0!important; }
 .invoice-document-table-wrap { overflow:visible!important; }
 .invoice-document-paper .invoice-document-footer { margin-top:24px; }
 .invoice-document-table tr { break-inside:avoid; }
 .invoice-document-table thead { display:table-header-group; }
}
.invoice-correction-summary { max-width:794px; margin:18px auto 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.invoice-correction-summary > div { display:grid; gap:8px; }
.invoice-correction-summary strong { font-size:20px; }
.invoice-correction-summary > p { grid-column:1/-1; margin:0; }
@media(max-width:650px) { .invoice-correction-summary { grid-template-columns:1fr; } }
@media print { .invoice-correction-summary { display:none!important; } }
.invoice-dialog-header > button[data-invoice-action="close-document"] { flex:0 0 36px; width:36px; margin-left:auto; }
/* Draft mark sits above the document text without blocking selection or controls. */
.invoice-document-paper .invoice-watermark { z-index:2; color:rgba(161,58,50,.17); }
/* Keep long names and comments within the paper, including words without spaces. */
.invoice-brand > div,.invoice-dialog-header > div,.invoice-title > div { min-width:0; overflow-wrap:anywhere; }
.invoice-document-table td:nth-child(2),.invoice-document-table th:nth-child(2) { overflow-wrap:anywhere; white-space:normal; }
.invoice-document-note { overflow-wrap:anywhere; }
/* Classic invoice: address and document details at the top, monochrome table. */
.invoice-document-paper.invoice-style-classic { font-family:Arial,sans-serif; color:#111; border-radius:0; }
.invoice-classic-head { display:grid; grid-template-columns:minmax(0,1fr) minmax(210px,.75fr); gap:28px; align-items:start; }
.invoice-classic-head .invoice-address { width:100%; margin-top:0; }
.invoice-classic-head .invoice-address small { border:0; font-size:9px; }
.invoice-classic-head dl { display:grid; grid-template-columns:90px minmax(0,1fr); gap:5px 10px; margin:0; font-size:10px; }
.invoice-classic-head dd { margin:0; text-align:right; font-weight:750; overflow-wrap:anywhere; }
.invoice-style-classic .invoice-title { display:block; margin:44px 0 30px; }
.invoice-style-classic .invoice-title h2 { font-size:24px; color:#111; }
.invoice-style-classic .invoice-document-table th { background:#dedede; color:#111; letter-spacing:0; text-transform:none; }
.invoice-style-classic .invoice-document-table td { border-bottom:0; padding-top:18px; padding-bottom:18px; }
.invoice-style-classic .invoice-document-totals { width:100%; max-width:100%; margin:30px 0; border-top:0; }
.invoice-style-classic .invoice-document-totals .invoice-grand-total { border-top:0; background:#dedede; padding:8px; color:#111; }
.invoice-style-classic .invoice-document-note { background:transparent; border-left:0; padding:0; }
.invoice-style-classic .invoice-document-footer { margin-top:auto; padding-top:36px; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:0; color:#666; }
.invoice-style-preview { display:block; min-width:0; }
.invoice-style-preview summary { cursor:pointer; font-weight:700; padding:8px 0; }
.invoice-style-preview [data-invoice-style-paper] { overflow:auto; max-height:740px; background:#e9ece9; padding:20px; border-radius:12px; }
@media(max-width:650px) {
 .invoice-classic-head { grid-template-columns:1fr; gap:22px; }
 .invoice-style-classic .invoice-title { margin:24px 0; }
 .invoice-style-classic .invoice-document-footer { grid-template-columns:1fr; }
 .invoice-style-preview [data-invoice-style-paper] { padding:8px; }
}
@media print {
 .invoice-classic-head { grid-template-columns:minmax(0,1fr) minmax(210px,.75fr); }
 .invoice-style-classic .invoice-document-footer { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .invoice-style-preview { display:none!important; }
}
@page invoice-document { size:A4; margin:12mm; }
@media print {
 body:has(.invoice-document-dialog) { page:invoice-document; background:#fff!important; margin:0!important; }
 .invoice-document-paper { padding:0!important; background:#fff!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
 .invoice-document-totals,.invoice-document-note,.invoice-document-footer { break-inside:avoid; }
}
@media print {
 html:has(.invoice-document-dialog),body:has(.invoice-document-dialog) #app,body:has(.invoice-document-dialog) .workspace,body:has(.invoice-document-dialog) #main-content { background:#fff!important; }
}
/* Platform company details, commercial settings and subscription cards. */
.platform-company-tabs{display:flex;gap:.6rem;flex-wrap:wrap;margin:0 0 1.4rem;padding:.65rem;background:var(--surface,#fff);border:1px solid var(--line,#dce5e9);border-radius:16px}
.platform-usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.4rem}
.platform-usage-grid .card{margin:0}.platform-usage-value{font-size:2rem;line-height:1.2;color:var(--ink,#153345);font-variant-numeric:tabular-nums}
.platform-activity-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;margin:1rem 0}.platform-activity-grid dt{font-size:.8rem;color:var(--muted,#607386)}.platform-activity-grid dd{margin:.35rem 0 0;font-weight:650}
.platform-history{list-style:none;padding:0;margin:0}.platform-history li{padding:1.1rem 0;border-bottom:1px solid var(--line,#dce5e9)}.platform-history li:last-child{border:0}.platform-history li>div{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.platform-history time{color:var(--muted,#607386);font-size:.85rem}.platform-history p{margin:.35rem 0 0}
.module-billing-workspace,.integrations-workspace{display:grid;gap:18px;min-width:0}
.module-billing-workspace>.card,.module-billing-workspace>.page-header,.integrations-workspace>.card,.integrations-workspace>.page-header{margin:0;min-width:0}
.module-billing-workspace .card-header,.integrations-workspace .card-header{flex-wrap:wrap}
.integrations-workspace .field-label-row,.integrations-workspace legend{position:relative}
.integrations-workspace .info-help{position:static}
.integrations-workspace .info-help>div{left:0;width:min(310px,calc(100vw - 80px))}
.integrations-workspace fieldset{min-width:0}
.integrations-workspace .integration-property-list,.integrations-workspace .integration-scope-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}
.module-offer-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;min-width:0}
.module-offer-heading h2{min-width:0;overflow-wrap:anywhere}
.module-info>summary{width:32px;height:32px}
.module-info>div{left:auto;right:0;width:min(310px,calc(100vw - 64px))}
.module-offer-description{line-height:1.55}
.platform-module-offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:1rem}.platform-module-offers>.card{margin:0;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.platform-module-offers h2,.platform-module-offers p{margin:0}.platform-offer-price{font-size:1.65rem;font-weight:750}.platform-offer-price small{font-size:.85rem;font-weight:500}.platform-module-offers .button{margin-top:auto}
[data-commercial-company]>.employee-list{display:grid;gap:1rem;margin-top:1.4rem}[data-commercial-company] details.card{margin:0;padding:1rem 1.25rem}[data-commercial-company] details>summary{cursor:pointer;line-height:1.6;overflow-wrap:anywhere}[data-commercial-company] details[open]>summary{margin-bottom:1.2rem;border-bottom:1px solid var(--line,#dce5e9);padding-bottom:.9rem}
[data-commercial-form] .field input,[data-commercial-form] .field select{min-width:0;max-width:100%}[data-commercial-form] .full{grid-column:1/-1}[data-commercial-form] input:disabled{background:#f1f4f5;color:#697c86}
.company-logo-preview{display:block;max-width:240px;max-height:120px;object-fit:contain;padding:.6rem;border:1px solid var(--line,#dce5e9);border-radius:12px;background:white;margin-bottom:1rem}
.invoice-brand-logo{display:block;max-width:160px;max-height:72px;width:auto;height:auto;object-fit:contain;flex:0 0 auto}
@media(max-width:620px){.platform-company-tabs>.button{flex:1 1 140px}.platform-activity-grid{grid-template-columns:1fr}.platform-module-offers{grid-template-columns:1fr}.invoice-brand-logo{max-width:120px;max-height:58px}}

/* Long webhook addresses remain readable on narrow screens. */
.card code{overflow-wrap:anywhere;word-break:break-word}

.einvoice-export-panel{max-width:900px;margin:0 auto}.einvoice-export-panel fieldset{min-width:0;margin:0;padding:16px;border:1px solid #d8e3df;border-radius:12px}.einvoice-export-panel legend{font-weight:700;padding:0 8px}.einvoice-export-history{padding-left:20px}.einvoice-export-history li{margin:12px 0}.einvoice-export-history small{display:block;overflow-wrap:anywhere;margin-top:5px}
/* Hide the layout boxes themselves, not only their ink: invisible modal chrome
   previously kept a second A4 page in the print layout. Print the document in
   normal flow so long tables and the footer fragment onto real pages. */
@media print {
 html:has(.invoice-document-dialog),body:has(.invoice-document-dialog){height:auto!important;min-height:0!important;overflow:visible!important}
 body:has(.invoice-document-dialog) *:not(:has(.invoice-document-paper)):not(.invoice-document-paper):not(.invoice-document-paper *){display:none!important}
 body:has(.invoice-document-dialog) *:has(.invoice-document-paper){display:block!important;position:static!important;height:auto!important;min-height:0!important;max-height:none!important;width:auto!important;min-width:0!important;margin:0!important;padding:0!important;overflow:visible!important;transform:none!important;border:0!important;box-shadow:none!important;gap:0!important}
 body:has(.invoice-document-dialog) .invoice-document-paper{display:block!important;position:static!important;inset:auto!important;width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;overflow:visible!important;border-radius:0!important}
 body:has(.invoice-document-dialog) .invoice-document-footer{margin-top:24px!important}
}

.einvoice-export-panel .full{grid-column:1/-1}.einvoice-export-panel .card-header>button{flex-shrink:0;white-space:nowrap}.einvoice-export-panel .card-header>div{min-width:0}

/* Print page-margin boxes are populated from the saved invoice footer.
   beforeprint reserves the measured height; the screen keeps its normal footer. */
@page invoice-document { size:A4; margin:12mm 12mm 65mm 12mm; }
@media print {
 body:has(.invoice-document-dialog) .invoice-document-paper .invoice-document-footer {display:none!important;}
}

.invoice-zero-confirmation-label { display:flex; align-items:flex-start; gap:10px; }
.invoice-zero-confirmation-checkbox { width:18px; height:18px; min-width:18px; padding:0; margin:2px 0 0; }

/* A deliberate review step separates selection from changing real bookings. */
.booking-merge-selection{border:1px solid #a8d3ca;background:#f5fbf9}
.booking-merge-selection .card-header{align-items:flex-start;gap:16px}
.booking-merge-selection .card-header>div{min-width:0}
.booking-merge-selection p{max-width:85ch}
.booking-merge-selection-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}
.booking-merge-chips{display:flex;flex-wrap:wrap;gap:10px}
.booking-merge-chip{display:flex;align-items:center;gap:14px;border:1px solid #c9ded8;border-radius:12px;padding:10px 12px;background:#fff;max-width:100%;min-width:0}
.booking-merge-chip>span{min-width:0;overflow-wrap:anywhere}
.booking-merge-chip small{display:block;color:#526963;margin-top:4px}
.booking-merge-chip>.button{flex-shrink:0;min-width:36px;min-height:36px;padding:4px 10px;font-size:20px}
.booking-merge-select{display:flex;align-items:flex-start;gap:9px;max-width:170px;font-size:12px;line-height:1.45}
.booking-merge-select input{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:#0e827d}
.booking-merge-select:has(input:disabled){color:#697b77}
.booking-merge-error{padding:12px 15px;border:1px solid #e6b9ae;border-radius:10px;background:#fff1ed;color:#8b3020;overflow-wrap:anywhere}
.booking-merge-dialog{width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 40px);padding:0;border:1px solid #dce7e2;border-radius:22px;background:#fff;color:#173c38;box-shadow:0 24px 90px #10292542;overflow:hidden}
.booking-merge-dialog[open]{display:flex;flex-direction:column}
.booking-merge-dialog::backdrop{background:#102f2b80;backdrop-filter:blur(3px)}
.booking-merge-dialog>header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 28px;border-bottom:1px solid #e4ece8;background:#f7fbf9;flex-shrink:0}
.booking-merge-dialog>header h2{margin:4px 0 0;font-size:25px;line-height:1.2}
.booking-merge-dialog>header>div{min-width:0;flex:1}
.booking-merge-dialog>header .eyebrow{margin:0}
.booking-merge-dialog>header>.button{flex:0 0 40px;width:40px;min-width:40px;max-width:40px;min-height:40px;padding:5px 11px;font-size:24px}
.booking-merge-dialog-content{padding:20px 28px;overflow-y:auto;overscroll-behavior:contain;min-height:0}
.booking-merge-dialog-content>p:first-child{margin-top:0;line-height:1.6}
.booking-merge-summary{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:20px;border:1px solid #d7e9e2;border-radius:14px;background:#f2f9f6;margin:20px 0 24px}
.booking-merge-summary>div{display:flex;flex-direction:column;gap:6px;min-width:0;overflow-wrap:anywhere}
.booking-merge-summary span{font-size:12px;color:#58716a}
.booking-merge-summary strong{font-size:16px}
.booking-merge-sources{display:grid;gap:10px}
.booking-merge-sources article{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #e0e9e5;border-radius:12px;background:#fff}
.booking-merge-sources article>div{display:flex;flex-direction:column;gap:5px;min-width:0;overflow-wrap:anywhere}
.booking-merge-sources article>strong{white-space:nowrap}
.booking-merge-sources small{color:#637970}
.booking-merge-history-note{padding:14px 16px;border-radius:12px;background:#f4f6f8;color:#50636c;line-height:1.6;margin-bottom:0}
.booking-merge-dialog>footer{display:flex;justify-content:flex-end;gap:12px;flex-shrink:0;padding:18px 28px;border-top:1px solid #e4ece8;background:#fff}
.booking-merge-dialog>footer .button{white-space:normal;font-size:14px;line-height:1.4;min-height:44px}
.booking-merge-history{display:flex;align-items:center;justify-content:space-between;gap:20px;border-left:4px solid #2c8f7c;background:#f4faf7}
.booking-merge-history p{margin-bottom:0}
.booking-merge-history .button-row{flex-wrap:wrap}
@media(max-width:620px){
 .booking-merge-selection .card-header,.booking-merge-selection-actions,.booking-merge-history{flex-direction:column;align-items:stretch}
 .booking-merge-selection .card-header>.button{align-self:flex-start}
 .booking-merge-chip{width:100%;justify-content:space-between}
 .booking-merge-dialog{width:calc(100vw - 20px);max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:16px}
 .booking-merge-dialog>header{padding:18px}
 .booking-merge-dialog>header h2{font-size:22px}
 .booking-merge-dialog-content{padding:18px}
 .booking-merge-summary{gap:14px;padding:14px}
 .booking-merge-summary>div:first-child,.booking-merge-summary>div:nth-child(2){grid-column:1/-1}
 .booking-merge-dialog>footer{padding:14px 18px;flex-direction:column-reverse}
 .booking-merge-dialog>footer>.button{width:100%;min-height:44px}
 .booking-merge-sources article{gap:10px;padding:12px}
}

/* Independent invoice periods within one booking. */
.booking-invoice-coverage .card-header{gap:24px;align-items:flex-start;flex-wrap:wrap}.booking-invoice-list{display:grid;gap:14px}.booking-invoice-card{border:1px solid var(--border,#dce4e8);border-radius:14px;padding:18px;background:var(--surface,#fff)}.booking-invoice-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.booking-invoice-card header small{display:block;margin-top:6px;overflow-wrap:anywhere}.booking-invoice-card .booking-invoice-amount{font-size:1.15rem;font-weight:700;margin:12px 0}.booking-invoice-card .button-row{flex-wrap:wrap;gap:8px}.booking-invoice-card .button{white-space:normal}@media(max-width:560px){.booking-invoice-coverage .card-header{display:grid}.booking-invoice-card{padding:14px}.booking-invoice-card .button-row{display:grid}.booking-invoice-card header{gap:8px}}

/* Invoice scope controls remain separate from the immutable document paper. */
.invoice-billing-options { padding: 22px; margin: 0 0 20px; border: 1px solid #c9dadc; background: #f5faf9; }
.invoice-billing-options h2 { margin: 0 0 6px; font-size: 1.2rem; }
.invoice-billing-options .field { min-width: 0; }
.invoice-billing-options input,.invoice-billing-options select,.invoice-billing-options textarea { width: 100%; box-sizing: border-box; }
.invoice-billing-options input[type="checkbox"] { width: 20px; height: 20px; flex: 0 0 20px; margin-top: 2px; }
.invoice-billing-dates,.invoice-billing-adjustments { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; margin-top: 16px; }
.invoice-billing-dates[hidden] { display: none; }
.invoice-billing-dates .help,.invoice-billing-adjustments .field:last-child { grid-column: 1 / -1; }
.invoice-source-panel { padding: 14px; margin-top: 16px; background: white; border: 1px solid #d4e1e3; border-radius: 12px; }
.invoice-source-panel h3 { margin: 0 0 6px; }
.invoice-source-choice { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; }
.invoice-source-choice span { min-width: 0; overflow-wrap: anywhere; }
.invoice-source-choice small { display: block; color: #566673; margin-top: 4px; }
.invoice-billing-period { padding: 12px 16px; margin: 18px 0; background: #f3f6f7; border-left: 3px solid #18847e; break-inside: avoid; }
.invoice-billing-period ul { margin: 8px 0; padding-left: 18px; }
.invoice-billing-period small { display: block; font-size: .8em; color: #52616b; }
@media(max-width:600px) { .invoice-billing-options { padding: 16px; } .invoice-billing-dates,.invoice-billing-adjustments { grid-template-columns: minmax(0,1fr); } .invoice-billing-options .form-actions { display: grid; gap: 10px; } .invoice-billing-options .form-actions button { white-space: normal; width: 100%; } }
.invoice-delivery-status strong{display:block;font-size:1rem}.invoice-delivery-status p{margin:.5rem 0}.invoice-delivery-status .button-row{margin-top:.75rem;flex-wrap:wrap}
.invoice-delivery-ready{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin:0 0 16px;color:var(--muted,#617780);font-size:.86rem}
.invoice-format-chip{padding:5px 10px;border-radius:20px;background:#e8f3ee;color:#285d50;font-weight:700}
.invoice-more-actions{position:relative;min-width:0}
.invoice-more-actions>summary{cursor:pointer;list-style:none;gap:8px;white-space:nowrap}
.invoice-more-actions>summary::-webkit-details-marker{display:none}
.invoice-more-actions>summary::after{content:'';width:6px;height:6px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px}
.invoice-more-actions[open]>summary::after{transform:rotate(225deg);margin-top:3px}
.invoice-more-actions-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:5;display:grid;gap:6px;width:310px;max-width:calc(100vw - 48px);padding:10px;background:var(--surface,#fff);border:1px solid var(--line,#dce5e9);border-radius:12px;box-shadow:0 12px 28px #193c4d24}
.invoice-more-actions-panel>.button{justify-content:flex-start;text-align:left;white-space:normal;width:100%;box-shadow:none}
.invoice-more-actions-panel [data-invoice-action="new-correction"]{color:#9b3429}
.invoice-month-archive>summary{cursor:pointer;font-weight:700;color:var(--ink,#193c4d)}
.invoice-month-archive p{font-size:.9rem;max-width:75ch;line-height:1.5}
.invoice-month-archive-controls{display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px}
.invoice-month-archive-controls>.field{max-width:240px;margin:0;flex:1 1 170px}
.invoice-month-archive-controls>.button{margin-bottom:1px}
.invoice-readiness-warning{border:1px solid #d6a344;border-left:5px solid #be850f;background:#fff8e6;color:#553a0c;padding:16px 20px;border-radius:12px;margin:0 0 18px}
.invoice-readiness-warning h2,.invoice-readiness-warning h3,.invoice-readiness-warning strong{color:#553a0c}
.invoice-readiness-warning h2,.invoice-readiness-warning h3{margin-top:0;font-size:1.05rem}
.invoice-readiness-warning .invoice-readiness-icon{display:inline;position:static;margin-left:.15em;font:inherit;font-weight:800}
.invoice-readiness-warning p{line-height:1.5;margin:.5rem 0}
.invoice-readiness-warning ul{padding-left:22px;margin:.7rem 0}
.invoice-readiness-warning li{margin:.4rem 0;overflow-wrap:anywhere}
.invoice-readiness-warning .button-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.invoice-required-customer{max-width:900px;margin:0 auto 20px}
.invoice-required-customer .form-grid{min-width:0}
.invoice-required-customer .field{min-width:0}
.invoice-required-customer .form-actions{display:flex;flex-wrap:wrap;gap:8px}
.booking-selected-services{display:grid;gap:8px}
.booking-selected-services>article{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:12px;border:1px solid var(--line,#dce5e9);border-radius:10px;background:#fff}
.booking-selected-services>article>div{flex:1 1 220px;min-width:0}
.booking-selected-services small,.booking-selected-services article>div>span{display:block;color:var(--muted,#617780);font-size:.85rem;line-height:1.5;margin-top:3px;overflow-wrap:anywhere}
.booking-service-dialog{width:min(820px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:0;border:1px solid #dce5e9;border-radius:16px;box-shadow:0 24px 80px #122c4640;color:var(--ink,#193c4d);background:#fff}
.booking-service-dialog::backdrop{background:#10243177}
.booking-service-dialog[open]{display:flex;flex-direction:column}
.booking-service-dialog>header,.booking-service-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;flex-shrink:0}
.booking-service-dialog>header{border-bottom:1px solid #dce5e9}
.booking-service-dialog>header>.button{flex:0 0 40px;width:40px;min-width:40px;padding:8px}
.booking-service-dialog>header h2{margin:2px 0;font-size:1.25rem}
.booking-service-dialog>footer{border-top:1px solid #dce5e9;background:#f4f8f8;flex-wrap:wrap}
.booking-service-dialog-content{overflow:auto;min-height:0;padding:16px 20px}
.booking-service-dialog-content>p{font-size:.9rem;line-height:1.5;color:var(--muted,#617780);margin:0 0 16px}
.booking-service-choice-list{display:grid;gap:10px;margin-top:16px}
.booking-service-choice{display:flex;align-items:center;gap:16px;border:1px solid #dce5e9;padding:12px;border-radius:10px}
.booking-service-choice[hidden]{display:none}
.booking-service-choice:has(input[type="checkbox"]:checked){background:#f0f8f6;border-color:#82b8ac}
.booking-service-choice>label:first-child{display:flex;align-items:flex-start;gap:10px;flex:1;min-width:0;cursor:pointer}
.booking-service-choice input[type="checkbox"]{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.booking-service-choice small{display:block;font-size:.8rem;font-weight:400;color:var(--muted,#617780);line-height:1.5;overflow-wrap:anywhere;margin-top:4px}
.booking-service-choice-quantity{width:100px;flex:0 0 100px;margin:0}
.booking-service-dialog [data-service-picker-error]{color:#9b3429;font-weight:600;margin-top:12px}
@media(max-width:600px){.booking-service-dialog{max-height:calc(100dvh - 16px);width:calc(100vw - 16px);max-width:calc(100vw - 16px)}.booking-service-dialog>header,.booking-service-dialog>footer,.booking-service-dialog-content{padding:12px}.booking-service-choice{gap:10px;align-items:flex-start;flex-wrap:wrap}.booking-service-choice>label:first-child{flex-basis:100%}.booking-service-choice-quantity{margin-left:28px}.booking-service-dialog>footer>.button-row{flex:1;justify-content:flex-end}.booking-service-dialog>footer>strong{font-size:.85rem}}
@media(max-width:700px){.invoice-more-actions>summary{width:100%;min-height:38px;font-size:12px;padding:9px}.invoice-more-actions-panel{width:280px}.invoice-delivery-ready{font-size:.8rem;gap:7px;margin-bottom:12px}}
@media print { .invoice-billing-options,.invoice-delivery-status { display: none !important; } }

/* Payment terms and customer finance views. */
.ipt-draft { padding:20px; margin:18px 0; border-color:#bfdad7; background:#f5faf9; }
.ipt-draft>.field { max-width:360px; }
.ipt-draft details { margin-top:14px; }
.ipt-draft details .field { max-width:460px; margin-top:12px; }
.ipt-draft [hidden] { display:none !important; }
.invoice-document-paper > .invoice-payment-terms { margin:auto 0 14px; padding:10px 0 0; background:transparent; border:0; font-size:10px; font-weight:400; line-height:1.5; color:#344541; break-inside:avoid; }
.invoice-payment-terms small { font-size:inherit; color:#65706d; }
.invoice-document-paper > .invoice-payment-terms + .invoice-document-footer { margin-top:0; }
.ipt-backdrop { position:fixed; inset:0; z-index:3600; background:rgba(15,35,46,.38); display:flex; align-items:center; justify-content:center; padding:24px; }
.ipt-dialog { background:white; width:min(780px,100%); max-height:90dvh; display:flex; flex-direction:column; border-radius:20px; box-shadow:0 22px 75px #132d4640; }
.ipt-dialog>header { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 24px; border-bottom:1px solid #dce5eb; }
.ipt-dialog h2 { margin:0; }
.ipt-content { overflow:auto; padding:24px; }
.ipt-content .field { margin-bottom:16px; }
.ipt-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.ipt-summary>div { padding:14px; background:#f2f7f6; border-radius:12px; }
.ipt-summary strong,.ipt-summary small { display:block; }
.ipt-summary small { margin-bottom:6px; }
.ipt-warning,.ipt-confirm { padding:14px; border:1px solid #e6d6aa; border-radius:12px; background:#fffaf0; }
.ipt-checkbox,.cf-checkbox { display:flex; align-items:flex-start; gap:10px; margin:16px 0; }
.ipt-checkbox input,.cf-checkbox input { flex:0 0 20px; width:20px; height:20px; }
.ipt-history article { padding:12px 0; border-bottom:1px solid #e0e8eb; overflow-wrap:anywhere; }
.customer-detail-tabs { display:flex; gap:12px; margin:0 0 20px; }
.cf-total-group { margin-bottom:18px; }
.cf-total-group header { margin-bottom:18px; }
.cf-total-group h3 { margin:0 0 6px; }
.cf-key-totals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.cf-key-totals>div { padding:16px; background:#f2f7f7; border-radius:14px; }
.cf-key-totals strong { display:block; font-size:1.8rem; margin:5px 0; }
.cf-key-totals small { display:block; color:#526875; }
.cf-money-details { display:grid; grid-template-columns:1fr auto; gap:10px; }
.cf-money-details dd { margin:0; font-weight:700; }
.cf-filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) auto; gap:12px; align-items:end; margin:24px 0; }
.cf-filters .field { min-width:0; }
.cf-row { padding:20px; margin:14px 0; background:white; border:1px solid #d6e2e9; border-radius:16px; }
.cf-row>header { display:flex; justify-content:space-between; gap:16px; margin-bottom:16px; }
.cf-row>header small,.cf-row-grid strong,.cf-row-grid small { display:block; }
.cf-row-grid { display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:18px; margin-bottom:16px; }
.cf-row-grid p { margin:6px 0; overflow-wrap:anywhere; }
.cf-overdue { color:#9c392a; font-weight:700; }
.cf-row details { margin-top:16px; }
.cf-row details li { margin:10px 0; }
.cf-review article { padding:14px 0; border-bottom:1px solid #d6e2e9; }
@media(max-width:700px){ .ipt-backdrop { padding:0; } .ipt-dialog { border-radius:0; max-height:100dvh; height:100dvh; } .ipt-dialog>header,.ipt-content { padding:16px; } .ipt-summary,.cf-key-totals,.cf-row-grid { grid-template-columns:1fr; } .cf-filters { grid-template-columns:1fr 1fr; } .cf-filters button { grid-column:1/-1; } .cf-key-totals strong { font-size:1.6rem; } .cf-row .button-row { display:grid; } .customer-detail-tabs { display:grid; grid-template-columns:1fr 1fr; } .customer-detail-tabs button { white-space:normal; } }
@media print { .ipt-draft,.ipt-backdrop { display:none!important; } }
/* Current financial dashboard totals retain separate issuers and currencies. */
.operations-billing-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}
.operations-billing-metrics .operations-metric strong{font-size:clamp(1.15rem,2vw,1.8rem);overflow-wrap:anywhere}
.operations-billing-metrics .operations-metric strong span{display:inline-block;max-width:100%}

.ipt-content>.button-row { margin:18px 0 24px; }
.ipt-content h3 { margin:20px 0 12px; }

.smtp-help { padding: 14px 18px; border: 1px solid #d8e4e1; border-radius: 12px; background:#f4f8f7; }
.smtp-help summary { cursor:pointer; font-weight:600; }
.smtp-help p, .smtp-help li { font-size:14px; line-height:1.6; }
.smtp-connection { padding:16px; border:1px solid #d8e4e1; border-radius:12px; }
.smtp-connection [data-status="success"] { color:#08614e; }
.smtp-connection [data-status="error"] { color:#9e3425; }
.smtp-connection p { margin-bottom:0; line-height:1.5; }

[data-prepayment-date][hidden], [data-prepayment-help][hidden] { display: none !important; }

/* Scope all operational dashboard figures to the selected property. */
.operations-property-filter { min-width:180px; max-width:320px; }
.operations-property-filter select { min-height:42px; width:100%; max-width:100%; border:1px solid var(--line); border-radius:10px; padding:8px 10px; color:var(--ink); background:white; font:inherit; }
@media(max-width:700px){.operations-property-filter { flex-basis:100%; max-width:none; min-width:0; }}
.prepayment-date-actions { display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 8px; }
.prepayment-date-actions .button { min-height:44px; }
.prepayment-calendar.range-dialog { width:min(440px,calc(100vw - 28px)); }
.prepayment-calendar .range-day { min-height:44px; }
.prepayment-calendar .range-footer { flex-wrap:wrap; }

/* Bookkeeping: separated sections and readable setup examples. */
.datev-workspace{display:grid;gap:18px;min-width:0}
.datev-workspace>.card,.datev-workspace>.page-header{margin:0;min-width:0}
.datev-examples{margin:16px 0;padding:14px;border:1px solid var(--border,#dce5e9);border-radius:12px;background:var(--surface-muted,#f5f8fa)}
.datev-examples summary,.datev-import-help summary{cursor:pointer}
.datev-examples dt{font-weight:650;margin-top:14px}.datev-examples dd{margin:5px 0 0;line-height:1.6}
.datev-import-help li{margin-block:10px}.datev-workspace .table-wrap{max-width:100%;overflow:auto}

/* Shared selection controls: same appearance in every workspace and dialog. */
:root input[type="checkbox"]:not([role="switch"]){
  appearance:none;-webkit-appearance:none;display:inline-block;box-sizing:border-box;position:relative;
  width:20px;height:20px;min-width:20px;min-height:20px;max-height:20px;flex:0 0 20px;
  padding:0;margin:2px 6px 2px 0;vertical-align:middle;border:1.5px solid #93aaa6;
  border-radius:6px;background-color:#fff;background-position:center;background-repeat:no-repeat;
  background-size:16px 16px;box-shadow:none;cursor:pointer;
}
:root input[type="checkbox"]:not([role="switch"]):checked{
  border-color:#0e827d;background-color:#0e827d;
}
:root input[type="checkbox"]:not([role="switch"])::after{content:"";display:none;position:absolute;left:6px;top:2px;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
:root input[type="checkbox"]:not([role="switch"]):checked::after{display:block}
:root input[type="checkbox"]:not([role="switch"]):indeterminate{
  border-color:#0e827d;background-color:#0e827d;
}
:root input[type="checkbox"]:not([role="switch"]):indeterminate::after{display:block;left:3px;top:7px;width:10px;height:0;border-width:0 0 2px;transform:none}
:root input[type="checkbox"]:not([role="switch"]):focus-visible{outline:3px solid #99d9d2;outline-offset:3px}
:root input[type="checkbox"]:not([role="switch"]):disabled{opacity:.5;cursor:not-allowed}
.integration-property-list>label,.integration-scope-list>label{
  display:flex;align-items:flex-start;gap:10px;min-height:48px;padding:12px;
  border:1px solid #d8e4e1;border-radius:12px;background:#fff;cursor:pointer;line-height:1.5;
}
.integration-property-list>label:has(input:checked),.integration-scope-list>label:has(input:checked){background:#eef8f5;border-color:#70afa6}
.integration-property-list>label:focus-within,.integration-scope-list>label:focus-within{outline:2px solid #99d9d2;outline-offset:2px}
@media(forced-colors:active){:root input[type="checkbox"]:not([role="switch"]){appearance:auto;-webkit-appearance:auto;forced-color-adjust:auto}:root input[type="checkbox"]:not([role="switch"])::after{display:none}}

/* Invoice search, document table and paging remain visibly separate. */
.card:has(> .field > [data-invoice-search])>.field{margin-bottom:20px}
.invoice-month-archive+.card{margin-top:20px}
.card:has(> .field > [data-invoice-search]) .invoice-pagination{margin-top:20px;display:flex;flex-wrap:wrap;align-items:end;gap:16px}
.invoice-document-toolbar{column-gap:16px;row-gap:12px}
.customer-search-status{min-height:1.4em;margin:0 0 16px}

/* Stable accounting filters and spacing before property results. */
.datev-selection-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px;align-items:end}
.datev-selection-grid>.datev-company{grid-column:1/-1;display:grid;gap:6px;min-width:0;margin:0}
.datev-company>span{font-size:13px;color:var(--muted,#667786)}
.datev-company>strong{font-size:18px;line-height:1.4;overflow-wrap:anywhere}
.datev-selection-grid>.field{min-width:0;margin:0}
.datev-selection-grid select,.datev-selection-grid input{height:48px;min-height:48px;box-sizing:border-box}
.field:has(>[data-property-search]),.field:has(>[data-resource-search]){margin-bottom:20px}
.logo-upload-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;margin:18px 0}
.logo-file-choice{display:flex;flex:1 1 300px;align-items:center;gap:12px;min-width:0}
.logo-file-button{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:46px;padding:10px 16px;border:1px solid #9fbdb6;border-radius:11px;background:#eef7f4;color:#17665e;cursor:pointer;font-size:14px;font-weight:700;overflow:hidden}
.logo-file-button input[type=file]{position:absolute;inset:0;opacity:0;width:100%;height:100%;padding:0;cursor:pointer}
.logo-file-button:focus-within{outline:3px solid #8acfc5;outline-offset:3px}
.logo-file-button:hover{background:#e0f0eb}
.logo-file-name{min-width:0;font-size:13px;line-height:1.5;overflow-wrap:anywhere;color:var(--muted,#667786)}
.logo-upload-row>.button-row{margin:0;gap:12px;align-items:center}
.logo-upload-row>.button-row>.button{min-height:46px}
@media(max-width:640px){.datev-selection-grid{grid-template-columns:minmax(0,1fr)}.logo-upload-row>.button-row{width:100%}.logo-file-choice{flex-basis:100%}}

/* Keep the format selector visually separate from the invoice draft below. */
.invoice-format-options{margin-bottom:20px}

.module-usage-dialog{box-sizing:border-box;width:calc(100% - 32px);max-width:620px;max-height:calc(100dvh - 32px);overflow:auto;padding:26px;border:1px solid #dce5e9;border-radius:18px;background:#fff;color:#243d4c;box-shadow:0 24px 90px #142c4055;font:inherit;line-height:1.6;scrollbar-width:thin}
.module-usage-dialog::backdrop{background:#172c4566;backdrop-filter:blur(4px)}
.module-usage-dialog h2{margin:0 0 16px;font-size:24px;line-height:1.25;letter-spacing:-.025em}
.module-usage-dialog .eyebrow{margin:0 0 8px}
.module-usage-dialog .button-row{margin-top:24px;gap:12px}
.module-usage-dialog .button{min-height:44px}
.platform-module-offers .module-usage-controls{margin-top:auto;padding-top:18px;border-top:1px solid #e3ebee;align-self:stretch;display:flex;flex-direction:column;gap:12px}
.platform-module-offers .module-usage-controls>.badge{align-self:flex-start}
.platform-module-offers .module-usage-controls>.button{width:100%;margin-top:auto;white-space:normal}
.module-usage-dialog[open]{display:flex;flex-direction:column;padding:0;overflow:hidden}
.module-usage-dialog>header{padding:24px 26px 20px;background:#f2f8f7;border-bottom:1px solid #dce7e4;flex:0 0 auto}
.module-usage-dialog>header p{margin:0 0 8px;color:#55716c;font-size:13px}
.module-usage-dialog>header h2{margin:0;overflow-wrap:anywhere}
.module-usage-body{padding:22px 26px 26px;overflow:auto;min-height:0;scrollbar-width:thin}
.module-usage-body>p{margin:0 0 16px;line-height:1.65}
.module-usage-dialog .button-row{display:flex;flex-wrap:wrap;justify-content:flex-end}
.module-usage-dialog .button-row .button{white-space:normal;min-width:0;max-width:100%;line-height:1.4}
.smart-provider-settings{width:100%;margin-top:14px}
.smart-provider-settings>summary{cursor:pointer;font-weight:650;padding:10px 0}
.smart-provider-settings .form-grid{grid-template-columns:minmax(0,1fr);margin-top:12px}
.ttlock-device-grid:has(.smart-provider-settings){grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
.smart-event-dialog{box-sizing:border-box;width:min(920px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid #dce7e4;border-radius:20px;color:#243d4c;background:#fff;box-shadow:0 24px 90px #142c4055;font:inherit}
.smart-event-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.smart-event-dialog::backdrop{background:#172c4566;backdrop-filter:blur(4px)}
.smart-event-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:22px 26px;background:#f2f8f7;border-bottom:1px solid #dce7e4}
.smart-event-dialog h2{margin:0;font-size:24px;overflow-wrap:anywhere}
.smart-event-dialog header p{margin:0 0 6px;font-size:13px;color:#55716c}
.smart-event-body{padding:24px;overflow:auto;min-height:0;scrollbar-width:thin;overscroll-behavior:contain}
.smart-event-facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.smart-event-facts p{margin:0;padding:12px;background:#f4f8f8;border:1px solid #e1eaea;border-radius:12px}
.smart-event-facts strong,.smart-event-facts span{display:block;overflow-wrap:anywhere}
.smart-event-facts strong{font-size:12px;margin-bottom:6px}
.smart-event-list{display:grid;gap:12px;margin:20px 0}
.smart-event-list article{border:1px solid #e1eaea;border-radius:12px;padding:16px;overflow-wrap:anywhere}
.smart-event-list article>div{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.smart-event-list p{margin:8px 0;font-size:14px}.smart-event-list small{color:#637b84}
.staff-access-create{border:1px solid #dce7e4;border-radius:12px;padding:16px;margin:20px 0}
.staff-access-create>summary{cursor:pointer;font-weight:700}
.staff-access-create .form-grid{margin-top:18px}
.staff-access-revoke{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #e1eaea}
.staff-access-revoke .field{flex:1 1 220px;margin:0}
.staff-access-revoke .button{flex:0 1 auto;white-space:normal}
@media(max-width:600px){.smart-event-dialog>header{padding:18px;align-items:start}.smart-event-dialog h2{font-size:20px}.smart-event-body{padding:18px}.smart-event-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.smart-event-body .button-row{display:grid;gap:10px}.smart-event-body .button{white-space:normal}}
@media(max-width:640px){.module-usage-dialog{padding:20px}.module-usage-dialog .button-row{display:grid;grid-template-columns:1fr}.module-usage-dialog .button-row .button{width:100%}}

.smtp-port-warning:not([hidden]){padding:12px 16px;border:1px solid #e4bc68;border-radius:10px;background:#fff6df;color:#714d10;margin:0;line-height:1.5}

/* SMTP setup: one focused dialog, same rounded scroll treatment as Hilfe. */
dialog.smtp-settings-dialog{width:min(920px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;border:1px solid #dce5e9;border-radius:22px;overflow:hidden;background:#fff;color:#19323d;box-shadow:0 28px 90px #16374040;}
dialog.smtp-settings-dialog[open]{display:flex;flex-direction:column;gap:0;}
dialog.smtp-settings-dialog::backdrop{background:rgba(16,37,47,.45);backdrop-filter:blur(3px);}
.smtp-settings-dialog .smtp-dialog-header,.smtp-settings-dialog .smtp-dialog-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:#f8fbfa;}
.smtp-settings-dialog .smtp-dialog-header{border-bottom:1px solid #e3eae8;}
.smtp-settings-dialog .smtp-dialog-header h2{margin:4px 0 0;font-size:23px;}
.smtp-settings-dialog .smtp-dialog-header .eyebrow{margin:0;}
.smtp-settings-dialog .smtp-dialog-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px;scrollbar-gutter:stable;}
.smtp-settings-dialog .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0;padding:0;}
.smtp-settings-dialog .form-grid>.full{grid-column:1/-1;}
.smtp-settings-dialog .form-grid>h2:first-child{display:none;}
.smtp-settings-dialog .field{min-width:0;margin:0;}
.smtp-settings-dialog .field input,.smtp-settings-dialog .field select{width:100%;min-width:0;}
.smtp-settings-dialog .smtp-help{padding:16px;background:#f5f8fa;border:1px solid #e0e8ec;border-radius:14px;overflow-wrap:anywhere;}
.smtp-settings-dialog .smtp-help summary{font-weight:650;cursor:pointer;}
.smtp-settings-dialog .smtp-connection{padding:18px;border:1px solid #dce6e3;border-radius:16px;display:grid;gap:12px;background:#f9fbfa;}
.smtp-settings-dialog .smtp-connection p{margin:0;}
.smtp-settings-dialog [data-status=error]{color:#a42d24;}
.smtp-settings-dialog [data-status=success]{color:#086951;}
.smtp-settings-dialog .smtp-dialog-save{display:grid;gap:10px;justify-items:start;}
.smtp-settings-dialog .smtp-dialog-save p{margin:0;}
.smtp-settings-dialog .smtp-dialog-footer{border-top:1px solid #e3eae8;font-size:13px;color:#526d76;}
.company-communication-actions{flex-wrap:wrap;justify-content:flex-end;}
@media(max-width:620px){dialog.smtp-settings-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:18px;}.smtp-settings-dialog .smtp-dialog-header,.smtp-settings-dialog .smtp-dialog-footer{padding:15px;flex-wrap:wrap;}.smtp-settings-dialog .smtp-dialog-header h2{font-size:20px;}.smtp-settings-dialog .smtp-dialog-scroll{padding:17px 15px;}.smtp-settings-dialog .form-grid{grid-template-columns:minmax(0,1fr);gap:18px;}.smtp-settings-dialog .smtp-dialog-footer .button{width:100%;}.company-communication-actions{justify-content:flex-start;}}

/* Object service catalogue: separate catalogue and editor, with mobile service cards. */
.property-detail-dialog-content[data-property-panel="services"] .card-header{margin-bottom:18px;line-height:1.6}
.property-detail-dialog-content [data-form="service-product"]{margin-top:26px;padding:22px;border:1px solid var(--border,#dce5e7);border-radius:14px;background:#f6f9f8;gap:20px}
.property-detail-dialog-content [data-form="service-product"] h3{margin:0;font-size:18px}
.property-detail-dialog-content [data-form="service-product"] .form-actions{grid-column:1/-1;padding-top:4px}
.property-detail-dialog-content [data-form="edit-service-product"]{padding:18px;background:#f6f9f8;border:1px solid #dce5e7;border-radius:12px;gap:18px}
.property-detail-dialog-content [data-form="edit-service-product"] .button-row{grid-column:1/-1;margin-top:4px}
.property-detail-dialog-content[data-property-panel="services"] .table-wrap{border:1px solid #dce5e7;border-radius:12px;scrollbar-width:thin;max-height:38vh}
.property-detail-dialog-content[data-property-panel="services"] th{background:#f0f5f4;position:sticky;top:0;z-index:1;font-size:12px;white-space:nowrap}
.property-detail-dialog-content[data-property-panel="services"] td{padding:15px 12px;vertical-align:middle;line-height:1.5}
.property-detail-dialog-content[data-property-panel="services"] td.button-row{display:table-cell;min-width:245px}
.property-detail-dialog-content[data-property-panel="services"] td.button-row .button{margin:3px 4px 3px 0;min-height:38px;padding:8px 10px;font-size:12px}
@media(max-width:700px){
.property-detail-dialog-content [data-form="service-product"]{padding:16px;margin-top:22px;gap:16px;grid-template-columns:minmax(0,1fr)}
.property-detail-dialog-content [data-form="edit-service-product"]{padding:14px;grid-template-columns:minmax(0,1fr)}
.property-detail-dialog-content[data-property-panel="services"] .table-wrap{max-height:none;overflow:visible;border:0}
.property-detail-dialog-content[data-property-panel="services"] table,.property-detail-dialog-content[data-property-panel="services"] tbody{display:block;width:100%;min-width:0}
.property-detail-dialog-content[data-property-panel="services"] thead{display:none}
.property-detail-dialog-content[data-property-panel="services"] tbody>tr{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;margin-bottom:14px;padding:16px;border:1px solid #dce5e7;border-radius:12px;background:#fff}
.property-detail-dialog-content[data-property-panel="services"] td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}
.property-detail-dialog-content[data-property-panel="services"] td:first-child{grid-column:1/-1}
.property-detail-dialog-content[data-property-panel="services"] td:nth-child(2):before{content:"Kategorie"}
.property-detail-dialog-content[data-property-panel="services"] td:nth-child(3):before{content:"Preis je Einheit"}
.property-detail-dialog-content[data-property-panel="services"] td:nth-child(4):before{content:"MwSt."}
.property-detail-dialog-content[data-property-panel="services"] td:nth-child(5):before{content:"Status"}
.property-detail-dialog-content[data-property-panel="services"] td:before{display:block;color:var(--muted,#657b83);font-size:11px;margin-bottom:4px}
.property-detail-dialog-content[data-property-panel="services"] td.button-row{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1;min-width:0;padding-top:10px;border-top:1px solid #e8eeee}
.property-detail-dialog-content[data-property-panel="services"] td.button-row .button{margin:0}
}

.property-detail-dialog-content[data-property-panel="services"] [data-form="service-product"] .form-actions{position:static;inset:auto;margin:0;padding:6px 0 0;background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.property-detail-dialog-content[data-property-panel="services"] td.button-row .button{flex:0 0 auto;white-space:nowrap;overflow-wrap:normal}

.property-detail-dialog-content[data-property-panel="services"] [data-form="service-product"] .form-actions>.button{background:#0f766e;color:#fff;border-color:#0f766e}
.property-detail-dialog-content[data-property-panel="services"] [data-form="service-product"] .form-actions>.button:hover{background:#115e59;border-color:#115e59;color:#fff}

/* Readiness actions must remain separated, including when both format and customer data need attention. */
.invoice-readiness-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.invoice-readiness-actions:empty{display:none}
.invoice-readiness-actions>.button{margin:0}
.invoice-readiness-actions>p{flex-basis:100%;margin:0}
@media(max-width:600px){.invoice-readiness-actions>.button{flex:1 1 100%;width:100%;white-space:normal}}

.invoice-inline-link{display:inline;padding:0;border:0;border-radius:0;background:none;color:inherit;font:inherit;line-height:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;white-space:normal}
.invoice-inline-link:hover{color:var(--accent,#087f7b)}
.invoice-inline-link:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.account-security-dialog{width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 48px);box-sizing:border-box;border:1px solid #d2ded5;border-radius:20px;padding:26px;color:#193e39;background:#f9faf6;overflow-y:auto}.account-security-dialog::backdrop{background:#15352e77}.account-security-dialog header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.account-security-dialog h2{margin:0}.account-security-dialog .field{display:grid;gap:8px;margin:18px 0}.account-security-dialog input{width:100%;box-sizing:border-box;min-height:46px;border:1px solid #cbd8ce;border-radius:10px;padding:10px;font:inherit}.security-qr{width:210px;max-width:100%;margin:20px auto}.security-secret,.security-codes{display:block;padding:16px;background:#edf2e7;overflow-wrap:anywhere;white-space:pre-wrap}.account-security-dialog .form-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}

/* Shared visual language for the public entrance and CRM sign-in. */
body:has(.auth-layout){background:#f7f7f2;color:#193e39;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.auth-layout{max-width:1240px;min-height:calc(100dvh - 72px);margin:36px auto;padding:0 28px;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px;align-items:start;background:transparent}
.auth-layout .auth-story{background:transparent;color:#193e39;padding:32px 16px 32px 0;min-height:0;display:flex;flex-direction:column;gap:32px;overflow:visible}
.auth-layout .auth-story::after{display:none}.auth-layout .auth-story .brand{color:#193e39}.auth-layout .brand small{color:#65756d}.auth-layout .brand-mark{background:#215e50;color:#fff;border-radius:10px}
.auth-layout .story-copy h1{font-size:clamp(34px,4vw,48px);letter-spacing:-.045em;line-height:1.15;color:#193e39;margin:22px 0}.auth-layout .story-copy p,.auth-layout .story-list,.auth-layout .auth-story>.small{color:#65756d;line-height:1.7}.auth-layout .eyebrow{color:#557756;letter-spacing:.12em}
.auth-layout .auth-main{padding:24px 0;min-width:0;background:transparent;display:block}.auth-layout .auth-box{box-sizing:border-box;width:100%;padding:32px;border:1px solid #dce4da;border-radius:20px;background:#fff;box-shadow:0 18px 45px #244f3910}
.auth-layout .auth-box h2{font-size:28px;letter-spacing:-.035em;color:#193e39}.auth-layout .auth-tabs{display:flex;gap:5px;background:#e9eee3;border:1px solid #dce4d5;border-radius:12px;padding:6px;margin:24px 0;flex-wrap:wrap}.auth-layout .auth-tab{flex:1;padding:11px 10px;min-height:44px;border:1px solid transparent;border-radius:9px;color:#526355;background:transparent;font:inherit;font-size:14px}.auth-layout .auth-tab.active{color:#214f41;background:white;border-color:#dce4d5;box-shadow:0 2px 7px #173e3910}
.auth-layout .field input,.auth-layout .field textarea,.auth-layout .field select{font-size:15px;min-height:46px;border-color:#ccd8cf;border-radius:10px;color:#193e39}.auth-layout .button{background:#215e50;border-color:#215e50;border-radius:10px;min-height:46px;font-size:14px}.auth-layout .button:hover{background:#174b3f}.auth-layout .button.secondary{color:#215e50;background:#fff;border-color:#ccd8cf;box-shadow:none}.auth-layout .button.secondary:hover{color:#174b3f;background:#edf2e7;border-color:#a9c3b4}.auth-layout a{color:#28644e;text-underline-offset:4px}.auth-layout .form-grid{gap:20px}.auth-layout .form-actions{margin-top:8px}.auth-layout .form-actions>.button{width:100%}.auth-layout .muted{font-size:14px;line-height:1.6;color:#65756d}
@media(max-width:850px){.auth-layout{gap:28px;padding:0 24px}.auth-layout .auth-box{padding:26px}.auth-layout .auth-story{padding-top:30px}}
@media(max-width:680px){.auth-layout{grid-template-columns:1fr;margin:18px auto;padding:0 18px;gap:12px}.auth-layout .auth-story{padding:10px 3px;gap:14px}.auth-layout .story-copy h1{font-size:30px;margin:14px 0}.auth-layout .story-list,.auth-layout .auth-story>.small{display:none}.auth-layout .auth-main{padding:8px 0 28px}.auth-layout .auth-box{padding:24px 20px}.auth-layout .auth-tab{font-size:13px;padding:10px 7px}}

/* Public CRM entry shares the same brand, spacing and contrast as email links. */
.auth-entry-shell .auth-layout{margin-top:26px}.auth-entry-shell .auth-story{padding-top:28px}.auth-entry-shell .story-list{color:#53695d}.auth-entry-shell .story-list li{color:inherit}.auth-entry-shell .story-list li::before{color:#527746}.auth-home-link{color:#36594b;min-height:44px;display:inline-flex;align-items:center;font-size:14px;text-decoration:none}.auth-home-link:hover{text-decoration:underline}.auth-account-link{margin-top:24px;padding-top:20px;border-top:1px solid #dce4da}.auth-account-link>a{display:inline-flex;align-items:center;min-height:44px;color:#215e50;font-weight:600;font-size:14px;text-underline-offset:4px}.auth-account-link>p{font-size:13px;line-height:1.65;color:#627469;margin:8px 0 0}.auth-module-choice{display:block;padding:16px;border:1px solid #dce4da;border-radius:12px;background:#f7f8f4}.auth-module-choice>summary{cursor:pointer;min-height:44px;align-content:center;font-weight:600;color:#193e39}.auth-module-choice>.module-grid{margin-top:18px}.auth-entry-shell .entry-site-footer{margin-top:0}.auth-entry-shell a:focus-visible,.auth-module-choice>summary:focus-visible{outline:3px solid #b8d6b8;outline-offset:3px;border-radius:4px}
@media(max-width:680px){.auth-entry-shell .auth-layout{margin-top:18px}.auth-entry-shell .auth-story{padding-top:4px}.auth-entry-shell .entry-site-header{margin-top:8px}.auth-entry-shell .auth-home-link{font-size:12px}.auth-entry-shell .auth-box .form-grid>.full{grid-column:1/-1}}
.auth-entry-shell .auth-box .form-grid>.full{grid-column:1/-1}

/* Keep long German login titles inside the narrow account card. */
.auth-entry-shell .auth-box h2{overflow-wrap:anywhere;hyphens:auto}

/* Keep account instructions and each credential pair on their own full row. */
.smart-access-connect-form>.full,.smart-access-connect-form>.form-actions{grid-column:1/-1}
.smart-access-connect-form>.full{min-width:0}
.smart-access-credential-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:end}
.smart-access-credential-row>.field{min-width:0;margin:0}
.smart-access-credential-row .password-control{width:100%}
.smart-access-connect-form>p:empty{display:none}
@media(max-width:620px){.smart-access-credential-row{grid-template-columns:minmax(0,1fr)}}

.smart-pin-editor .full{grid-column:1/-1}.smart-pin-digits{display:flex;flex-wrap:wrap;gap:10px}.smart-pin-digits label{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid #cfdcd8;border-radius:10px}.smart-pin-digits input,.smart-room-choice input{width:18px;min-height:18px;height:18px;flex:0 0 18px;margin:0;accent-color:#137d75}
.ttlock-resource-list{display:block!important}.ttlock-resource-list[hidden]{display:none!important}.smart-room-group{margin:14px 0;padding:16px;border:1px solid #d9e4e0;border-radius:12px;background:#f8fbfa}.smart-room-group h4{margin:0 0 10px}.smart-room-choice{display:flex;align-items:flex-start;gap:12px;padding:10px 8px;cursor:pointer}.smart-room-choice>span{display:grid;gap:3px}.smart-room-choice small{font-weight:400;color:#5a6e7b}.smart-room-children{margin-left:16px;border-left:2px solid #d9e4e0;padding-left:12px}

.integration-setup-links{margin:16px 0;padding:16px 20px;border:1px solid #d9e5df;border-radius:14px;background:#f4f8f5}.integration-setup-links h3{margin:0 0 10px;font-size:1rem}.integration-setup-links ul{display:grid;gap:14px;margin:0 0 12px;padding-left:20px}.integration-setup-links a{text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.integration-setup-links small{display:block;line-height:1.5;margin-top:4px}

.booking-customer-link{text-decoration:underline;text-underline-offset:3px;cursor:pointer;overflow-wrap:anywhere}
