:root {
  --canvas: #ffffff;
  --soft: #f7faf9;
  --soft-blue: #f4f7fb;
  --ink: #111816;
  --muted: #66736e;
  --subtle: #8b9691;
  --line: #dfe7e3;
  --line-strong: #cdd9d3;
  --brand: #087a55;
  --brand-dark: #075f45;
  --brand-soft: #e9f8f1;
  --brand-bright: #3fffa9;
  --blue: #2563eb;
  --blue-soft: #edf3ff;
  --amber: #a96400;
  --amber-soft: #fff5d9;
  --red: #b93831;
  --red-soft: #fff0ee;
  --shadow: 0 12px 32px rgba(25, 45, 36, 0.08);
  --sidebar: 232px;
  --topbar: 72px;
  --preview: 0px;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--canvas);
}

* { box-sizing: border-box; }
html { min-width: 320px; background: var(--canvas); }
body { margin: 0; min-height: 100vh; background: var(--canvas); color: var(--ink); }
button, input, select, textarea { font: inherit; letter-spacing: 0; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.22); outline-offset: 2px; }
a:focus-visible { outline: 3px solid rgba(37, 99, 235, 0.22); outline-offset: 2px; }
svg { width: 18px; height: 18px; stroke-width: 1.8; }
.hidden { display: none !important; }
.overlay-open { overflow: hidden; }

.auth-gate {
  min-height: 100vh;
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) minmax(420px, 1.05fr);
  background: #fff;
}
.auth-brand-panel { min-height: 100vh; display: flex; flex-direction: column; justify-content: space-between; gap: 60px; padding: clamp(36px, 6vw, 84px); background: #f6faf8; border-right: 1px solid var(--line); }
.auth-brand-panel img { width: min(360px, 100%); height: auto; }
.auth-brand-panel > div { max-width: 560px; }
.auth-brand-panel h1 { max-width: 540px; font-size: clamp(38px, 5vw, 64px); line-height: 1.02; }
.auth-brand-panel p:last-child { max-width: 530px; margin: 20px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.auth-form-panel { min-height: 100vh; display: grid; place-items: center; padding: clamp(28px, 6vw, 80px); }
.auth-card { width: min(430px, 100%); display: grid; gap: 18px; }
.auth-card h2 { font-size: 34px; }
.auth-intro { margin: -6px 0 4px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.form-field { display: grid; gap: 7px; color: #37443f; font-size: 12px; font-weight: 760; }
.form-field > input, .password-field { min-height: 46px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; }
.form-field > input { width: 100%; padding: 0 13px; }
.password-field { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: center; overflow: hidden; }
.password-field input { width: 100%; height: 44px; padding: 0 13px; border: 0; outline: 0; background: transparent; }
.password-toggle { width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-left: 1px solid var(--line); color: var(--muted); background: transparent; cursor: pointer; }
.password-toggle:hover { color: var(--ink); background: var(--soft); }
.auth-submit { width: 100%; min-height: 46px; margin-top: 2px; }
.auth-submit:disabled { cursor: wait; opacity: 0.7; }
.form-error { margin: -4px 0 0; padding: 10px 12px; border: 1px solid #f1c0bb; border-radius: 6px; color: var(--red); background: var(--red-soft); font-size: 12px; line-height: 1.45; }
.form-success { margin: -4px 0 0; padding: 10px 12px; border: 1px solid #bde1d1; border-radius: 6px; color: var(--brand-dark); background: var(--brand-soft); font-size: 12px; line-height: 1.45; }
.auth-links { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.auth-links .text-button { padding: 0; }
.text-link { width: fit-content; color: var(--brand-dark); font-size: 12px; font-weight: 760; text-decoration: none; }
.text-link:hover { text-decoration: underline; }
.access-gate { min-height: 100vh; display: grid; place-items: center; padding: 24px; background: var(--soft); }
.access-gate-card { width: min(640px, 100%); padding: clamp(28px, 5vw, 54px); border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.access-gate-card h1 { margin-top: 8px; font-size: clamp(28px, 4vw, 42px); }
.access-gate-card > p:not(.eyebrow) { margin: 16px 0 0; color: var(--muted); line-height: 1.6; }
.gate-icon { width: 46px; height: 46px; margin-bottom: 24px; display: grid; place-items: center; border-radius: 7px; color: var(--amber); background: var(--amber-soft); }
.gate-actions { display: flex; align-items: center; gap: 10px; margin-top: 28px; }

.preview-strip {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  height: var(--preview);
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px;
  color: #33413c;
  background: #eef4f1;
  border-bottom: 1px solid #dce7e1;
  font-size: 12px;
  font-weight: 700;
}

.role-switch { max-width: 100%; display: flex; align-items: center; gap: 2px; padding: 2px; overflow-x: auto; background: #dce7e1; border-radius: 6px; }
.role-button { border: 0; padding: 4px 10px; border-radius: 4px; background: transparent; color: #53615b; font-size: 11px; font-weight: 800; cursor: pointer; }
.role-button { white-space: nowrap; }
.role-button.active { color: var(--brand-dark); background: #fff; box-shadow: 0 1px 3px rgba(20, 40, 30, 0.12); }

.app-shell { min-height: 100vh; padding-top: var(--preview); background: var(--canvas); }
.topbar {
  position: fixed;
  top: var(--preview);
  left: 0;
  right: 0;
  z-index: 40;
  height: var(--topbar);
  display: grid;
  grid-template-columns: var(--sidebar) minmax(0, 1fr) auto;
  align-items: center;
  padding: 0 24px 0 20px;
  background: rgba(255, 255, 255, 0.97);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(12px);
}

.brand { display: flex; align-items: center; width: 188px; height: 44px; overflow: hidden; }
.brand img { width: 188px; height: auto; display: block; }
.topbar-context { display: flex; align-items: center; gap: 8px; min-width: 0; padding-left: 20px; color: var(--muted); font-size: 14px; }
.topbar-context strong { color: var(--ink); font-weight: 750; }
.context-divider { color: #b1bbb7; }
.topbar-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.icon-button, .sync-button { display: inline-grid; place-items: center; border: 1px solid var(--line); background: #fff; cursor: pointer; }
.icon-button { width: 38px; height: 38px; border-radius: 7px; color: #51605a; }
.icon-button:hover { background: var(--soft); color: var(--ink); }
.avatar-button { display: inline-grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: #fff; background: #17221e; font-size: 12px; font-weight: 800; }
.connection-status { height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 4px 0 12px; border: 1px solid var(--line); border-radius: 7px; color: #41504a; background: #fff; font-size: 12px; font-weight: 750; }
.sync-button { width: 30px; height: 30px; border: 0; border-left: 1px solid var(--line); color: var(--brand); background: transparent; }
.sync-button.syncing svg { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: #9ba6a1; flex: 0 0 auto; }
.status-dot.good { background: #18a36f; box-shadow: 0 0 0 3px #e3f6ed; }
.status-dot.warning { background: #e8a921; box-shadow: 0 0 0 3px var(--amber-soft); }
.connection-status[data-status="loading"] { color: var(--muted); }
.connection-status[data-status="offline"] { color: var(--red); border-color: #efc8c4; background: var(--red-soft); }

.sidebar {
  position: fixed;
  top: calc(var(--preview) + var(--topbar));
  bottom: 0;
  left: 0;
  z-index: 30;
  width: var(--sidebar);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 22px 14px 18px;
  background: #fbfcfc;
  border-right: 1px solid var(--line);
}
.desktop-nav { display: grid; gap: 4px; }
.nav-item { width: 100%; min-height: 42px; display: grid; grid-template-columns: 22px 1fr auto; align-items: center; gap: 10px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: #5d6864; text-align: left; font-size: 14px; font-weight: 690; cursor: pointer; }
.nav-item:hover { background: #f0f5f2; color: var(--ink); }
.nav-item.active { color: var(--brand-dark); background: var(--brand-soft); box-shadow: inset 3px 0 var(--brand); }
.nav-count { display: inline-grid; min-width: 22px; height: 22px; place-items: center; padding: 0 6px; border-radius: 11px; color: #fff; background: var(--red); font-size: 11px; }
.nav-divider { height: 1px; margin: 12px 10px; background: var(--line); }
.nav-heading { margin: 2px 12px 5px; color: #99a39f; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.sidebar-footer { padding-top: 16px; display: grid; gap: 12px; border-top: 1px solid var(--line); }
.profile-mini { display: flex; align-items: center; gap: 10px; padding: 4px; min-width: 0; }
.profile-avatar { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; color: #fff; background: #17221e; font-size: 11px; font-weight: 800; }
.profile-mini > span:last-child { display: grid; min-width: 0; }
.profile-mini strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.profile-mini small { margin-top: 2px; color: var(--muted); font-size: 11px; }
.sidebar-legacy-link { min-height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border-radius: 6px; color: var(--muted); font-size: 10px; font-weight: 700; text-decoration: none; }
.sidebar-legacy-link:hover { color: var(--ink); background: var(--soft); }
.sidebar-legacy-link svg { width: 14px; height: 14px; }
.sidebar-install { min-height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border: 0; border-radius: 6px; color: var(--brand-dark); background: var(--brand-soft); font-size: 10px; font-weight: 760; cursor: pointer; }
.sidebar-install:hover { background: #dff3e9; }
.sidebar-install svg { width: 14px; height: 14px; }
.sidebar-logout { min-height: 38px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 720; cursor: pointer; }
.sidebar-logout:hover { color: var(--ink); background: var(--soft); }

.main-content { min-height: 100vh; margin-left: var(--sidebar); padding: calc(var(--preview) + var(--topbar) + 32px) clamp(24px, 4vw, 60px) 70px; background: #fff; }
.view { display: none; max-width: 1500px; margin: 0 auto; }
.view.active { display: block; }
.page-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 30px; }
.page-heading.compact { align-items: center; }
.eyebrow { margin: 0 0 8px; color: var(--brand); font-size: 11px; font-weight: 850; text-transform: uppercase; }
h1, h2, h3, p { letter-spacing: 0; }
h1 { margin: 0; font-size: clamp(30px, 3.1vw, 44px); line-height: 1.06; font-weight: 780; }
h2 { margin: 0; font-size: 20px; line-height: 1.2; font-weight: 760; }
h3 { margin: 0; font-size: 16px; }
.page-description { max-width: 650px; margin: 10px 0 0; color: var(--muted); font-size: 15px; line-height: 1.55; }
.heading-actions, .board-controls { display: flex; align-items: center; gap: 10px; }
.primary-button, .secondary-button, .row-button, .filter-button, .text-button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 7px; font-size: 13px; font-weight: 760; cursor: pointer; text-decoration: none; }
.primary-button { padding: 0 16px; border: 1px solid var(--brand); color: #fff; background: var(--brand); }
.primary-button:hover { border-color: var(--brand-dark); background: var(--brand-dark); }
.primary-button:disabled, .secondary-button:disabled, .danger-button:disabled { cursor: wait; opacity: 0.58; }
.secondary-button, .filter-button { padding: 0 14px; border: 1px solid var(--line-strong); color: #35423d; background: #fff; }
.secondary-button:hover, .filter-button:hover { background: var(--soft); }
.text-button { min-height: 32px; padding: 0 2px; border: 0; color: var(--brand); background: transparent; }
.row-button { min-height: 34px; padding: 0 13px; border: 1px solid var(--line-strong); color: #34423c; background: #fff; }
.row-button:hover { color: var(--brand-dark); border-color: #acd8c5; background: var(--brand-soft); }

.portfolio-band { padding: 22px 24px; margin-bottom: 24px; display: grid; grid-template-columns: minmax(260px, 1fr) minmax(260px, 1.2fr) auto; align-items: center; gap: 28px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.portfolio-copy, .customer-health { display: flex; align-items: center; gap: 14px; min-width: 0; }
.portfolio-copy > div, .customer-health > div { display: grid; gap: 4px; }
.portfolio-copy strong, .customer-health strong { font-size: 17px; }
.portfolio-copy span, .customer-health span { color: var(--muted); font-size: 12px; line-height: 1.4; }
.summary-icon { width: 42px; height: 42px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 7px; color: var(--brand); background: var(--brand-soft); }
.summary-icon svg { width: 22px; height: 22px; }
.health-distribution { height: 10px; display: flex; gap: 3px; overflow: hidden; border-radius: 5px; background: #eef2f0; }
.health-distribution .bar { width: 0; min-width: 0; height: 100%; flex-basis: 0; }
.bar.healthy { background: #18a36f; }.bar.attention { background: #efb633; }.bar.setup { background: #9aa5a0; }
.portfolio-stats { display: flex; align-items: stretch; }
.summary-filter, .summary-metric { min-width: 76px; padding: 2px 15px; display: grid; align-content: center; gap: 3px; border: 0; border-left: 1px solid var(--line); background: transparent; text-align: left; }
.summary-filter { cursor: pointer; }
.summary-filter.active { color: var(--brand-dark); }
.summary-filter strong, .summary-metric strong { font-size: 18px; }
.summary-filter span, .summary-metric span { color: var(--muted); font-size: 10px; white-space: nowrap; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 0.75fr); gap: 24px; margin-bottom: 24px; }
.content-section { min-width: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.section-heading { min-height: 68px; padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--line); }
.section-heading .eyebrow { margin-bottom: 5px; }
.count-badge { min-width: 26px; height: 26px; display: grid; place-items: center; border-radius: 13px; color: var(--brand-dark); background: var(--brand-soft); font-size: 11px; font-weight: 800; }

.action-list, .arrival-list, .context-list, .simple-list { display: grid; }
.action-row { min-height: 78px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.action-row:last-child { border-bottom: 0; }
.action-row.urgent { background: #fffdf7; }
.action-icon, .list-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; color: var(--brand); background: var(--brand-soft); }
.action-row.urgent .action-icon { color: var(--amber); background: var(--amber-soft); }
.action-copy { min-width: 0; display: grid; gap: 5px; }
.action-copy strong { font-size: 13px; line-height: 1.35; }
.action-copy span { overflow: hidden; color: var(--muted); font-size: 11px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.severity-chip, .readiness, .status-chip { display: inline-flex; align-items: center; justify-content: center; gap: 5px; min-height: 26px; padding: 0 9px; border-radius: 13px; font-size: 10px; font-weight: 820; white-space: nowrap; }
.severity-chip.warning, .readiness.warning, .status-chip.warning { color: var(--amber); background: var(--amber-soft); }
.severity-chip.critical, .status-chip.critical { color: var(--red); background: var(--red-soft); }
.severity-chip.info, .status-chip.info { color: var(--blue); background: var(--blue-soft); }
.readiness.good, .status-chip.good { color: var(--brand-dark); background: var(--brand-soft); }
.status-chip.neutral { color: #68736e; background: #eff3f1; }

.arrival-row { min-height: 72px; width: 100%; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 12px 16px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }
.arrival-row:last-child { border-bottom: 0; }
.arrival-row:hover { background: var(--soft); }
.context-row { min-height: 68px; width: 100%; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 11px 15px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }
.context-row:last-child { border-bottom: 0; }
.context-row:hover { background: var(--soft); }
.context-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 7px; }
.context-icon.hospitality { color: var(--blue); background: var(--blue-soft); }
.context-icon.business { color: var(--brand-dark); background: var(--brand-soft); }
.context-icon.always-on { color: #5f6965; background: #eff3f1; }
.context-icon svg { width: 17px; height: 17px; }
.date-tile { width: 40px; height: 44px; display: grid; place-items: center; align-content: center; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); }
.date-tile strong { font-size: 16px; line-height: 1; }.date-tile small { margin-top: 3px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.arrival-copy { min-width: 0; display: grid; gap: 4px; }
.arrival-copy strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.arrival-copy small { color: var(--muted); font-size: 10px; }
.readiness svg { width: 13px; height: 13px; }

.locations-section { overflow: hidden; }
.locations-heading { min-height: 74px; }
.search-field { min-width: 230px; height: 38px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--muted); background: #fff; }
.search-field.wide { width: min(470px, 100%); }
.search-field input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 12px; }
.search-field svg { flex: 0 0 auto; width: 16px; height: 16px; }
.location-board { width: 100%; overflow-x: auto; }
.board-header, .location-row { min-width: 980px; display: grid; grid-template-columns: minmax(220px, 1.5fr) 100px 88px 88px 100px 150px 90px 34px; align-items: center; column-gap: 12px; }
.board-header { min-height: 38px; padding: 0 18px; color: #8a9690; background: var(--soft); border-bottom: 1px solid var(--line); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.location-row { min-height: 78px; width: 100%; padding: 12px 18px; border: 0; border-bottom: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; }
.location-row:last-child { border-bottom: 0; }
.location-row:hover { background: #fbfdfc; }
.location-row.filtered-out { display: none; }
.location-identity { min-width: 0; display: grid; gap: 5px; }
.location-identity strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.location-identity span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.system-state { display: grid; gap: 4px; }
.system-state strong { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; }
.system-state small { color: var(--muted); font-size: 9px; }
.mini-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #a6b0ab; }
.mini-dot.good { background: #18a36f; }.mini-dot.warning { background: #e8a921; }.mini-dot.critical { background: #d45149; }.mini-dot.neutral { background: #a6b0ab; }
.last-seen { color: var(--muted); font-size: 10px; }
.row-chevron { color: #96a19c; }

.directory-section, .queue-section { overflow: hidden; }
.directory-toolbar { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.segmented-control { display: flex; gap: 2px; padding: 3px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.segmented-control button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 5px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 750; cursor: pointer; }
.segmented-control button.active { color: var(--ink); background: #fff; box-shadow: 0 1px 3px rgba(20, 40, 30, 0.1); }
.directory-card { min-height: 82px; display: grid; grid-template-columns: minmax(220px, 1fr) minmax(160px, 0.7fr) minmax(240px, 1fr) auto; align-items: center; gap: 20px; padding: 14px 20px; border-bottom: 1px solid var(--line); }
.directory-card:last-child { border-bottom: 0; }.directory-card:hover { background: var(--soft); }
.directory-card > div { min-width: 0; display: grid; gap: 4px; }
.directory-card strong { font-size: 13px; }.directory-card span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.source-stack { display: flex !important; flex-direction: row; flex-wrap: wrap; gap: 6px !important; }
.source-pill { min-height: 25px; display: inline-flex; align-items: center; gap: 5px; padding: 0 8px; border: 1px solid var(--line); border-radius: 5px; color: #435049 !important; background: #fff; font-size: 9px !important; font-weight: 750; }
.source-pill.muted { color: var(--muted) !important; background: var(--soft); }
.directory-action { display: flex !important; align-items: center; justify-content: flex-end; grid-auto-flow: column; gap: 8px !important; }
.profile-badge { width: fit-content; min-height: 23px; display: inline-flex; align-items: center; gap: 5px; padding: 0 7px; border-radius: 5px; color: #45534d !important; background: #f0f4f2; font-size: 9px !important; font-weight: 780; }
.profile-badge svg { width: 12px; height: 12px; }
.profile-badge.hospitality { color: #315da8 !important; background: var(--blue-soft); }
.profile-badge.business { color: var(--brand-dark) !important; background: var(--brand-soft); }
.profile-badge.always-on { color: #5f6965 !important; background: #eff3f1; }

.organization-directory { overflow: hidden; }
.organization-row { min-height: 86px; display: grid; grid-template-columns: 40px minmax(230px, 1.2fr) minmax(150px, 0.65fr) minmax(170px, 0.75fr) auto; align-items: center; gap: 16px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.organization-row:last-child { border-bottom: 0; }
.organization-row:hover { background: var(--soft); }
.organization-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 7px; color: var(--brand-dark); background: var(--brand-soft); }
.organization-copy, .organization-owner, .organization-stats { min-width: 0; display: grid; gap: 4px; }
.organization-copy strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.organization-copy span, .organization-owner span, .organization-stats span { overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.organization-owner strong, .organization-stats strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.organization-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.organization-type-chip { min-height: 23px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 5px; color: #45534d; background: #eff3f1; font-size: 9px; font-weight: 780; }
.organization-type-chip.business { color: var(--brand-dark); background: var(--brand-soft); }
.organization-type-chip.hospitality { color: #315da8; background: var(--blue-soft); }
.organization-type-chip.mixed { color: var(--amber); background: var(--amber-soft); }
.organization-empty, .access-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 28px; color: var(--muted); text-align: center; }
.organization-empty svg, .access-empty svg { width: 28px; height: 28px; color: var(--brand); }
.organization-empty strong, .access-empty strong { color: var(--ink); font-size: 14px; }
.organization-empty span, .access-empty span { max-width: 480px; font-size: 11px; line-height: 1.5; }

.queue-tabs { min-height: 58px; display: flex; align-items: center; gap: 5px; padding: 10px 14px; overflow-x: auto; border-bottom: 1px solid var(--line); }
.queue-tabs button { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; padding: 0 13px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 760; white-space: nowrap; cursor: pointer; }
.queue-tabs button.active { color: var(--brand-dark); background: var(--brand-soft); }
.queue-tabs button span { min-width: 19px; height: 19px; display: grid; place-items: center; border-radius: 10px; color: inherit; background: rgba(0,0,0,0.055); font-size: 9px; }
.queue-toolbar { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.queue-toolbar > div { min-width: 0; display: grid; gap: 4px; }
.queue-toolbar strong { font-size: 13px; }
.queue-toolbar > div > span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.queue-item { min-height: 88px; display: grid; grid-template-columns: 40px minmax(0, 1.4fr) minmax(160px, 0.6fr) auto auto; align-items: center; gap: 16px; padding: 15px 18px; border-bottom: 1px solid var(--line); }
.queue-item:last-child { border-bottom: 0; }.queue-item.hidden-by-filter { display: none; }
.queue-item .action-copy span { white-space: normal; }
.queue-item .action-icon.queue-high { color: var(--red); background: var(--red-soft); }
.queue-meta { display: grid; gap: 4px; }.queue-meta strong { font-size: 10px; }.queue-meta span { color: var(--muted); font-size: 10px; }
.queue-empty { min-height: 220px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 30px; color: var(--muted); text-align: center; }
.queue-empty svg { width: 28px; height: 28px; color: var(--brand); }
.queue-empty strong { color: var(--ink); font-size: 14px; }
.queue-empty span { font-size: 11px; }

.stays-heading { align-items: flex-end; }
.stay-window-control { flex: 0 0 auto; }
.stay-summary { min-height: 86px; margin-bottom: 20px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.stay-summary > div { min-width: 0; display: grid; align-content: center; gap: 4px; padding: 16px 20px; border-right: 1px solid var(--line); }
.stay-summary > div:last-child { border-right: 0; }
.stay-summary strong { font-size: 22px; line-height: 1; }
.stay-summary span { color: var(--muted); font-size: 10px; font-weight: 760; }
.stay-summary .attention strong { color: var(--amber); }
.stay-directory { overflow: hidden; }
.stay-toolbar { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.stay-toolbar > div:first-child { min-width: 160px; display: grid; gap: 4px; }
.stay-toolbar > div:first-child strong { font-size: 13px; }
.stay-toolbar > div:first-child span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.stay-filter-controls { min-width: 0; display: flex; align-items: flex-end; justify-content: flex-end; flex-wrap: wrap; gap: 9px; }
.compact-select { min-width: 126px; display: grid; gap: 4px; color: var(--muted); font-size: 8px; font-weight: 820; text-transform: uppercase; }
.compact-select select { width: 100%; min-height: 38px; padding: 0 30px 0 10px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; font-size: 11px; font-weight: 690; text-transform: none; }
.stay-list-header, .stay-row { display: grid; grid-template-columns: minmax(210px, 1.3fr) minmax(175px, 0.85fr) 110px minmax(140px, 0.7fr) 100px auto; align-items: center; gap: 14px; }
.stay-list-header { min-height: 38px; padding: 0 18px; color: #8a9690; background: var(--soft); border-bottom: 1px solid var(--line); font-size: 9px; font-weight: 850; text-transform: uppercase; }
.stay-row { min-height: 84px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.stay-row:last-child { border-bottom: 0; }
.stay-row:hover { background: #fbfdfc; }
.stay-identity, .stay-timing, .stay-readiness-copy, .stay-provider { min-width: 0; display: grid; gap: 4px; }
.stay-identity strong, .stay-timing strong { overflow: hidden; font-size: 12px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.stay-identity span, .stay-timing span, .stay-readiness-copy span, .stay-provider span { overflow: hidden; color: var(--muted); font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.stay-readiness-copy strong { overflow: hidden; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.stay-readiness-copy .status-chip { justify-self: start; }
.stay-provider strong { font-size: 10px; }
.stay-action { justify-self: end; }
.occupancy-chip { width: fit-content; min-height: 26px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border-radius: 13px; color: #58645f; background: #eff3f1; font-size: 9px; font-weight: 810; white-space: nowrap; }
.occupancy-chip.arriving, .occupancy-chip.turnover { color: var(--blue); background: var(--blue-soft); }
.occupancy-chip.occupied { color: var(--brand-dark); background: var(--brand-soft); }
.occupancy-chip svg { width: 12px; height: 12px; }
.stay-timing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.stay-timing-grid > div { min-width: 0; display: grid; gap: 6px; padding: 14px; background: var(--soft); border-right: 1px solid var(--line); }
.stay-timing-grid > div:last-child { border-right: 0; }
.stay-timing-grid span { color: var(--muted); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.stay-timing-grid strong { font-size: 13px; line-height: 1.4; }
.stay-readiness-panel { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.stay-readiness-panel.warning { border-color: #f0d895; background: #fffdf7; }
.stay-readiness-panel.critical { border-color: #f1c0bb; background: var(--red-soft); }
.stay-readiness-panel > span:first-child { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 7px; color: var(--brand); background: #fff; }
.stay-readiness-panel > div { min-width: 0; display: grid; gap: 4px; }
.stay-readiness-panel strong { font-size: 12px; }
.stay-readiness-panel div span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.stay-reason-list { margin: 2px 0 0; padding-left: 17px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.stay-reason-list li + li { margin-top: 3px; }
.stay-open-action { margin-top: 10px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid #cfe0f9; border-radius: 7px; background: #f8fbff; }
.stay-open-action > span:first-child { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--blue); background: var(--blue-soft); }
.stay-open-action > div { min-width: 0; display: grid; gap: 4px; }
.stay-open-action strong { font-size: 10px; line-height: 1.4; }
.stay-open-action small { color: var(--muted); font-size: 9px; }
.stay-source-list { margin-top: 10px; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.stay-source-row { min-width: 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.stay-source-row:last-child { border-bottom: 0; }
.stay-source-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--brand); background: var(--brand-soft); }
.stay-source-icon svg { width: 16px; height: 16px; }
.stay-source-row > div { min-width: 0; display: grid; gap: 2px; }
.stay-source-row small { color: var(--muted); font-size: 8px; font-weight: 820; text-transform: uppercase; }
.stay-source-row strong { overflow: hidden; font-size: 10px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.stay-source-row div span { color: var(--muted); font-size: 9px; line-height: 1.4; }
.stay-source-empty { margin-top: 10px; display: flex; align-items: center; gap: 9px; padding: 12px; color: var(--muted); background: var(--soft); border: 1px dashed var(--line-strong); border-radius: 7px; font-size: 10px; line-height: 1.4; }
.stay-source-empty svg { width: 16px; height: 16px; flex: 0 0 auto; color: var(--brand); }
.stay-mapping { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.stay-mapping > div { min-width: 0; display: grid; gap: 5px; }
.stay-mapping strong { font-size: 13px; }
.stay-mapping span { color: var(--muted); font-size: 10px; line-height: 1.45; }

.load-state { min-height: 58px; margin-bottom: 18px; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.load-state > div { min-width: 0; display: grid; gap: 4px; }
.load-state strong { font-size: 12px; }
.load-state span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.load-state.warning { border-color: #f0d895; background: #fffdf7; }
.load-state.warning > svg { color: var(--amber); }
.load-state.error { border-color: #f1c0bb; background: var(--red-soft); }
.load-state.error > svg { color: var(--red); }
.load-state .row-button { width: fit-content; margin-top: 5px; }
.loading-spinner { width: 20px; height: 20px; flex: 0 0 auto; border: 2px solid #c7d8d0; border-top-color: var(--brand); border-radius: 50%; animation: spin 0.8s linear infinite; }
.read-only-label { min-height: 30px; display: inline-flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--soft); font-size: 10px; font-weight: 760; }
.migration-panel { min-height: 360px; display: grid; place-items: center; align-content: center; gap: 12px; padding: 40px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); text-align: center; }
.migration-panel > span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 7px; color: var(--brand); background: var(--brand-soft); }
.migration-panel h2 { margin-top: 4px; }
.migration-panel p { max-width: 570px; margin: 0 0 8px; color: var(--muted); font-size: 13px; line-height: 1.55; }

.customer-list article, .agreement-list article, .integration-list article { min-height: 76px; display: grid; align-items: center; gap: 18px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.customer-list article { grid-template-columns: minmax(200px, 1fr) 120px 160px auto; }
.agreement-list article { grid-template-columns: minmax(220px, 1.2fr) minmax(180px, 0.8fr) 120px 120px auto; }
.integration-list article { grid-template-columns: 42px minmax(200px, 1fr) 150px auto; }
.customer-list article:last-child, .agreement-list article:last-child, .integration-list article:last-child { border-bottom: 0; }
.customer-list article > div, .agreement-list article > div, .integration-list article > div { min-width: 0; display: grid; gap: 4px; }
.customer-list strong, .agreement-list strong, .integration-list strong { font-size: 12px; }
.customer-list span, .agreement-list span, .integration-list span { color: var(--muted); font-size: 10px; line-height: 1.4; }
.provider-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 7px; color: var(--brand); background: var(--brand-soft); }

.access-principle { min-height: 92px; margin-bottom: 20px; display: flex; align-items: center; gap: 15px; padding: 18px 20px; border: 1px solid #cfe0f9; border-radius: 8px; background: #f8fbff; }
.access-principle > div { display: grid; gap: 5px; }
.access-principle strong { font-size: 14px; line-height: 1.4; }
.access-principle span { max-width: 900px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.access-level-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 20px; }
.access-level-grid article { min-height: 224px; display: flex; flex-direction: column; justify-content: space-between; gap: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.access-level-grid article > div { display: grid; gap: 8px; }
.access-level-grid h2 { font-size: 16px; }
.access-level-grid article > div > span { color: var(--muted); font-size: 10px; line-height: 1.55; }
.access-level-grid article > strong { padding-top: 12px; border-top: 1px solid var(--line); color: #4d5a55; font-size: 10px; }
.access-level-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 7px; }
.access-level-icon.platform { color: #fff; background: #17221e; }
.access-level-icon.organization { color: var(--brand-dark); background: var(--brand-soft); }
.access-level-icon.location { color: var(--blue); background: var(--blue-soft); }
.access-level-icon.viewer { color: #5c6964; background: #eff3f1; }
.access-directory { overflow: hidden; }
.access-row { min-height: 76px; display: grid; grid-template-columns: 38px minmax(200px, 1fr) minmax(190px, 0.8fr) auto auto; align-items: center; gap: 14px; padding: 13px 18px; border-bottom: 1px solid var(--line); }
.access-row:last-child { border-bottom: 0; }
.access-row > div { min-width: 0; display: grid; gap: 4px; }
.access-row strong { font-size: 12px; }
.access-row span { color: var(--muted); font-size: 10px; }
.access-avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #fff !important; background: #24332d; font-size: 10px !important; font-weight: 800; }
.scope-chip { min-height: 25px; display: inline-flex; align-items: center; padding: 0 9px; border-radius: 13px; font-size: 9px !important; font-weight: 820; white-space: nowrap; }
.scope-chip.platform { color: #fff !important; background: #24332d; }
.scope-chip.organization { color: var(--brand-dark) !important; background: var(--brand-soft); }
.scope-chip.location { color: var(--blue) !important; background: var(--blue-soft); }
.scope-chip.viewer { color: #65716c !important; background: #eff3f1; }
.access-authorities { display: flex !important; flex-direction: row; align-items: center; flex-wrap: wrap; gap: 5px !important; }
.authority-chip { min-height: 22px; display: inline-flex; align-items: center; gap: 4px; padding: 0 7px; border: 1px solid var(--line); border-radius: 5px; color: #51605a !important; background: #fff; font-size: 8px !important; font-weight: 760; }
.authority-chip svg { width: 11px; height: 11px; }
.owner-lock { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); font-size: 9px; font-weight: 760; }
.owner-lock svg { width: 13px; height: 13px; }

.form-field select, .form-field textarea { width: 100%; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; }
.form-field select { min-height: 44px; padding: 0 12px; }
.form-field textarea { min-height: 90px; padding: 11px 12px; resize: vertical; }
.access-form { align-content: start; gap: 18px; }
.access-scope-field, .authority-field, .account-lifecycle { display: grid; gap: 11px; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.access-scope-field > div:first-child, .authority-field > div:first-child { display: grid; gap: 4px; }
.access-scope-field strong, .authority-field strong, .account-lifecycle strong { font-size: 11px; }
.access-scope-field span, .authority-field span, .account-lifecycle span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.identity-mode { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 4px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.identity-mode button { min-height: 36px; border: 0; border-radius: 5px; color: var(--muted); background: transparent; font-size: 11px; font-weight: 760; cursor: pointer; }
.identity-mode button.active { color: var(--ink); background: #fff; box-shadow: 0 1px 4px rgba(25, 45, 36, 0.08); }
.invite-fields { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 12px; }
.account-lifecycle > div:first-child { display: grid; gap: 4px; }
.account-lifecycle-actions { display: flex; align-items: end; flex-wrap: wrap; gap: 9px; }
.account-lifecycle-actions .form-field { min-width: 150px; flex: 1; }
.invitation-chip { min-height: 22px; display: inline-flex; align-items: center; width: fit-content; padding: 0 7px; border-radius: 5px; color: var(--amber); background: var(--amber-soft); font-size: 8px !important; font-weight: 800; text-transform: uppercase; }
.invitation-chip.active { color: var(--brand-dark); background: var(--brand-soft); }
.invitation-chip.suspended, .invitation-chip.inactive { color: var(--red); background: var(--red-soft); }
.location-check-list { max-height: 245px; display: grid; overflow-y: auto; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.check-row { min-height: 46px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: center; gap: 9px; padding: 9px 11px; border-bottom: 1px solid var(--line); cursor: pointer; }
.check-row:last-child { border-bottom: 0; }
.check-row:hover { background: var(--soft); }
.check-row input { width: 16px; height: 16px; accent-color: var(--brand); }
.check-row > span { display: grid; gap: 2px; }
.check-row small { color: var(--muted); font-size: 9px; line-height: 1.4; }
.access-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding-top: 5px; }
.danger-button { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 13px; border: 1px solid #efc8c4; border-radius: 7px; color: var(--red); background: #fff; font-size: 12px; font-weight: 760; cursor: pointer; }
.danger-button:hover { background: var(--red-soft); }
.organization-edit-form { display: grid; gap: 14px; padding: 15px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.organization-edit-actions { display: flex; justify-content: flex-end; }
.drawer-back-row { display: flex; align-items: center; min-height: 30px; margin: -4px 0 2px; }
.drawer-back-row .text-button { padding: 0; }
.primary-account-form { display: grid; gap: 14px; }
.primary-account-form .form-field small { color: var(--muted); font-size: 9px; font-weight: 500; line-height: 1.5; }
.primary-account-safety { display: grid; grid-template-columns: 40px minmax(0, 1fr); align-items: start; gap: 12px; }
.primary-account-safety > div { display: grid; gap: 5px; }
.primary-account-safety strong { font-size: 11px; line-height: 1.4; }
.primary-account-safety span { color: var(--muted); font-size: 9px; line-height: 1.5; }
.ownership-transfer-form { padding-top: 2px; }
.transfer-suspend-row { border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.transfer-suspend-row:last-child { border-bottom: 1px solid var(--line); }
.transfer-suspend-row:hover { background: #f1f6f4; }
.transfer-suspend-row strong { font-size: 10px; line-height: 1.4; }
.confirmation-field { padding: 13px; border: 1px solid #f0d895; border-radius: 7px; background: #fffdf7; }
.primary-account-unavailable { margin-top: 14px; display: grid; gap: 5px; padding-top: 14px; border-top: 1px solid var(--line); }
.primary-account-unavailable strong { font-size: 10px; }
.primary-account-unavailable span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.member-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.member-row { min-height: 62px; display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.member-row:last-child { border-bottom: 0; }
.member-row > div { min-width: 0; display: grid; gap: 3px; }
.member-row strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.member-row span { overflow: hidden; color: var(--muted); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.member-row .access-avatar { width: 30px; height: 30px; }

.settings-layout { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 22px; }
.settings-nav { display: grid; align-content: start; gap: 4px; }
.settings-nav button { min-height: 40px; padding: 0 12px; border: 0; border-radius: 6px; color: var(--muted); background: transparent; text-align: left; font-size: 12px; font-weight: 740; cursor: pointer; }
.settings-nav button.active { color: var(--brand-dark); background: var(--brand-soft); }

.customer-content { background: #fff; }
.customer-hero { padding: 30px 0 34px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, 0.7fr); align-items: end; gap: 40px; border-bottom: 1px solid var(--line); }
.customer-hero h1 { max-width: 760px; font-size: clamp(32px, 4vw, 54px); }
.customer-hero > div:first-child > p:last-child { max-width: 680px; margin: 14px 0 0; color: var(--muted); font-size: 15px; line-height: 1.6; }
.customer-health { padding: 18px; border: 1px solid #bde1d1; border-radius: 8px; background: var(--brand-soft); }
.customer-alert { min-height: 92px; margin: 24px 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px 18px; border: 1px solid #f0d895; border-radius: 8px; background: #fffdf7; }
.customer-alert > div { display: grid; gap: 4px; }.customer-alert .eyebrow { margin: 0; color: var(--amber); }.customer-alert strong { font-size: 14px; }.customer-alert span { color: var(--muted); font-size: 11px; }
.customer-alert.resolved { border-color: #bde1d1; background: var(--brand-soft); }
.customer-alert.resolved .eyebrow { color: var(--brand-dark); }
.customer-locations { margin-top: 34px; }
.customer-locations > .section-heading { padding-left: 0; padding-right: 0; border-top: 1px solid var(--line); border-bottom: 0; }
.customer-location-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.customer-location-card { min-height: 210px; display: grid; align-content: space-between; padding: 19px; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }
.customer-location-card:hover { border-color: #a8d7c2; box-shadow: var(--shadow); }
.customer-card-head { display: flex; justify-content: space-between; gap: 12px; }.customer-card-head > div { min-width: 0; }.customer-card-head h3 { margin-top: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.customer-card-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; }
.customer-status-copy { display: grid; gap: 6px; margin: 20px 0; }.customer-status-copy strong { font-size: 14px; }.customer-status-copy span { color: var(--muted); font-size: 11px; line-height: 1.45; }
.customer-card-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 13px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.customer-bottom-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 28px; }
.simple-list article { min-height: 80px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 12px; padding: 14px 18px; }.simple-list article > div { display: grid; gap: 4px; }.simple-list strong { font-size: 12px; }.simple-list span { color: var(--muted); font-size: 10px; }

.detail-drawer { position: fixed; top: var(--preview); right: 0; bottom: 0; z-index: 80; width: min(640px, 96vw); overflow-y: auto; background: #fff; border-left: 1px solid var(--line); box-shadow: none; transform: translateX(105%); transition: transform 180ms ease; }
.detail-drawer.open { box-shadow: -18px 0 42px rgba(20, 35, 28, 0.12); transform: translateX(0); }
.drawer-backdrop { position: fixed; inset: var(--preview) 0 0; z-index: 70; background: rgba(16, 26, 22, 0.24); backdrop-filter: blur(2px); }
.drawer-header { min-height: 126px; position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 24px; border-bottom: 1px solid var(--line); background: rgba(255,255,255,0.97); backdrop-filter: blur(10px); }
.drawer-header > div { min-width: 0; }
.drawer-header .icon-button { flex: 0 0 38px; }
.drawer-header h2 { overflow-wrap: anywhere; font-size: 24px; }.drawer-header p:last-child { margin: 7px 0 0; color: var(--muted); font-size: 12px; }
.drawer-body { padding: 22px 24px 40px; display: grid; gap: 24px; }
.drawer-overview { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.drawer-overview > div { display: grid; gap: 5px; }.drawer-overview strong { font-size: 20px; }.drawer-overview span { color: var(--muted); font-size: 11px; }
.drawer-section { display: grid; gap: 12px; }.drawer-section-head { display: flex; align-items: center; justify-content: space-between; }.drawer-section-head strong { font-size: 13px; }.drawer-section-head span { color: var(--muted); font-size: 10px; }
.witness-list { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }.witness-row { min-height: 62px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 11px 13px; border-bottom: 1px solid var(--line); }.witness-row:last-child { border-bottom: 0; }.witness-row > div { display: grid; gap: 4px; }.witness-row strong { font-size: 11px; }.witness-row span { color: var(--muted); font-size: 9px; }
.witness-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--blue); background: var(--blue-soft); }
.simple-event-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.simple-event-list article, .simple-event-row { min-height: 58px; display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: start; gap: 10px; padding: 12px 13px; border-bottom: 1px solid var(--line); }
.simple-event-list article:last-child, .simple-event-row:last-child { border-bottom: 0; }
.simple-event-row { width: 100%; grid-template-columns: 10px minmax(0, 1fr) 16px; border-top: 0; border-left: 0; border-right: 0; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.simple-event-row:hover { background: var(--soft); }
.simple-event-row > svg { width: 15px; height: 15px; align-self: center; color: var(--subtle); }
.simple-event-list .mini-dot { margin-top: 4px; }
.simple-event-list article > div, .simple-event-row > div { display: grid; gap: 4px; }
.simple-event-list strong { font-size: 11px; }
.simple-event-list span { color: var(--muted); font-size: 9px; }
.location-facts { margin: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.location-facts div { min-height: 48px; display: grid; grid-template-columns: minmax(120px, 0.7fr) minmax(0, 1fr); align-items: center; gap: 14px; padding: 9px 12px; border-bottom: 1px solid var(--line); }
.location-facts div:last-child { border-bottom: 0; }
.location-facts dt { color: var(--muted); font-size: 9px; }
.location-facts dd { margin: 0; font-size: 10px; font-weight: 720; text-align: right; }
.location-management .drawer-section-head > div, .drawer-section-head > div { min-width: 0; display: grid; gap: 4px; }
.location-management .drawer-section-head small, .drawer-section-head > div > small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.4; }
.location-management-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }
.location-management-actions .lifecycle-button { grid-column: 1 / -1; }
.drawer-current-link { width: fit-content; }
.location-form { display: grid; align-content: start; gap: 18px; }
.location-form .form-field small, .form-readonly small { color: var(--muted); font-size: 10px; font-weight: 500; line-height: 1.45; }
.location-form .form-field > input { min-height: 44px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; }
.form-readonly { display: grid; gap: 5px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.form-readonly > span { color: #37443f; font-size: 10px; font-weight: 760; text-transform: uppercase; }
.form-readonly strong { font-size: 13px; }
.location-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; padding-top: 4px; }
.drawer-mode-toolbar { min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.drawer-mode-toolbar .text-button { min-height: 30px; }
.drawer-mode-toolbar > span { color: var(--muted); font-size: 10px; }
.lifecycle-owner small { overflow-wrap: anywhere; }
.lifecycle-action-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.lifecycle-action { width: 100%; min-height: 76px; display: grid; grid-template-columns: 36px minmax(0, 1fr) 16px; align-items: center; gap: 12px; padding: 12px 13px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.lifecycle-action:last-child { border-bottom: 0; }
.lifecycle-action:hover { background: var(--soft); }
.lifecycle-action:disabled { cursor: default; opacity: 0.55; }
.lifecycle-action:disabled:hover { background: #fff; }
.lifecycle-action.danger .lifecycle-action-icon { color: var(--red); background: var(--red-soft); }
.lifecycle-action > div { min-width: 0; display: grid; gap: 4px; }
.lifecycle-action strong { font-size: 11px; }
.lifecycle-action span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.lifecycle-action > svg { width: 15px; height: 15px; color: var(--subtle); }
.lifecycle-action-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--brand); background: var(--brand-soft); }
.lifecycle-action-icon svg { width: 16px; height: 16px; }
.lifecycle-count-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.lifecycle-count-row { min-height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 9px 12px; border-bottom: 1px solid var(--line); }
.lifecycle-count-row:last-child { border-bottom: 0; }
.lifecycle-count-row span { color: var(--muted); font-size: 10px; }
.lifecycle-count-row strong { font-size: 11px; }
.lifecycle-empty { min-height: 52px; display: flex; align-items: center; gap: 9px; padding: 11px 12px; color: var(--brand-dark); background: var(--brand-soft); font-size: 10px; font-weight: 720; }
.lifecycle-empty svg { width: 16px; height: 16px; }
.lifecycle-form { gap: 16px; }
.lifecycle-check { min-height: 62px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 7px; background: #fff; cursor: pointer; }
.lifecycle-check.confirmation { border-color: #cfe0f9; background: #f8fbff; }
.lifecycle-check input { width: 16px; height: 16px; margin-top: 1px; accent-color: var(--brand); }
.lifecycle-check > span { display: grid; gap: 4px; }
.lifecycle-check strong { font-size: 11px; }
.lifecycle-check small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.lifecycle-delete-ready { border-color: #efc8c4; background: var(--red-soft); }
.lifecycle-delete-ready .note-icon { color: var(--red); background: #fff; }
.lifecycle-transfer-review { border-color: #f0d895; background: #fffdf7; }
.lifecycle-transfer-review .note-icon { color: var(--amber); background: #fff; }
.source-policy-note { border-color: var(--line); background: var(--soft); }
.source-policy-note .note-icon { color: var(--brand); background: var(--brand-soft); }
.source-assignment-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.source-assignment-list > .queue-empty { min-height: 150px; }
.source-assignment-row { min-height: 70px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 86px; align-items: center; gap: 11px; padding: 11px 12px; border-bottom: 1px solid var(--line); background: #fff; }
.source-assignment-row:last-child { border-bottom: 0; }
.source-assignment-row.current { background: #fbfdfc; }
.source-assignment-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--blue); background: var(--blue-soft); }
.source-assignment-icon svg { width: 15px; height: 15px; }
.source-assignment-row > div { min-width: 0; display: grid; gap: 4px; }
.source-assignment-row > div strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.source-assignment-row > div span { color: var(--muted); font-size: 10px; line-height: 1.4; overflow-wrap: anywhere; }
.source-assignment-row > button { width: 86px; }
.source-assignment-row .remove-source { color: var(--red); }
.source-confirmation { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 12px; padding: 14px; border: 1px solid #cfe0f9; border-radius: 7px; background: #f8fbff; }
.source-confirmation.warning { border-color: #f0d895; background: #fffdf7; }
.source-confirmation.info .note-icon { color: var(--blue); background: var(--blue-soft); }
.source-confirmation > div:nth-child(2) { display: grid; gap: 5px; }
.source-confirmation strong { font-size: 12px; line-height: 1.4; }
.source-confirmation > div:nth-child(2) > span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.source-confirmation-actions { grid-column: 2; display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.source-details-section { gap: 18px; }
.source-details-section > .queue-empty { min-height: 150px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.source-group { display: grid; gap: 8px; }
.source-group-heading { min-height: 28px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.source-group-heading strong { font-size: 11px; }
.source-group-heading span { min-width: 22px; height: 22px; display: grid; place-items: center; border-radius: 11px; color: var(--brand-dark); background: var(--brand-soft); font-size: 9px; font-weight: 820; }
.source-detail-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.source-detail + .source-detail { border-top: 1px solid var(--line); }
.source-detail > summary { min-height: 72px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto 16px; align-items: center; gap: 11px; padding: 12px 13px; list-style: none; background: #fff; cursor: pointer; }
.source-detail > summary::-webkit-details-marker { display: none; }
.source-detail > summary:hover { background: var(--soft); }
.source-detail[open] > summary { background: #fbfdfc; border-bottom: 1px solid var(--line); }
.source-detail-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--blue); background: var(--blue-soft); }
.source-detail-icon svg { width: 16px; height: 16px; }
.source-detail-title { min-width: 0; display: grid; gap: 3px; }
.source-detail-title small { color: var(--brand); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.source-detail-title strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.source-detail-title > span { overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.source-detail-chevron { width: 15px; height: 15px; color: var(--subtle); transition: transform 160ms ease; }
.source-detail[open] .source-detail-chevron { transform: rotate(180deg); }
.source-detail-body { display: grid; gap: 14px; padding: 14px; background: #fff; }
.source-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); }
.source-metrics > div { min-width: 0; min-height: 58px; display: grid; align-content: center; gap: 4px; padding: 9px 10px; border-right: 1px solid var(--line); }
.source-metrics > div:last-child { border-right: 0; }
.source-metrics strong { overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.source-metrics span { color: var(--muted); font-size: 8px; font-weight: 760; text-transform: uppercase; }
.source-facts { margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.source-facts div { min-width: 0; min-height: 45px; display: grid; align-content: center; gap: 3px; padding: 8px 10px; border-bottom: 1px solid var(--line); }
.source-facts div:nth-child(odd) { border-right: 1px solid var(--line); }
.source-facts div:last-child, .source-facts div:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.source-facts div:last-child:nth-child(odd) { grid-column: 1 / -1; border-right: 0; }
.source-facts dt { color: var(--muted); font-size: 8px; }
.source-facts dd { margin: 0; overflow-wrap: anywhere; color: var(--ink); font-size: 10px; font-weight: 720; }
.source-detail-subhead { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.source-detail-subhead strong { font-size: 11px; }
.source-detail-subhead span { color: var(--muted); font-size: 9px; }
.edge-safe-operations { display: grid; gap: 9px; padding-top: 13px; border-top: 1px solid var(--line); }
.edge-safe-action-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.edge-safe-action-grid .secondary-button { width: 100%; min-width: 0; padding: 0 10px; }
.edge-safe-action-grid .secondary-button:only-child { grid-column: 1 / -1; }
.edge-command-feedback { min-height: 48px; display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); }
.edge-command-feedback > svg { width: 16px; height: 16px; color: var(--amber); }
.edge-command-feedback.good > svg { color: var(--brand); }
.edge-command-feedback.critical > svg { color: var(--red); }
.edge-command-feedback > div { min-width: 0; display: grid; gap: 3px; }
.edge-command-feedback strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.edge-command-feedback span { color: var(--muted); font-size: 8px; line-height: 1.4; overflow-wrap: anywhere; }
.edge-command-feedback .row-button { min-height: 30px; }
.edge-command-feedback.empty { grid-template-columns: 24px minmax(0, 1fr); }
.edge-command-feedback.empty > svg { color: var(--brand); }
.advanced-edge-handoff { min-height: 70px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.advanced-edge-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: #53615b; background: #e8eeeb; }
.advanced-edge-icon svg { width: 16px; height: 16px; }
.advanced-edge-handoff > div { min-width: 0; display: grid; gap: 4px; }
.advanced-edge-handoff strong { font-size: 11px; }
.advanced-edge-handoff > div > span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.advanced-edge-handoff .secondary-button { white-space: nowrap; }
.edge-credential-management { display: grid; gap: 10px; padding-top: 13px; border-top: 1px solid var(--line); }
.credential-status-row { min-height: 58px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 11px; border: 1px solid var(--line); border-radius: 6px; background: var(--soft); }
.credential-status-icon { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; color: var(--brand-dark); background: var(--brand-soft); }
.credential-status-icon.warning { color: #815d00; background: var(--amber-soft); }
.credential-status-icon svg { width: 16px; height: 16px; }
.credential-status-row > div { min-width: 0; display: grid; gap: 3px; }
.credential-status-row > div strong { font-size: 10px; }
.credential-status-row > div span { color: var(--muted); font-size: 8px; line-height: 1.45; }
.credential-status-row .secondary-button { min-height: 34px; padding: 0 11px; font-size: 10px; }
.wattbox-credential-form { display: grid; gap: 12px; padding: 13px; border: 1px solid var(--line-strong); border-radius: 7px; background: #fff; box-shadow: 0 8px 20px rgba(23, 44, 34, 0.05); }
.credential-form-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.credential-form-heading > div { min-width: 0; display: grid; gap: 4px; }
.credential-form-heading strong { font-size: 12px; }
.credential-form-heading span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.credential-form-heading .icon-button { flex: 0 0 auto; }
.credential-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.credential-advanced { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.credential-advanced > summary { min-height: 38px; display: flex; align-items: center; padding: 0 11px; color: #46544e; background: var(--soft); font-size: 9px; font-weight: 780; cursor: pointer; }
.credential-advanced[open] > summary { border-bottom: 1px solid var(--line); }
.credential-advanced > div { padding: 11px; }
.credential-security-note { display: grid; grid-template-columns: 22px minmax(0, 1fr); align-items: start; gap: 8px; color: var(--muted); font-size: 8px; line-height: 1.5; }
.credential-security-note svg { width: 15px; height: 15px; color: var(--brand); }
.credential-form-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
.spin-slow { animation: spin 1.2s linear infinite; }
.diagnostic-list, .source-sublist, .outlet-list { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.diagnostic-list article, .source-sublist article, .outlet-list article { min-height: 52px; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 9px 11px; border-bottom: 1px solid var(--line); }
.diagnostic-list article:last-child, .source-sublist article:last-child, .outlet-list article:last-child { border-bottom: 0; }
.diagnostic-list article > div, .source-sublist article > div, .outlet-list article > div { min-width: 0; display: grid; gap: 3px; }
.diagnostic-list strong, .source-sublist strong, .outlet-list strong { overflow: hidden; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.diagnostic-list article > div > span, .source-sublist article > div > span, .outlet-list article > div > span { overflow-wrap: anywhere; color: var(--muted); font-size: 8px; line-height: 1.45; }
.source-subdetails { overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.source-subdetails > summary { min-height: 38px; padding: 0 11px; display: flex; align-items: center; justify-content: space-between; color: #46544e; background: var(--soft); font-size: 9px; font-weight: 780; cursor: pointer; }
.source-subdetails[open] > summary { border-bottom: 1px solid var(--line); }
.source-subdetails .source-sublist, .source-subdetails .outlet-list { border: 0; border-radius: 0; }
.outlet-list article { grid-template-columns: 28px minmax(0, 1fr) auto; }
.outlet-number { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 5px; color: var(--brand-dark); background: var(--brand-soft); font-size: 9px; font-weight: 820; }
.source-empty-detail { min-height: 52px; display: flex; align-items: center; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: var(--soft); font-size: 9px; }
.source-empty-detail svg { width: 15px; height: 15px; }
.guest-context, .operational-context { padding: 16px; display: grid; gap: 10px; border: 1px solid #cfe0f9; border-radius: 7px; background: #f8fbff; }.guest-context-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.guest-context strong, .operational-context strong { font-size: 12px; }.guest-context span, .operational-context span, .operational-context small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.operational-context.business { border-color: #bde1d1; background: #f8fdfb; }
.operational-context.always-on { border-color: var(--line); background: var(--soft); }
.operational-context small { padding-top: 9px; border-top: 1px solid rgba(120, 140, 130, 0.18); }
.activity-line { display: grid; grid-template-columns: 10px minmax(0,1fr) auto; align-items: start; gap: 10px; padding: 9px 0; }.activity-line + .activity-line { border-top: 1px solid var(--line); }.activity-line .mini-dot { margin-top: 4px; }.activity-line div { display: grid; gap: 4px; }.activity-line strong { font-size: 10px; }.activity-line span, .activity-line time { color: var(--muted); font-size: 9px; }

.incident-review-drawer { width: min(680px, 96vw); }
.incident-review-header { min-height: 116px; }
.incident-review-body { gap: 22px; }
.drawer-loading { min-height: 320px; display: grid; place-items: center; align-content: center; gap: 9px; color: var(--muted); text-align: center; }
.drawer-loading strong { color: var(--ink); font-size: 13px; }
.drawer-loading span:last-child { font-size: 10px; }
.incident-summary { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.incident-summary-copy { display: grid; gap: 7px; }
.incident-summary-copy .eyebrow { margin: 0; }
.incident-summary-copy > strong { font-size: 20px; line-height: 1.25; }
.incident-summary-copy > span { max-width: 520px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.incident-summary-meta { display: grid; justify-items: end; gap: 8px; }
.visibility-chip { min-height: 26px; display: inline-flex; align-items: center; gap: 6px; padding: 0 9px; border-radius: 13px; color: #65716c; background: #eff3f1; font-size: 10px; font-weight: 800; white-space: nowrap; }
.visibility-chip svg { width: 13px; height: 13px; }
.sensitivity-note { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: start; gap: 12px; padding: 14px; border: 1px solid #f0d895; border-radius: 7px; background: #fffdf7; }
.note-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--amber); background: var(--amber-soft); }
.sensitivity-note > div { display: grid; gap: 5px; }
.sensitivity-note strong { font-size: 12px; }
.sensitivity-note > div > span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.incident-witness-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.incident-witness { min-height: 72px; display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
.incident-witness:last-child { border-bottom: 0; }
.incident-witness > div { display: grid; gap: 4px; }
.incident-witness strong { font-size: 12px; }
.incident-witness > div > span { color: var(--muted); font-size: 10px; line-height: 1.45; }
.incident-witness.warning .witness-icon { color: var(--amber); background: var(--amber-soft); }
.incident-witness.good .witness-icon { color: var(--brand); background: var(--brand-soft); }
.incident-witness.neutral .witness-icon { color: #65716c; background: #eff3f1; }
.incident-handoff { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 7px; background: var(--soft); }
.incident-handoff > div { min-width: 0; display: grid; gap: 4px; }
.incident-handoff strong { font-size: 11px; }
.incident-handoff span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.decision-section { padding-top: 2px; }
.decision-options { display: grid; gap: 8px; }
.incident-decision { width: 100%; min-height: 68px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 11px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.incident-decision:hover { border-color: #b6cec3; background: #fbfdfc; }
.incident-decision.active { border-color: #8fcbb1; background: #f5fcf8; box-shadow: inset 3px 0 var(--brand); }
.incident-decision:disabled { cursor: wait; opacity: 0.68; }
.decision-radio { width: 16px; height: 16px; margin-top: 1px; border: 1.5px solid #a8b4ae; border-radius: 50%; background: #fff; }
.incident-decision.active .decision-radio { border: 5px solid var(--brand); }
.incident-decision > span:last-child { display: grid; gap: 5px; }
.incident-decision strong { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12px; }
.incident-decision small { color: var(--muted); font-size: 10px; line-height: 1.45; }
.current-decision-label { display: inline-flex; min-height: 18px; align-items: center; padding: 0 6px; border-radius: 9px; color: var(--brand-dark); background: var(--brand-soft); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.recommended-label { display: inline-flex; min-height: 19px; align-items: center; padding: 0 7px; border-radius: 10px; color: var(--brand-dark) !important; background: var(--brand-soft); font-size: 8px !important; font-weight: 850; text-transform: uppercase; }
.decision-consequence { min-height: 72px; display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 11px; padding: 13px; border-left: 3px solid var(--brand); background: var(--soft); }
.consequence-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--brand); }
.decision-consequence > div { display: grid; gap: 5px; }
.decision-consequence strong { font-size: 12px; }
.decision-consequence span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.decision-consequence.neutral { border-left-color: var(--line-strong); }
.decision-note { display: grid; gap: 6px; }
.decision-note > span { color: var(--muted); font-size: 9px; font-weight: 760; text-transform: uppercase; }
.decision-note textarea { width: 100%; min-height: 64px; resize: vertical; padding: 10px 11px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; font-size: 11px; line-height: 1.5; }
.decision-note textarea:focus { outline: 3px solid rgba(37, 99, 235, 0.15); border-color: #8fcbb1; }
.decision-error { padding: 10px 12px; border: 1px solid #f3b5ae; border-radius: 7px; color: #a5362b; background: #fff5f3; font-size: 10px; line-height: 1.45; }
.customer-visibility-rule { display: grid; grid-template-columns: 32px minmax(0, 1fr); align-items: start; gap: 10px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.customer-visibility-rule > span { width: 30px; height: 30px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); border-radius: 6px; }
.customer-visibility-rule > div { display: grid; gap: 4px; }
.customer-visibility-rule strong { font-size: 11px; }
.customer-visibility-rule small { color: var(--muted); font-size: 9px; line-height: 1.5; }
.decision-actions { display: flex; align-items: center; gap: 9px; }
.decision-actions > span { color: var(--muted); font-size: 9px; line-height: 1.4; }
.decision-actions button:disabled { cursor: not-allowed; opacity: 0.58; }
.decision-section .drawer-section-head > div { display: grid; gap: 4px; }
.decision-section .drawer-section-head small { color: var(--muted); font-size: 9px; font-weight: 500; }
.evidence-retention { margin: -2px 0 0; display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.evidence-retention svg { width: 13px; height: 13px; flex: 0 0 auto; }
.evidence-section .drawer-section-head > div { display: grid; gap: 4px; }
.evidence-section .drawer-section-head small { color: var(--muted); font-size: 9px; font-weight: 500; }
.evidence-section .text-button { min-height: 26px; font-size: 10px; }
.evidence-timeline { border-top: 1px solid var(--line); }
.evidence-event { min-height: 70px; display: grid; grid-template-columns: 10px minmax(0, 1fr) 72px; align-items: start; gap: 11px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.evidence-marker { width: 8px; height: 8px; margin-top: 5px; border-radius: 50%; background: #a6b0ab; box-shadow: 0 0 0 3px #eff3f1; }
.evidence-marker.good { background: #18a36f; box-shadow: 0 0 0 3px var(--brand-soft); }
.evidence-marker.warning { background: #e8a921; box-shadow: 0 0 0 3px var(--amber-soft); }
.evidence-marker.critical { background: #d45149; box-shadow: 0 0 0 3px var(--red-soft); }
.evidence-event > div { display: grid; gap: 4px; }
.evidence-source { color: var(--brand); font-size: 8px; font-weight: 850; text-transform: uppercase; }
.evidence-event strong { font-size: 11px; }
.evidence-event small, .evidence-event time { color: var(--muted); font-size: 9px; line-height: 1.45; }
.evidence-event time { padding-top: 2px; text-align: right; white-space: nowrap; }
.raw-evidence { min-width: 0; margin-top: 5px; }
.raw-evidence summary { width: fit-content; color: var(--brand); font-size: 9px; font-weight: 760; cursor: pointer; }
.raw-evidence pre { max-width: 100%; max-height: 240px; margin: 8px 0 0; overflow: auto; padding: 10px; border: 1px solid var(--line); border-radius: 5px; color: #36443e; background: var(--soft); font: 9px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }

.commerce-heading { align-items: flex-end; }
.commerce-summary { min-height: 92px; margin-bottom: 18px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #fff; box-shadow: var(--shadow-soft); }
.commerce-summary > div { min-width: 0; display: grid; align-content: center; gap: 5px; padding: 16px 20px; border-right: 1px solid var(--line); }
.commerce-summary > div:last-child { border-right: 0; }
.commerce-summary strong { font-size: 22px; line-height: 1; }
.commerce-summary span { color: var(--muted); font-size: 10px; font-weight: 760; }
.commerce-summary .attention strong { color: var(--red); }
.commerce-feedback { margin: -6px 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 13px; border: 1px solid #b9decf; border-radius: 7px; color: var(--brand-dark); background: var(--brand-soft); font-size: 11px; font-weight: 680; }
.commerce-feedback > span { min-width: 0; line-height: 1.5; }
.commerce-feedback > .row-button { flex: 0 0 auto; color: currentColor; border-color: currentColor; background: rgba(255,255,255,.62); }
.commerce-feedback.warning { border-color: #ead39d; color: #785713; background: #fff8e7; }
.commerce-feedback.error { border-color: #efc8c4; color: #a5362b; background: var(--red-soft); }
.catalog-attention { border-left-color: var(--amber); background: var(--amber-soft); }
.commerce-workspace { overflow: hidden; }
.commerce-tabs { min-height: 54px; display: flex; align-items: end; gap: 2px; padding: 0 16px; border-bottom: 1px solid var(--line); }
.commerce-tabs button { min-height: 44px; display: inline-flex; align-items: center; gap: 7px; padding: 0 12px; border: 0; border-bottom: 2px solid transparent; color: var(--muted); background: transparent; font-size: 11px; font-weight: 780; cursor: pointer; white-space: nowrap; }
.commerce-tabs button:hover { color: var(--ink); }
.commerce-tabs button.active { color: var(--brand-dark); border-bottom-color: var(--brand); }
.commerce-tabs button > span:last-child { min-width: 20px; min-height: 18px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 9px; color: var(--muted); background: var(--soft); font-size: 8px; }
.commerce-toolbar { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--line); background: #fbfcfb; }
.commerce-toolbar .search-field { min-width: min(420px, 60%); }
.commerce-list { min-width: 0; }
.commerce-row { min-height: 78px; display: grid; grid-template-columns: 38px minmax(200px, 1.1fr) minmax(180px, .8fr) 132px auto; align-items: center; gap: 14px; padding: 13px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.commerce-row:last-child { border-bottom: 0; }
.commerce-row:hover { background: #fbfdfc; }
.commerce-row-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: var(--brand); background: var(--brand-soft); }
.commerce-row-icon.critical { color: var(--red); background: var(--red-soft); }
.commerce-row-icon svg { width: 16px; height: 16px; }
.commerce-primary, .commerce-secondary { min-width: 0; display: grid; gap: 4px; }
.commerce-primary strong, .commerce-secondary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.commerce-primary span, .commerce-secondary span { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; font-size: 9px; line-height: 1.45; }
.commerce-drawer { width: min(680px, 96vw); }
.commerce-drawer-body { gap: 20px; }
.commerce-facts { overflow: hidden; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 7px; }
.commerce-facts > div { min-width: 0; display: grid; gap: 4px; padding: 12px 13px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.commerce-facts > div:nth-child(even) { border-right: 0; }
.commerce-facts > div:nth-last-child(-n + 2) { border-bottom: 0; }
.commerce-facts dt { color: var(--muted); font-size: 8px; font-weight: 820; text-transform: uppercase; }
.commerce-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: 11px; font-weight: 690; }
.commerce-action-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.danger-text-button { min-height: 36px; padding: 0 10px; border: 0; border-radius: 6px; color: var(--red); background: transparent; font-size: 11px; font-weight: 760; cursor: pointer; }
.danger-text-button:hover { background: var(--red-soft); }
.drawer-muted, .drawer-copy { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.commerce-timeline { border-top: 1px solid var(--line); }
.commerce-timeline article { min-height: 62px; display: grid; grid-template-columns: 9px minmax(0, 1fr) 108px; align-items: start; gap: 11px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.commerce-timeline article > span { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.commerce-timeline article > div { min-width: 0; display: grid; gap: 4px; }
.commerce-timeline strong { font-size: 10px; }
.commerce-timeline small, .commerce-timeline time { color: var(--muted); font-size: 9px; line-height: 1.45; }
.commerce-timeline time { text-align: right; }
.commerce-form { display: grid; gap: 15px; }
.commerce-form[aria-busy="true"] { opacity: .78; }
.commerce-form .form-field > input { min-height: 44px; border: 1px solid var(--line-strong); border-radius: 7px; color: var(--ink); background: #fff; }
.commerce-form .form-field > input { padding: 0 12px; }
.form-grid-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.commerce-form-error { padding: 10px 12px; border: 1px solid #efc8c4; border-radius: 7px; color: #a5362b; background: var(--red-soft); font-size: 10px; line-height: 1.45; }
.payment-method-preview { min-width: 0; min-height: 68px; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 12px 13px; border: 1px solid #b9decf; border-radius: 7px; background: var(--brand-soft); }
.payment-method-preview > span:first-child { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 6px; color: var(--brand-dark); background: #fff; }
.payment-method-preview svg { width: 17px; height: 17px; }
.payment-method-preview > div { min-width: 0; display: grid; gap: 4px; }
.payment-method-preview strong { font-size: 11px; }
.payment-method-preview small { color: var(--muted); font-size: 9px; }
.choice-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; }
.choice-list label { min-height: 62px; display: grid; grid-template-columns: 18px minmax(0, 1fr); align-items: start; gap: 10px; padding: 11px 12px; border-bottom: 1px solid var(--line); cursor: pointer; }
.choice-list label:last-child { border-bottom: 0; }
.choice-list input { margin-top: 2px; accent-color: var(--brand); }
.choice-list label > span { display: grid; gap: 4px; }
.choice-list strong { font-size: 10px; }
.choice-list small { color: var(--muted); font-size: 9px; line-height: 1.45; }

.integrations-workspace { overflow: hidden; }
.integration-workspace { min-height: 280px; }
.integration-admin-list { min-width: 0; }
.integration-admin-row { min-height: 82px; display: grid; grid-template-columns: 42px minmax(220px, 1fr) minmax(120px, .38fr) auto auto; align-items: center; gap: 14px; padding: 14px 16px; border-bottom: 1px solid var(--line); background: #fff; }
.integration-admin-row:last-child { border-bottom: 0; }
.integration-admin-row:hover { background: #fbfdfc; }
.integration-row-copy, .integration-row-meta { min-width: 0; display: grid; gap: 4px; }
.integration-row-copy strong, .integration-row-meta strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.integration-row-copy span, .integration-row-meta span { overflow: hidden; color: var(--muted); font-size: 9px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.integration-row-meta > span { font-size: 8px; font-weight: 820; text-transform: uppercase; }
.integration-row-actions { display: flex; align-items: center; gap: 7px; }
.provider-icon.unifi { color: var(--blue); background: var(--blue-soft); }
.provider-icon.operations { color: #315c8d; background: #eef5fc; }
.provider-icon.edge { color: #4d5a55; background: #eff3f1; }
.provider-icon.delivery { color: var(--amber); background: var(--amber-soft); }
.operations-check-list, .operations-event-list { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.operations-check-row { min-height: 62px; display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; align-items: center; gap: 11px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.operations-check-row:last-child, .operations-event-row:last-child { border-bottom: 0; }
.operations-check-row > div:nth-child(2), .operations-event-row > div { min-width: 0; display: grid; gap: 4px; }
.operations-check-row strong, .operations-event-row strong { font-size: 10px; }
.operations-check-row span:not(.status-chip), .operations-event-row span, .operations-event-row time, .operations-check-row small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.operations-check-row > div:last-child { display: grid; justify-items: end; gap: 5px; }
.operations-event-row { min-height: 58px; display: grid; grid-template-columns: 10px minmax(0, 1fr); align-items: start; gap: 11px; padding: 11px 12px; border-bottom: 1px solid var(--line); }
.operations-event-row .operations-state-dot { margin-top: 4px; }
.operations-state-dot { width: 8px; height: 8px; border-radius: 50%; background: #9ba8a2; box-shadow: 0 0 0 3px #eff3f1; }
.operations-state-dot.good { background: var(--brand); box-shadow: 0 0 0 3px var(--brand-soft); }
.operations-state-dot.warning { background: var(--amber); box-shadow: 0 0 0 3px var(--amber-soft); }
.operations-state-dot.critical { background: var(--red); box-shadow: 0 0 0 3px var(--red-soft); }
.integration-empty { min-height: 280px; display: grid; place-items: center; align-content: center; gap: 12px; padding: 36px; text-align: center; }
.integration-empty > span { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 7px; color: var(--brand); background: var(--brand-soft); }
.integration-empty > div { display: grid; gap: 6px; }
.integration-empty strong { font-size: 14px; }
.integration-empty p { max-width: 520px; margin: 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.integration-account-switcher { min-height: 56px; display: flex; align-items: center; gap: 6px; padding: 9px 14px; overflow-x: auto; border-bottom: 1px solid var(--line); background: var(--soft); }
.integration-account-switcher button { min-height: 34px; flex: 0 0 auto; padding: 0 11px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: #fff; font-size: 10px; font-weight: 760; cursor: pointer; }
.integration-account-switcher button.active { color: var(--brand-dark); border-color: #acd8c5; background: var(--brand-soft); }
.integration-drawer { width: min(640px, 96vw); }
.integration-drawer-body { gap: 18px; }
.integration-facts { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.integration-drawer-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.guesty-credential-section { display: grid; gap: 14px; padding-top: 2px; }
.guesty-credential-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.guesty-credential-heading > div { min-width: 0; display: grid; gap: 5px; }
.guesty-credential-heading strong { font-size: 13px; }
.guesty-credential-heading > div > span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.guesty-credential-heading > span { flex: 0 0 auto; padding: 5px 8px; border-radius: 5px; color: var(--brand-dark); background: var(--brand-soft); font-size: 8px; font-weight: 820; text-transform: uppercase; }
.guesty-credential-options { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.guesty-direct-credentials { transition: opacity 140ms ease; }
.guesty-direct-credentials.disabled { opacity: 0.48; }
.guesty-direct-credentials input:disabled { cursor: not-allowed; background: var(--soft); }

.mobile-nav, .more-sheet { display: none; }
.toast { position: fixed; left: 50%; bottom: 28px; z-index: 110; min-width: 220px; max-width: calc(100vw - 32px); padding: 11px 15px; border-radius: 7px; color: #fff; background: #17221e; box-shadow: var(--shadow); font-size: 12px; font-weight: 700; opacity: 0; pointer-events: none; transform: translate(-50%, 14px); transition: 160ms ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.network-banner { position: fixed; top: calc(var(--preview) + var(--topbar)); left: var(--sidebar); right: 0; z-index: 35; min-height: 40px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 8px 20px; color: #7d2f29; background: #fff4f2; border-bottom: 1px solid #efc8c4; font-size: 12px; font-weight: 760; }
.network-banner svg { width: 15px; height: 15px; }
body.network-offline .main-content { padding-top: calc(var(--preview) + var(--topbar) + 74px); }
.pull-refresh-indicator { --pull-distance: 0px; position: fixed; top: calc(var(--preview) + var(--topbar) + 8px); left: calc(var(--sidebar) + (100vw - var(--sidebar)) / 2); z-index: 39; min-width: 126px; height: 34px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 0 12px; border: 1px solid var(--line); border-radius: 17px; color: var(--muted); background: rgba(255,255,255,0.98); box-shadow: 0 8px 20px rgba(20,35,28,0.12); font-size: 10px; transform: translate(-50%, calc(var(--pull-distance) - 68px)); opacity: 0; transition: opacity 120ms ease, transform 120ms ease; }
.pull-refresh-indicator[hidden] { display: none; }
.pull-refresh-indicator span { width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; color: var(--brand-dark); background: var(--brand-soft); }
.pull-refresh-indicator svg { width: 12px; height: 12px; }
body.pull-refresh-active .pull-refresh-indicator, body.pull-refresh-armed .pull-refresh-indicator, body.pull-refreshing .pull-refresh-indicator { opacity: 1; transition: opacity 90ms ease; }
body.pull-refresh-armed .pull-refresh-indicator span { color: #fff; background: var(--brand); }
body.pull-refreshing .pull-refresh-indicator svg { animation: spin 0.8s linear infinite; }
.app-update-banner { position: fixed; right: 24px; bottom: 24px; z-index: 45; width: min(390px, calc(100vw - 32px)); min-height: 64px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 10px 10px 12px; border: 1px solid #b9dccd; border-radius: 8px; color: var(--ink); background: #fff; box-shadow: 0 16px 38px rgba(20,35,28,0.16); }
.app-update-banner > svg { width: 20px; height: 20px; color: var(--brand); }
.app-update-banner > div { min-width: 0; display: grid; gap: 2px; }
.app-update-banner strong { font-size: 12px; }
.app-update-banner span { color: var(--muted); font-size: 10px; line-height: 1.35; }
.app-update-banner button { min-height: 36px; padding: 0 12px; border: 1px solid var(--brand); border-radius: 6px; color: #fff; background: var(--brand); font-size: 11px; font-weight: 760; cursor: pointer; }
.overlay-open .app-update-banner { visibility: hidden; }
body.standalone-app .topbar { height: calc(var(--topbar) + env(safe-area-inset-top)); padding-top: env(safe-area-inset-top); }
body.standalone-app .sidebar { top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top)); }
body.standalone-app .network-banner { top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top)); }
body.standalone-app .main-content { padding-top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top) + 32px); }
body.standalone-app.network-offline .main-content { padding-top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top) + 74px); }
body.standalone-app .detail-drawer { padding-top: env(safe-area-inset-top); }

@media (max-width: 1120px) {
  :root { --sidebar: 206px; }
  .portfolio-band { grid-template-columns: 1fr 1fr; }
  .portfolio-stats { grid-column: 1 / -1; justify-content: flex-end; }
  .summary-filter:first-child { border-left: 0; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .arrivals-section .arrival-list { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .context-section .context-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .context-row:nth-child(odd) { border-right: 1px solid var(--line); }
  .arrival-row { border-bottom: 0; border-right: 1px solid var(--line); }
  .arrival-row:last-child { border-right: 0; }
  .access-level-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .customer-location-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .stay-toolbar { align-items: stretch; flex-direction: column; }
  .stay-filter-controls { justify-content: flex-start; }
  .stay-list-header, .stay-row { grid-template-columns: minmax(190px, 1.2fr) minmax(165px, 0.9fr) 106px minmax(130px, 0.7fr) auto; }
  .stay-list-header > span:nth-child(5), .stay-provider { display: none; }
}

@media (max-width: 760px) {
  :root { --topbar: 62px; --preview: 0px; }
  /* iOS zooms focused form controls whose computed font size is below 16px. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="hidden"]):not([type="button"]):not([type="submit"]):not([type="reset"]),
  select,
  textarea { font-size: 16px !important; }
  body[data-screen="app"] { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  .auth-gate { min-height: 100svh; grid-template-columns: 1fr; }
  .auth-brand-panel { min-height: auto; padding: 26px 22px 22px; gap: 24px; border-right: 0; border-bottom: 1px solid var(--line); }
  .auth-brand-panel img { width: min(240px, 72vw); }
  .auth-brand-panel h1 { font-size: 30px; }
  .auth-brand-panel p:last-child { display: none; }
  .auth-form-panel { min-height: auto; place-items: start stretch; padding: 30px 22px 42px; }
  .auth-card { width: 100%; }
  .access-gate { min-height: 100svh; padding: 16px; }
  .access-gate-card { padding: 28px 22px; }
  .gate-actions { align-items: stretch; flex-direction: column; }
  .gate-actions > * { width: 100%; }
  .topbar { grid-template-columns: 1fr auto; height: var(--topbar); padding: 0 14px; }
  .brand { width: 160px; height: 38px; }.brand img { width: 160px; }
  .topbar-context, .topbar-actions > .icon-button, .connection-status span:not(.status-dot) { display: none; }
  .topbar-actions { grid-column: 2; gap: 6px; }.connection-status { width: 62px; height: 34px; padding: 0 2px 0 10px; justify-content: space-between; }.sync-button { width: 30px; height: 30px; }.avatar-button { width: 34px; height: 34px; }
  .sidebar { display: none; }
  .main-content { margin-left: 0; padding: calc(var(--preview) + var(--topbar) + 22px) 16px calc(96px + env(safe-area-inset-bottom)); }
  .page-heading, .page-heading.compact { align-items: flex-start; flex-direction: column; margin-bottom: 22px; }
  .page-heading h1 { font-size: 32px; }.page-description { font-size: 13px; }.heading-actions { width: 100%; }.heading-actions button { flex: 1; }
  .portfolio-band { padding: 18px; grid-template-columns: 1fr; gap: 18px; }
  .health-distribution { order: 3; }.portfolio-stats { grid-column: auto; justify-content: stretch; overflow-x: auto; }.summary-filter, .summary-metric { min-width: 70px; flex: 1; padding: 3px 7px; }.summary-filter span, .summary-metric span { white-space: normal; overflow-wrap: anywhere; line-height: 1.15; }
  .dashboard-grid { gap: 16px; }.content-section { border-radius: 7px; }.section-heading { padding: 15px 14px; }
  .action-row { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; padding: 13px; }.action-row .status-chip { grid-column: 2; grid-row: 2; justify-self: start; }.action-row .row-button { grid-column: 3; grid-row: 1 / span 2; }
  .action-copy span { white-space: normal; }
  .arrivals-section .arrival-list { grid-template-columns: 1fr; }.arrival-row { border-right: 0; border-bottom: 1px solid var(--line); }.arrival-row:last-child { border-bottom: 0; }
  .context-section .context-list { grid-template-columns: 1fr; }.context-row:nth-child(odd) { border-right: 0; }.context-row { border-bottom: 1px solid var(--line); }.context-row:last-child { border-bottom: 0; }
  .locations-heading { align-items: flex-start; flex-direction: column; }.board-controls { width: 100%; }.search-field { min-width: 0; flex: 1; }.filter-button span { display: none; }
  .location-board { overflow: visible; }.board-header { display: none; }.location-row { min-width: 0; min-height: 0; margin: 0; padding: 15px 14px; grid-template-columns: minmax(0,1fr) auto; gap: 12px; }.location-row > *:not(.location-identity):not(.overall-cell):not(.row-chevron) { display: none; }.location-row .overall-cell { display: block; grid-column: 2; grid-row: 1; }.location-row .row-chevron { grid-column: 2; grid-row: 2; }.location-identity { grid-column: 1; grid-row: 1 / span 2; }.location-identity strong { font-size: 14px; }.location-identity span { white-space: normal; line-height: 1.4; }
  .directory-toolbar, .queue-toolbar { align-items: stretch; flex-direction: column; }.segmented-control { overflow-x: auto; }.directory-card { grid-template-columns: minmax(0,1fr) auto; gap: 12px; padding: 14px; }.directory-card > div:nth-child(2), .directory-card > .source-stack { grid-column: 1 / -1; }.directory-action { grid-column: 1 / -1; justify-content: space-between; }
  .queue-tabs { padding: 9px 10px; }.queue-item { grid-template-columns: 36px minmax(0,1fr) auto; gap: 10px; padding: 14px; }.queue-meta { grid-column: 2; }.queue-item .severity-chip { grid-column: 2; justify-self: start; }.queue-item .row-button { grid-column: 3; grid-row: 1 / span 3; }
  .stays-heading { align-items: stretch; flex-direction: column; }.stay-window-control { width: 100%; }.stay-window-control button { flex: 1; }.stay-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }.stay-summary > div:nth-child(2) { border-right: 0; }.stay-summary > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }.stay-summary > div { padding: 14px 16px; }.stay-toolbar { align-items: stretch; flex-direction: column; }.stay-filter-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }.stay-filter-controls .search-field { grid-column: 1 / -1; width: 100%; min-width: 0; }.compact-select { min-width: 0; }.stay-list-header { display: none; }.stay-list { padding: 12px; display: grid; gap: 10px; background: var(--soft); }.stay-row { min-height: 0; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }.stay-row:last-child { border-bottom: 1px solid var(--line); }.stay-identity { grid-column: 1; }.stay-timing { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid var(--line); }.stay-occupancy { grid-column: 2; grid-row: 1; }.stay-readiness-copy { grid-column: 1; }.stay-provider { display: grid; grid-column: 1; }.stay-action { grid-column: 2; grid-row: 3 / span 2; align-self: end; }.stay-timing-grid { grid-template-columns: 1fr; }.stay-timing-grid > div { border-right: 0; border-bottom: 1px solid var(--line); }.stay-timing-grid > div:last-child { border-bottom: 0; }.stay-readiness-panel { grid-template-columns: 38px minmax(0, 1fr); }.stay-readiness-panel .status-chip { grid-column: 2; justify-self: start; }.stay-open-action { grid-template-columns: 32px minmax(0, 1fr); }.stay-open-action .status-chip { grid-column: 2; justify-self: start; }.stay-mapping { align-items: stretch; grid-template-columns: 1fr; }.stay-mapping .row-button { width: fit-content; }
  .stay-source-row { grid-template-columns: 32px minmax(0, 1fr); }.stay-source-row .status-chip { grid-column: 2; justify-self: start; }
  .customer-list article, .agreement-list article, .integration-list article { grid-template-columns: 40px minmax(0,1fr) auto; gap: 10px; padding: 14px; }.customer-list article > *:nth-child(3), .agreement-list article > *:nth-child(3), .agreement-list article > *:nth-child(4), .integration-list article > *:nth-child(3) { grid-column: 2; }.customer-list article > div:first-child { grid-column: 1 / 3; }
  .access-principle { align-items: flex-start; padding: 16px; }
  .access-level-grid { grid-template-columns: 1fr; }
  .access-level-grid article { min-height: 188px; }
  .access-row { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 10px; padding: 14px; }
  .access-row > div:nth-child(3) { grid-column: 2 / -1; }
  .access-row .scope-chip { grid-column: 2; justify-self: start; }
  .access-row .row-button { grid-column: 3; grid-row: 1 / span 3; }
  .organization-row { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 11px; padding: 14px; }
  .organization-copy { grid-column: 2; }
  .organization-owner, .organization-stats { grid-column: 2 / -1; }
  .organization-row > .row-button { grid-column: 3; grid-row: 1 / span 2; }
  .organization-owner span, .organization-stats span { white-space: normal; }
  .access-form-actions { align-items: stretch; flex-direction: column-reverse; }
  .access-form-actions button { width: 100%; }
  .location-management-actions { grid-template-columns: 1fr; }
  .location-form-actions { align-items: stretch; flex-direction: column-reverse; }
  .location-form-actions button { width: 100%; }
  .drawer-mode-toolbar { align-items: flex-start; flex-direction: column; }
  .source-assignment-row { grid-template-columns: 32px minmax(0, 1fr) auto; gap: 9px; }
  .source-assignment-row .status-chip { grid-column: 2; justify-self: start; }
  .source-assignment-row > button { width: auto; grid-column: 3; grid-row: 1 / span 2; }
  .source-assignment-row > div span { white-space: normal; }
  .source-confirmation { grid-template-columns: 34px minmax(0, 1fr); }
  .source-confirmation-actions { grid-column: 1 / -1; align-items: stretch; flex-direction: column-reverse; }
  .source-confirmation-actions button { width: 100%; }
  .invite-fields { grid-template-columns: 1fr; }
  .account-lifecycle-actions { align-items: stretch; flex-direction: column; }
  .account-lifecycle-actions button { width: 100%; }
  .primary-account-safety { grid-template-columns: 36px minmax(0, 1fr); }
  .primary-account-form .organization-edit-actions { align-items: stretch; flex-direction: column; }
  .primary-account-form .organization-edit-actions button { width: 100%; }
  .confirmation-field { padding: 12px; }
  .settings-layout { grid-template-columns: 1fr; }.settings-nav { display: flex; overflow-x: auto; }.settings-nav button { white-space: nowrap; }
  .customer-hero { padding: 16px 0 25px; grid-template-columns: 1fr; gap: 24px; }.customer-hero h1 { font-size: 36px; }.customer-alert { grid-template-columns: 38px minmax(0,1fr); padding: 14px; }.customer-alert .primary-button { grid-column: 1 / -1; width: 100%; }.customer-location-grid, .customer-bottom-grid { grid-template-columns: 1fr; }
  .customer-location-card { min-height: 188px; }.simple-list article { grid-template-columns: 36px minmax(0,1fr); }.simple-list .row-button { grid-column: 2; justify-self: start; }
  .detail-drawer { top: var(--preview); width: 100%; border-left: 0; }.drawer-header { padding: 20px 18px; }.drawer-header .icon-button { width: 44px; height: 44px; flex-basis: 44px; }.drawer-body { padding: 18px 18px 92px; }
  .source-detail > summary { grid-template-columns: 34px minmax(0, 1fr) auto 14px; gap: 9px; padding: 11px; }
  .source-detail-title > span { white-space: normal; }
  .source-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .source-metrics > div:nth-child(2) { border-right: 0; }
  .source-metrics > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .source-facts { grid-template-columns: 1fr; }
  .source-facts div, .source-facts div:nth-child(odd), .source-facts div:nth-last-child(-n + 2) { grid-column: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .source-facts div:last-child { border-bottom: 0; }
  .edge-safe-action-grid { grid-template-columns: 1fr; }
  .edge-command-feedback { grid-template-columns: 22px minmax(0, 1fr); }
  .edge-command-feedback .row-button { grid-column: 2; justify-self: start; }
  .advanced-edge-handoff { grid-template-columns: 32px minmax(0, 1fr); }
  .advanced-edge-handoff .secondary-button { width: 100%; grid-column: 1 / -1; }
  .credential-status-row { grid-template-columns: 32px minmax(0, 1fr); }
  .credential-status-row .secondary-button { width: 100%; grid-column: 1 / -1; }
  .credential-form-grid { grid-template-columns: 1fr; }
  .credential-form-actions { align-items: stretch; flex-direction: column-reverse; }
  .credential-form-actions button { width: 100%; }
  .diagnostic-list article, .source-sublist article { grid-template-columns: 10px minmax(0, 1fr); }
  .diagnostic-list .status-chip, .source-sublist .status-chip { grid-column: 2; justify-self: start; }
  .incident-review-header { min-height: 104px; }
  .incident-review-body { gap: 18px; }
  .incident-review-body .drawer-section-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .incident-summary { grid-template-columns: 1fr; gap: 13px; }
  .incident-summary-meta { grid-template-columns: auto auto; justify-content: start; justify-items: start; }
  .incident-witness { grid-template-columns: 34px minmax(0, 1fr); }
  .incident-witness .status-chip { grid-column: 2; justify-self: start; }
  .incident-handoff { align-items: stretch; flex-direction: column; }
  .incident-handoff .row-button { width: 100%; }
  .evidence-event { grid-template-columns: 10px minmax(0, 1fr); }
  .evidence-event time { grid-column: 2; padding-top: 0; text-align: left; }
  .decision-actions { align-items: stretch; flex-direction: column; }
  .decision-actions button { width: 100%; }
  .evidence-section .drawer-section-head { align-items: flex-start; flex-direction: column; }
  .evidence-event { grid-template-columns: 10px minmax(0, 1fr); }
  .evidence-event time { grid-column: 2; text-align: left; }
  .commerce-heading { align-items: stretch; }
  .commerce-heading .heading-actions { display: grid; grid-template-columns: 1fr; }
  .commerce-summary { min-height: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .commerce-summary > div { min-height: 70px; padding: 13px 14px; }
  .commerce-summary > div:nth-child(2) { border-right: 0; }
  .commerce-summary > div:nth-child(-n + 2) { border-bottom: 1px solid var(--line); }
  .commerce-summary strong { font-size: 19px; }
  .commerce-tabs { overflow-x: auto; padding: 0 9px; }
  .commerce-tabs button { flex: 0 0 auto; padding: 0 9px; }
  .commerce-toolbar { align-items: stretch; flex-direction: column; padding: 11px 12px; }
  .commerce-toolbar .search-field { width: 100%; min-width: 0; }
  .commerce-row { min-width: 0; min-height: 0; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 10px; padding: 14px 12px; }
  .commerce-primary { grid-column: 2; }
  .commerce-secondary { grid-column: 2 / -1; }
  .commerce-row .status-chip { grid-column: 2; justify-self: start; }
  .commerce-row .row-button { grid-column: 3; grid-row: 1 / span 2; }
  .commerce-primary span, .commerce-secondary span { white-space: normal; overflow-wrap: anywhere; }
  .commerce-facts { grid-template-columns: 1fr; }
  .commerce-facts > div, .commerce-facts > div:nth-child(even), .commerce-facts > div:nth-last-child(-n + 2) { border-right: 0; border-bottom: 1px solid var(--line); }
  .commerce-facts > div:last-child { border-bottom: 0; }
  .commerce-action-bar { align-items: stretch; flex-direction: column; }
  .commerce-action-bar button { width: 100%; }
  .commerce-timeline article { grid-template-columns: 9px minmax(0, 1fr); }
  .commerce-timeline time { grid-column: 2; text-align: left; }
  .form-grid-two { grid-template-columns: 1fr; }
  .commerce-form > button { width: 100%; }
  .commerce-primary strong, .commerce-secondary strong, .commerce-facts dd, .payment-method-preview strong { font-size: 12px; }
  .commerce-primary span, .commerce-secondary span, .commerce-timeline small, .commerce-timeline time, .payment-method-preview small { font-size: 10px; }
  .commerce-action-bar button, .commerce-form > button { min-height: 44px; }
  .commerce-feedback { align-items: stretch; flex-direction: column; }
  .commerce-feedback > .row-button { width: 100%; min-height: 40px; }
  .payment-method-preview { grid-template-columns: 38px minmax(0, 1fr); }
  .payment-method-preview > .status-chip { grid-column: 2; justify-self: start; }
  .integration-admin-row { min-height: 0; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; padding: 14px 12px; }
  .integration-row-copy { grid-column: 2; }
  .integration-row-meta { grid-column: 2; }
  .integration-admin-row > .status-chip { grid-column: 2; justify-self: start; }
  .integration-row-actions, .integration-admin-row > .row-button { grid-column: 3; grid-row: 1 / span 2; align-self: center; }
  .integration-row-actions .row-button { display: none; }
  .integration-row-copy span, .integration-row-meta strong { white-space: normal; overflow-wrap: anywhere; }
  .operations-check-row { grid-template-columns: 10px minmax(0, 1fr); }
  .operations-check-row > div:last-child { grid-column: 2; justify-items: start; }
  .integration-empty { min-height: 240px; padding: 28px 18px; }
  .guesty-credential-heading { flex-direction: column; }
  .integration-drawer-actions { align-items: stretch; flex-direction: column-reverse; }
  .integration-drawer-actions > * { width: 100%; }
  .mobile-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 50; min-height: calc(62px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(3,1fr); padding: 5px 8px env(safe-area-inset-bottom); border-top: 1px solid var(--line); background: rgba(255,255,255,0.98); box-shadow: 0 -8px 24px rgba(20,35,28,0.06); backdrop-filter: blur(12px); }
  .mobile-nav button, .mobile-nav-link { position: relative; min-width: 0; display: grid; place-items: center; align-content: center; gap: 4px; border: 0; border-radius: 7px; color: #71807a; background: transparent; font-size: 9px; font-weight: 720; text-decoration: none; cursor: pointer; }.mobile-nav button.active { color: var(--brand-dark); background: var(--brand-soft); }.mobile-nav svg { width: 18px; height: 18px; }.mobile-nav small { position: absolute; top: 4px; left: calc(50% + 8px); min-width: 16px; height: 16px; display: grid; place-items: center; border-radius: 8px; color: #fff; background: var(--red); font-size: 8px; }
  .more-sheet { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; padding: 8px 14px calc(18px + env(safe-area-inset-bottom)); display: grid; gap: 6px; border-radius: 12px 12px 0 0; background: #fff; box-shadow: 0 -18px 40px rgba(20,35,28,0.15); transform: translateY(110%); transition: transform 180ms ease; }.more-sheet.open { transform: translateY(0); }.sheet-handle { width: 36px; height: 4px; margin: 0 auto 6px; border-radius: 2px; background: #ccd6d1; }.sheet-heading { min-height: 44px; display: flex; align-items: center; justify-content: space-between; }.more-sheet > button:not(.icon-button), .sheet-link { min-height: 48px; display: flex; align-items: center; gap: 12px; padding: 0 12px; border: 0; border-radius: 7px; color: var(--ink); background: var(--soft); font-weight: 730; text-align: left; text-decoration: none; }
  .network-banner { left: 0; padding-inline: 14px; }
  body.network-offline .main-content { padding-top: calc(var(--preview) + var(--topbar) + 64px); }
  .pull-refresh-indicator { left: 50%; }
  .app-update-banner { right: 16px; bottom: calc(78px + env(safe-area-inset-bottom)); }
  body.standalone-app .auth-brand-panel { padding-top: calc(26px + env(safe-area-inset-top)); }
  body.standalone-app .main-content { padding-top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top) + 22px); }
  body.standalone-app.network-offline .main-content { padding-top: calc(var(--preview) + var(--topbar) + env(safe-area-inset-top) + 64px); }
  .toast { bottom: calc(78px + env(safe-area-inset-bottom)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
