
:root{
  --bg:#f4f6f8; --card:#fff; --ink:#162033; --muted:#6b7280; --line:#e5e7eb;
  --dark:#111827; --blue:#2563eb; --green:#0f766e; --red:#b42318; --amber:#a16207;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}
a{color:var(--blue)}
.shell{max-width:1180px;margin:auto;min-height:100vh}
.topbar{position:sticky;top:0;z-index:8;background:var(--dark);color:#fff;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand{font-weight:800;font-size:19px}
.sub{font-size:12px;color:#cbd5e1}
.nav{position:sticky;top:58px;z-index:7;background:#fff;border-bottom:1px solid var(--line);display:flex;gap:7px;padding:9px 12px;overflow:auto}
.nav button{border:0;background:#eef2f7;color:#111827;padding:10px 13px;border-radius:10px;white-space:nowrap;cursor:pointer}
.nav button.active{background:#111827;color:#fff}
.content{padding:18px}
.hero{background:linear-gradient(135deg,#111827,#374151);color:#fff;padding:20px;border-radius:18px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;box-shadow:0 2px 10px rgba(15,23,42,.04)}
.card h2,.card h3{margin-top:0}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.space{justify-content:space-between}
.muted{color:var(--muted)}
.small{font-size:12px}
.btn{border:0;background:#111827;color:white;border-radius:10px;padding:10px 14px;cursor:pointer}
.btn.alt{background:#e5e7eb;color:#111827}
.btn.blue{background:#2563eb}
.btn.green{background:#0f766e}
.btn.red{background:#b42318}
.btn.sm{padding:7px 10px;font-size:13px}
.field{display:flex;flex-direction:column;gap:5px;margin:10px 0}
.field input,.field select,.field textarea{border:1px solid #d1d5db;border-radius:10px;padding:10px;background:#fff}
.field textarea{min-height:90px}
.pill{display:inline-block;border-radius:999px;padding:5px 9px;background:#eef2f7;font-size:12px;font-weight:700}
.pill.good{background:#dcfce7;color:#166534}
.pill.confirmed{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}
.pill.warn{background:#fef3c7;color:#92400e}
.pill.bad{background:#fee2e2;color:#991b1b}
.notice{background:#eff6ff;color:#1e3a8a;border-radius:10px;padding:11px 12px;margin:10px 0}
.warnbox{background:#fffbeb;color:#92400e;border-radius:10px;padding:11px 12px;margin:10px 0}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.login{max-width:430px;margin:9vh auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}
.room-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin:9px 0;background:#fafafa}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.thumb{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.thumb img{width:100%;height:140px;object-fit:cover}
.thumb .meta{padding:8px;font-size:12px}
.gallery-body{max-width:1000px;margin:auto;padding:18px}
.gallery-head{background:#111827;color:#fff;padding:18px;border-radius:16px;margin-bottom:14px}
hr{border:0;border-top:1px solid var(--line);margin:18px 0}
@media(max-width:700px){
  .content{padding:12px}
  .topbar{padding:12px}
  .nav{top:54px}
  .card{border-radius:14px}
  table{font-size:13px}
}

@media print{
  .topbar,.nav,.btn:not(.print-keep){display:none!important}
  body{background:#fff}
  .content{padding:0}
  .card{box-shadow:none;border:0}
}
code{background:#f3f4f6;padding:2px 5px;border-radius:6px}

.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}
@media (display-mode: standalone){
  body{overscroll-behavior-y:none}
  .topbar{padding-top:calc(14px + env(safe-area-inset-top))}
}

body{padding-bottom:78px}
.nav{display:none}
.bottom-nav{
  position:fixed;left:0;right:0;bottom:0;z-index:20;
  display:grid;grid-template-columns:repeat(4,1fr);
  background:#fff;border-top:1px solid var(--line);
  box-shadow:0 -2px 12px rgba(15,23,42,.07)
}
.bottom-nav button{
  border:0;background:#fff;color:#6b7280;padding:8px 4px 10px;
  display:flex;flex-direction:column;align-items:center;gap:2px;font-size:12px;cursor:pointer
}
.bottom-nav button.active{color:#111827;font-weight:800}
.nav-icon{font-size:21px;line-height:1}
.metric-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.metric-card-btn{border:1px solid var(--line);border-radius:14px;background:#fff;padding:14px;text-align:left;cursor:pointer;color:var(--ink)}
.metric-card-btn span{display:block;color:var(--muted);font-size:12px}.metric-card-btn b{display:block;font-size:25px;margin-top:4px}
.menu-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;text-align:left;cursor:pointer;color:var(--ink)}
.menu-card b,.menu-card span{display:block}.menu-card span{color:var(--muted);font-size:13px;margin-top:4px}
.tabs-lite{display:flex;gap:8px;margin:12px 0}.tabs-lite button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 12px;cursor:pointer}.tabs-lite button.active{background:#111827;color:#fff}
.task-list{display:grid;gap:10px}
.task-card{width:100%;border:1px solid var(--line);background:#fff;border-radius:14px;padding:14px;text-align:left;color:var(--ink);cursor:pointer}
.task-card h3{margin:10px 0 5px}.bad-text{color:var(--red)}
.comment{border-left:3px solid #d1d5db;padding:8px 10px;margin:8px 0;background:#fafafa;border-radius:0 8px 8px 0}.comment .small{margin-left:8px}
@media(min-width:900px){
  .bottom-nav{left:50%;transform:translateX(-50%);max-width:1180px}
}
@media(max-width:520px){
  .metric-grid{grid-template-columns:repeat(3,1fr)}
  .metric-card-btn{padding:10px}.metric-card-btn b{font-size:21px}
  .topbar .btn.alt.sm:first-child{display:none}
}

.qr-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.qr-single-card{max-width:560px;margin:auto;text-align:center}
.qr-print-area{display:flex;flex-wrap:wrap;align-items:flex-start;gap:.15in;margin-top:16px}
.qr-label{
  background:#fff;color:#000;border:1px dashed #aaa;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;overflow:hidden;padding:.055in;
  box-sizing:border-box;
  break-inside:avoid;page-break-inside:avoid
}
.qr-size-2x2{width:2in;height:2in}
.qr-size-3x2{width:3in;height:2in}
.qr-size-4x2{width:4in;height:2in}
.qr-code{display:flex;align-items:center;justify-content:center;line-height:0;flex:0 0 auto;overflow:hidden}
.qr-size-2x2 .qr-code{width:1.12in;height:1.12in}
.qr-size-3x2 .qr-code{width:1.30in;height:1.30in}
.qr-size-4x2 .qr-code{width:1.34in;height:1.34in}
.qr-code .qr-vector{display:block;width:100%;height:100%;max-width:100%;max-height:100%;overflow:visible}
.qr-code img,.qr-code canvas{display:block!important;width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain;image-rendering:pixelated}
.qr-brand{font-size:8pt;font-weight:800;line-height:1;margin-bottom:2px;flex:0 0 auto}
.qr-tote-code{font-size:13pt;font-weight:900;line-height:1;margin-top:2px;flex:0 0 auto}
.qr-template{font-size:7.5pt;line-height:1;white-space:nowrap;max-width:94%;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}
.qr-value{font-size:5.7pt;font-family:monospace;line-height:1;margin-top:2px;max-width:94%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 0 auto}
.tote-qr-edit-row{align-items:stretch}.tote-qr-edit-row input{flex:1;min-width:240px}.tote-fleet-card>div+div{margin-top:5px}
@media print{
  @page{margin:.12in}
  html,body{padding:0!important;margin:0!important;background:#fff!important}
  .bottom-nav,.topbar,.no-print{display:none!important}
  .shell,.content,.desktop-shell,.desktop-main,.desktop-content{max-width:none!important;margin:0!important;padding:0!important}
  .qr-single-card{border:0!important;padding:.04in!important;margin:0!important;max-width:none!important}
  .qr-single-card .qr-label{margin:0!important}
  .qr-print-area{display:flex!important;gap:.06in!important;margin:0!important;padding:.04in!important;align-items:flex-start!important}
  .qr-label{border:0.5pt solid #ddd!important;box-sizing:border-box!important;overflow:hidden!important}
  .qr-code .qr-vector{width:100%!important;height:100%!important;shape-rendering:crispEdges}
  .qr-code img,.qr-code canvas{width:100%!important;height:100%!important;image-rendering:pixelated}
  .card:has(.qr-label){border:0!important;box-shadow:none!important}
}

.settings-note{font-size:12px;color:var(--muted)}

.brand-wrap{display:flex;align-items:center;gap:10px}
.app-logo{width:42px;height:42px;object-fit:cover;border-radius:9px;background:#000}
.login-logo{display:block;width:108px;height:108px;object-fit:cover;border-radius:20px;margin:0 auto 12px;background:#000}
.icon-btn{position:relative;border:1px solid var(--line);background:#fff;border-radius:10px;width:40px;height:36px;cursor:pointer;font-size:17px}
.notif-badge{position:absolute;right:-5px;top:-7px;background:#b91c1c;color:#fff;border-radius:999px;padding:1px 5px;font-size:10px;font-weight:800;border:2px solid #fff}
.notification-unread{border-left:5px solid #111827;background:#f8fafc}
@media(max-width:520px){.app-logo{width:36px;height:36px}.brand{font-size:14px}.topbar .sub{font-size:10px}}

.photo-property-grid{align-items:stretch}
.photo-property-card{text-align:left}
.photo-search-card{margin-bottom:14px}
.stay-archive-list{display:grid;gap:10px;margin-top:14px}
.photo-stay-card{text-align:left}
.photo-count-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.photo-count-row span{font-size:11px;background:#f1f5f9;border-radius:999px;padding:4px 8px}

.table-wrap{overflow:auto;max-width:100%;margin:12px 0}
.table-wrap table{border-collapse:collapse;width:100%;font-size:12px}
.table-wrap th,.table-wrap td{border:1px solid var(--line);padding:7px;text-align:left;white-space:nowrap}
.table-wrap th{background:#f8fafc}
.bad-text{color:#b91c1c}

.property-color-dot{display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:7px;vertical-align:1px;flex:0 0 auto}
.property-visual-card,.turnover-color-card{border-left:6px solid var(--property-color)}
.property-hero{height:150px;margin:-16px -16px 14px;overflow:hidden;border-radius:13px 13px 0 0;background:#e5e7eb}
.property-hero img,.turnover-hero img,.booking-detail-hero img{width:100%;height:100%;object-fit:cover}
.turnover-hero{display:block;width:calc(100% + 32px);height:125px;margin:-16px -16px 12px;padding:0;border:0;background:#e5e7eb;overflow:hidden;border-radius:13px 13px 0 0;cursor:pointer}
.booking-name-link{border:0;background:none;padding:0;text-align:left;font:inherit;cursor:pointer;color:inherit}
.calendar-toolbar{align-items:flex-start;gap:10px}
.calendar-legend{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0 14px;font-size:11px}
.calendar-legend span{display:flex;align-items:center;gap:5px}
.calendar-legend i{width:9px;height:9px;border-radius:50%}
.ribbon-shell{display:flex;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;max-height:70vh}
.ribbon-left{width:180px;min-width:180px;position:relative;z-index:2;box-shadow:4px 0 8px rgba(0,0,0,.05);background:#fff}
.ribbon-corner{height:46px;padding:14px 10px;font-size:12px;font-weight:800;border-bottom:1px solid var(--line)}
.ribbon-property-cell{height:66px;border-bottom:1px solid var(--line);padding:8px;display:flex;align-items:center;gap:7px;font-size:11px;overflow:hidden}
.ribbon-property-cell img{width:36px;height:36px;object-fit:cover;border-radius:7px;flex:0 0 auto}
.ribbon-property-cell b{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.ribbon-scroll{overflow:auto;flex:1;position:relative}
.ribbon-header{height:46px;display:flex;position:sticky;top:0;z-index:3;background:#fff}
.ribbon-day{height:46px;flex:0 0 auto;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:7px 3px;text-align:center;font-size:10px}
.ribbon-day.today,.ribbon-grid-day.today{background:rgba(37,99,235,.07)}
.ribbon-row{height:66px;position:relative;border-bottom:1px solid var(--line);background-image:linear-gradient(to right,var(--line) 1px,transparent 1px)}
.ribbon-grid-day{position:absolute;top:0;bottom:0;border-right:1px solid transparent;pointer-events:none}
.ribbon-booking{position:absolute;top:10px;height:44px;box-sizing:border-box;border:2px solid rgba(255,255,255,.9);border-radius:8px;color:white;padding:5px 7px;text-align:left;overflow:hidden;cursor:pointer;box-shadow:0 2px 5px rgba(0,0,0,.15)}
.ribbon-booking b,.ribbon-booking span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ribbon-booking b{font-size:10px}.ribbon-booking span{font-size:9px;opacity:.9;margin-top:2px}
.booking-detail-card{background:#fff;border:1px solid var(--line);border-top:7px solid var(--property-color);border-radius:15px;padding:16px}
.booking-detail-hero{height:240px;margin:14px -16px 16px;overflow:hidden}
.booking-title{align-items:flex-start}
.booking-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}
.booking-detail-grid>div{background:#f8fafc;border-radius:10px;padding:10px;min-width:0}
.booking-detail-grid span,.booking-detail-grid b{display:block}
.booking-detail-grid span{font-size:10px;color:var(--muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.booking-detail-grid b{font-size:13px;overflow-wrap:anywhere}
.booking-actions{margin:14px 0;flex-wrap:wrap}
.inset-card{margin-top:16px;background:#f8fafc}
@media(max-width:600px){
 .ribbon-left{width:125px;min-width:125px}
 .ribbon-property-cell{padding:6px;font-size:10px}
 .ribbon-property-cell img{width:28px;height:28px}
 .calendar-toolbar{display:block}.calendar-toolbar>.row{margin-top:10px;flex-wrap:wrap}
 .booking-detail-grid{grid-template-columns:1fr}
 .booking-detail-hero{height:190px}
}

.property-select{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;margin-bottom:8px}
.bulk-property-toolbar{margin-bottom:14px;border-left:5px solid #334155}
.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}
.btn.danger:hover{filter:brightness(.95)}

.text-btn{border:0;background:none;color:#2563eb;text-decoration:underline;padding:10px 0;cursor:pointer;font:inherit}
.role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.role-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:#f8fafc}
.role-card b,.role-card span{display:block}.role-card span{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.4}
.user-admin-list{display:grid;gap:8px;margin-top:12px}
.user-admin-row{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:center}
.user-open{border:0;background:none;text-align:left;padding:0;cursor:pointer;color:inherit}
.user-open b,.user-open span{display:block}.user-open span{font-size:11px;color:var(--muted);margin-top:3px}
.user-detail-card{border-top:6px solid #111827}
@media(max-width:700px){.user-admin-row{grid-template-columns:1fr}.user-admin-row>.row{flex-wrap:wrap}}

/* V9.6.1 — unified touch ribbon calendar */
.calendar-page{min-width:0}
.calendar-toolbar{align-items:flex-start;gap:10px}
.calendar-nav{flex-wrap:wrap}
.calendar-touch-hint{font-size:11px;color:var(--muted);margin:6px 0 10px;padding:7px 10px;background:#f8fafc;border:1px solid var(--line);border-radius:9px}
.ribbon-viewport{
  position:relative;
  width:100%;
  height:calc(100dvh - 250px);
  min-height:300px;
  max-height:760px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
  background:#fff;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-x pan-y;
  scrollbar-gutter:stable;
}
.ribbon-unified{position:relative;min-height:100%}
.ribbon-unified-header{
  height:48px;
  display:flex;
  position:sticky;
  top:0;
  z-index:20;
  background:#fff;
}
.ribbon-sticky-corner{
  width:var(--property-width);
  min-width:var(--property-width);
  height:48px;
  position:sticky;
  left:0;
  z-index:24;
  display:flex;
  align-items:center;
  padding:0 10px;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:4px 0 8px rgba(0,0,0,.05);
  font-size:12px;
  font-weight:800;
}
.ribbon-date-track{display:flex;height:48px;flex:0 0 auto}
.ribbon-date-track .ribbon-day{
  height:48px;
  flex:0 0 auto;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:7px 3px;
  text-align:center;
  font-size:10px;
  background:#fff;
}
.ribbon-date-track .ribbon-day.today{background:rgba(37,99,235,.10);font-weight:800}
.ribbon-unified-row{
  display:flex;
  height:68px;
  position:relative;
}
.ribbon-sticky-property{
  position:sticky;
  left:0;
  z-index:10;
  width:var(--property-width);
  min-width:var(--property-width);
  height:68px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 8px;
  overflow:hidden;
  background:#fff;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  box-shadow:4px 0 8px rgba(0,0,0,.045);
  touch-action:pan-x pan-y;
}
.ribbon-sticky-property img{width:34px;height:34px;object-fit:cover;border-radius:7px;flex:0 0 auto;pointer-events:none}
.ribbon-sticky-property b{
  font-size:10px;
  line-height:1.2;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  user-select:none;
  -webkit-user-select:none;
}
.ribbon-row-track{
  flex:0 0 auto;
  height:68px;
  position:relative;
  border-bottom:1px solid var(--line);
  background-image:linear-gradient(to right,var(--line) 1px,transparent 1px);
  touch-action:pan-x pan-y;
}
.ribbon-row-track .ribbon-grid-day{height:68px}
.ribbon-row-track .ribbon-grid-day.today{background:rgba(37,99,235,.07)}
.ribbon-row-track .ribbon-booking{
  top:11px;
  height:46px;
  touch-action:pan-x pan-y;
  -webkit-user-select:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.ribbon-viewport::-webkit-scrollbar{height:9px;width:9px}
.ribbon-viewport::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:99px}
.ribbon-viewport::-webkit-scrollbar-track{background:#f8fafc}
@media(max-width:600px){
  .calendar-toolbar{display:block}
  .calendar-toolbar .calendar-nav{margin-top:8px;gap:6px}
  .calendar-toolbar .calendar-nav .btn{padding:8px 10px;font-size:11px}
  .calendar-touch-hint{font-size:10px;margin-bottom:7px}
  .ribbon-viewport{
    width:calc(100% + 16px);
    margin-left:-8px;
    height:calc(100dvh - 225px);
    min-height:320px;
    border-radius:10px;
  }
  .ribbon-sticky-corner,.ribbon-sticky-property{
    width:var(--property-width);
    min-width:var(--property-width);
  }
}


/* V9.6.4 — Global mobile spacing and touch-target cleanup */

/* Consistent gaps whenever controls sit in a row */
.row{
  gap:10px;
}
.row.space{
  gap:14px;
}
.row > .btn,
.row > button,
.row > select,
.row > label{
  flex-shrink:0;
}

/* Buttons should have comfortable touch targets and never visually collide */
.btn,
.icon-btn,
.menu-card,
.metric-card-btn,
.task-card,
.booking-name-link,
.user-open{
  -webkit-tap-highlight-color:transparent;
}
.btn{
  min-height:40px;
  line-height:1.15;
  white-space:normal;
}
.btn.sm{
  min-height:34px;
}
.icon-btn{
  min-width:40px;
  min-height:40px;
}

/* Card content rhythm */
.card{
  min-width:0;
}
.card > h2:first-child,
.card > h3:first-child{
  margin-top:0;
}
.card > .row + .row,
.card > .row + .field,
.card > .field + .row,
.card > .grid + .row,
.card > .notice + .row{
  margin-top:12px;
}
.card hr{
  margin:14px 0;
}

/* Form fields should not collapse together */
.field{
  margin-bottom:14px;
}
.field:last-child{
  margin-bottom:0;
}
.field label{
  margin-bottom:6px;
}
.field input,
.field select,
.field textarea{
  min-height:42px;
}
.field textarea{
  min-height:100px;
}

/* Grids get reliable breathing room */
.grid{
  gap:14px;
}
.metric-grid{
  gap:12px;
}
.task-list{
  display:grid;
  gap:12px;
}
.photo-grid{
  gap:12px;
}

/* Toolbars and card action areas wrap instead of bunching */
.calendar-toolbar,
.booking-actions,
.qr-toolbar,
.bulk-property-toolbar .row,
.user-admin-row > .row,
.booking-detail-card > .row,
.property-visual-card > .row,
.turnover-color-card > .row,
.card > .row{
  flex-wrap:wrap;
}

/* Common action rows inside operational cards */
.property-visual-card .row,
.turnover-color-card .row,
.task-card .row,
.booking-detail-card .row,
.user-detail-card .row{
  row-gap:8px;
}

/* Totes */
.qr-toolbar{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.qr-toolbar > *{
  margin:0;
}
.qr-toolbar .muted{
  margin-right:auto;
}
.tote-actions,
#scanResult .row{
  gap:10px;
  flex-wrap:wrap;
}

/* Tables should be scrollable instead of compressing buttons into nothing */
.card:has(table){
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
}
table{
  min-width:640px;
}
table th,
table td{
  padding:10px 12px;
  vertical-align:middle;
}
table td .btn + .btn{
  margin-left:8px;
}

/* Menu tiles */
.menu-card{
  min-height:94px;
  padding:16px;
}
.menu-card b{
  margin-bottom:6px;
}
.menu-card span{
  line-height:1.35;
}

/* Admin user rows */
.user-admin-row{
  gap:14px;
}
.user-admin-row > .row{
  justify-content:flex-end;
  gap:9px;
}
.user-admin-row select{
  min-height:38px;
}

/* Booking detail */
.booking-detail-grid{
  gap:12px;
}
.booking-actions{
  gap:10px;
}
.booking-actions .btn{
  margin:0;
}

/* Calendar controls */
.calendar-nav{
  gap:8px;
}
.calendar-toolbar{
  row-gap:10px;
}

/* Properties bulk controls */
.bulk-property-toolbar{
  display:grid;
  gap:10px;
}
.bulk-property-toolbar .row{
  margin:0 !important;
}

/* Mobile-specific: actions become easy stacked/wrapped targets */
@media(max-width:700px){
  .content{
    padding-left:12px;
    padding-right:12px;
  }

  .card{
    padding:14px;
  }

  .row{
    gap:9px;
  }

  .row.space{
    align-items:flex-start;
  }

  /* Top-level page headers should stack their controls */
  .content > .row.space,
  .card > .row.space{
    flex-wrap:wrap;
  }

  .content > .row.space > div:first-child,
  .card > .row.space > div:first-child{
    min-width:0;
    flex:1 1 220px;
  }

  .content > .row.space > .row,
  .card > .row.space > .row{
    width:100%;
  }

  /* Mobile action buttons share space cleanly */
  .property-visual-card > .row:last-child,
  .turnover-color-card > .row:last-child,
  .booking-actions,
  .qr-toolbar,
  .bulk-property-toolbar .row,
  .user-detail-card > .row:last-child{
    width:100%;
  }

  .property-visual-card > .row:last-child .btn,
  .turnover-color-card > .row:last-child .btn,
  .booking-actions .btn,
  .qr-toolbar .btn,
  .bulk-property-toolbar .btn,
  .user-detail-card > .row:last-child .btn{
    flex:1 1 140px;
  }

  /* Totes header actions */
  .content > .row.space > .row .btn{
    flex:1 1 130px;
  }

  /* Avoid tiny select + save combinations */
  .turnover-color-card select,
  .booking-detail-card select,
  .user-admin-row select{
    flex:1 1 180px;
    min-width:160px;
  }

  .turnover-color-card .row:has(select),
  .booking-detail-card .row:has(select){
    width:100%;
  }

  .turnover-color-card .row:has(select) .btn,
  .booking-detail-card .row:has(select) .btn{
    flex:1 1 120px;
  }

  /* Forms: one field per row on phones */
  .grid .field{
    min-width:100%;
  }

  /* Admin rows stack cleanly */
  .user-admin-row > .row{
    justify-content:flex-start;
    width:100%;
  }
  .user-admin-row > .row .btn{
    flex:1 1 110px;
  }

  /* Prevent button clusters in tables from becoming unusable */
  table td .btn{
    margin-top:4px;
    margin-bottom:4px;
  }

  /* Bigger bottom-nav touch targets */
  .bottom-nav button{
    min-height:58px;
  }
}

@media(max-width:430px){
  .btn{
    padding-left:12px;
    padding-right:12px;
  }

  .property-visual-card > .row:last-child .btn,
  .turnover-color-card > .row:last-child .btn,
  .booking-actions .btn,
  .qr-toolbar .btn,
  .bulk-property-toolbar .btn{
    flex-basis:100%;
  }

  .calendar-nav{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    width:100%;
  }
  .calendar-nav .btn{
    min-width:0;
    padding-left:7px;
    padding-right:7px;
  }

  .topbar .row{
    gap:6px;
  }
  .topbar .btn.sm{
    padding-left:8px;
    padding-right:8px;
  }
}

/* V9.7 role permission matrix */
.permission-table-wrap{overflow:auto;-webkit-overflow-scrolling:touch;margin-top:12px}
.permission-table{min-width:900px}
.permission-table th:not(:first-child),.permission-table td:not(:first-child){text-align:center;min-width:130px}
.perm-check{display:inline-flex;align-items:center;gap:5px;margin:4px 6px;font-size:11px;font-weight:700;white-space:nowrap}
.perm-check input{width:18px;height:18px}
@media(max-width:700px){
  .permission-table-wrap{margin-left:-6px;margin-right:-6px;padding-bottom:8px}
}

/* V9.8 end-to-end scan workflow */
.scan-tote-card{display:grid;gap:14px}
.scan-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.scan-context-grid>div{background:#f8fafc;border:1px solid var(--line);border-radius:9px;padding:9px}
.scan-context-grid span,.scan-context-grid b{display:block}
.scan-context-grid span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:3px}
.scan-context-grid b{font-size:12px;overflow-wrap:anywhere}
.scan-contents{border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}
.scan-contents h4{margin:0}
.scan-contents>.row:not(:first-child){padding:5px 0;border-top:1px solid #eef2f7}
.scan-status-actions{display:flex;gap:10px;flex-wrap:wrap}
.scan-status-actions .btn{flex:1 1 140px}
.scan-history{border-top:1px solid var(--line);padding-top:10px}
.scan-history summary{cursor:pointer;font-weight:800}
.scan-history-row{display:grid;grid-template-columns:110px 1fr;gap:5px 10px;padding:8px 0;border-bottom:1px solid #eef2f7}
.scan-history-row small{grid-column:2;color:var(--muted)}
.scan-reconcile-card{max-width:1100px;margin:0 auto}
.scan-reconcile-item{margin-bottom:12px}
.scan-final-actions{margin-top:16px}
@media(max-width:600px){
  .scan-context-grid{grid-template-columns:1fr}
  .scan-status-actions .btn,.scan-final-actions .btn{flex-basis:100%}
  .scan-history-row{grid-template-columns:1fr}
  .scan-history-row small{grid-column:1}
}


/* V10 operational flow */
.today-section{margin-top:22px}
.exception-list{display:grid;gap:10px}
.exception-card.warn{border-left:5px solid #f59e0b}
.exception-card.bad{border-left:5px solid #b91c1c}
.photo-progress-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin:14px 0;background:#f8fafc}
.progress-track{height:10px;background:#e2e8f0;border-radius:99px;overflow:hidden;margin-top:8px}
.progress-track span{display:block;height:100%;background:#111827;border-radius:99px}
.checklist-stage{margin:12px 0}
.checklist-list{display:grid;gap:8px}
.checklist-row{border:1px solid var(--line);border-radius:10px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}
.checklist-row.done{background:#f0fdf4}
.checklist-upload{display:flex;gap:8px;align-items:center}
.checklist-upload input{max-width:220px}
.pack-confirm-card{max-width:900px;margin:0 auto}
.owner-report-public{max-width:1000px;margin:0 auto}
.public-report-logo{max-width:110px;max-height:70px;object-fit:contain}
.owner-report-public table{min-width:0;width:100%}
.audit-row{cursor:default}
@media(max-width:700px){
  .checklist-row{grid-template-columns:1fr}
  .checklist-upload{display:grid;grid-template-columns:1fr}
  .checklist-upload input{max-width:100%;width:100%}
}


/* V10.1 — Property Operations & Owner Communications */
.property-ops-page{max-width:1180px;margin:0 auto}
.ops-section{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.ops-section:first-of-type{border-top:0}
.ops-list{display:grid;gap:10px}
.ops-add-grid{margin-top:12px}
.secret-field .row{align-items:stretch}
.secret-field .row input{flex:1 1 auto}
.weekday-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.check-tile{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.check-tile input{width:18px;height:18px}
.key-reference-thumb{position:relative}
.key-reference-thumb .btn{margin:8px}
.metric-large{font-size:34px;font-weight:900;line-height:1;margin:8px 0}
@media(max-width:700px){
  .weekday-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .secret-field .row{display:grid;grid-template-columns:1fr auto}
}
@media(max-width:420px){
  .weekday-grid{grid-template-columns:1fr}
}


/* V10.2 — Professional desktop application shell */
.desktop-sidebar,.desktop-page-heading{display:none}

@media(min-width:1024px){
  :root{
    --desktop-sidebar:264px;
    --desktop-topbar:72px;
  }

  html,body,#app{min-height:100%}
  body{
    padding-bottom:0;
    background:#f3f5f7;
  }

  .desktop-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:var(--desktop-sidebar) minmax(0,1fr);
    align-items:start;
  }

  .desktop-main{
    grid-column:2;
    min-width:0;
    min-height:100vh;
  }

  .desktop-sidebar{
    display:flex;
    position:fixed;
    inset:0 auto 0 0;
    width:var(--desktop-sidebar);
    height:100vh;
    flex-direction:column;
    background:#0d121b;
    color:#fff;
    border-right:1px solid rgba(255,255,255,.06);
    z-index:50;
  }

  .desktop-brand{
    min-height:88px;
    padding:20px 20px 18px;
    display:flex;
    align-items:center;
    gap:12px;
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .desktop-brand img{
    width:46px;
    height:46px;
    object-fit:cover;
    border-radius:10px;
    background:#000;
    box-shadow:0 8px 22px rgba(0,0,0,.28);
  }
  .desktop-brand b{
    display:block;
    font-size:17px;
    line-height:1.15;
    letter-spacing:.01em;
  }
  .desktop-brand span{
    display:block;
    margin-top:3px;
    color:#9aa7b8;
    font-size:12px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
  }

  .desktop-nav-scroll{
    flex:1 1 auto;
    overflow:auto;
    padding:15px 12px 24px;
    scrollbar-width:thin;
    scrollbar-color:#334155 transparent;
  }
  .desktop-nav-group{margin-bottom:17px}
  .desktop-nav-label{
    padding:0 11px 7px;
    color:#697689;
    font-size:10px;
    font-weight:800;
    letter-spacing:.09em;
    text-transform:uppercase;
  }
  .desktop-nav-item{
    width:100%;
    min-height:40px;
    border:0;
    border-radius:9px;
    background:transparent;
    color:#b7c1cf;
    padding:8px 10px;
    margin:2px 0;
    display:flex;
    align-items:center;
    gap:11px;
    text-align:left;
    cursor:pointer;
    font:inherit;
    font-size:13px;
    font-weight:650;
    transition:background .15s ease,color .15s ease,transform .15s ease;
  }
  .desktop-nav-item:hover{
    background:rgba(255,255,255,.065);
    color:#fff;
  }
  .desktop-nav-item.active{
    color:#fff;
    background:#202938;
    box-shadow:inset 3px 0 0 #fff;
  }
  .desktop-nav-icon{
    width:21px;
    flex:0 0 21px;
    display:inline-flex;
    justify-content:center;
    align-items:center;
    color:#8997aa;
    font-size:15px;
  }
  .desktop-nav-item.active .desktop-nav-icon{color:#fff}

  .desktop-sidebar-footer{
    padding:15px 17px;
    border-top:1px solid rgba(255,255,255,.08);
    display:flex;
    align-items:center;
    gap:10px;
    background:#0a0f16;
  }
  .desktop-user-avatar{
    width:35px;
    height:35px;
    border-radius:50%;
    background:#fff;
    color:#111827;
    display:grid;
    place-items:center;
    font-weight:900;
    flex:0 0 auto;
  }
  .desktop-user-copy{min-width:0}
  .desktop-user-copy b{
    display:block;
    font-size:12px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .desktop-user-copy span{
    display:block;
    margin-top:2px;
    color:#8190a3;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.06em;
  }

  .topbar{
    position:sticky;
    top:0;
    z-index:40;
    min-height:var(--desktop-topbar);
    padding:11px 28px;
    background:rgba(255,255,255,.96);
    color:#111827;
    border-bottom:1px solid #e4e8ee;
    box-shadow:0 1px 0 rgba(15,23,42,.02);
    backdrop-filter:blur(14px);
  }
  .mobile-brand{display:none}
  .desktop-page-heading{
    display:flex;
    flex-direction:column;
    min-width:0;
  }
  .desktop-page-heading span{
    color:#7a8697;
    font-size:10px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:3px;
  }
  .desktop-page-heading b{
    font-size:20px;
    line-height:1.1;
    letter-spacing:-.02em;
  }
  .topbar-actions{margin-left:auto}
  .topbar .icon-btn{
    background:#fff;
    border:1px solid #dce2e9;
    color:#111827;
  }
  .topbar .btn.alt{
    background:#fff;
    border:1px solid #dce2e9;
  }

  .bottom-nav{display:none!important}

  .desktop-content{
    width:100%;
    max-width:1680px;
    margin:0 auto;
    padding:28px 32px 48px;
  }

  .desktop-content > h2:first-child,
  .desktop-content > .row.space:first-child h2{
    letter-spacing:-.025em;
  }

  .hero{
    padding:26px 28px;
    border-radius:15px;
    margin-bottom:20px;
    box-shadow:0 10px 28px rgba(15,23,42,.10);
  }
  .hero h2{font-size:24px}

  .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr));
    gap:18px;
  }
  .metric-grid{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:14px;
    margin-bottom:22px;
  }
  .metric-card-btn{
    min-height:104px;
    padding:17px 18px;
    border-radius:12px;
    border-color:#e0e5eb;
    box-shadow:0 1px 3px rgba(15,23,42,.035);
    transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
  }
  .metric-card-btn:hover{
    transform:translateY(-1px);
    border-color:#cbd4df;
    box-shadow:0 6px 18px rgba(15,23,42,.07);
  }
  .metric-card-btn span{
    font-size:11px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.045em;
  }
  .metric-card-btn b{
    font-size:31px;
    letter-spacing:-.04em;
  }

  .card{
    border-radius:12px;
    border-color:#e1e6ec;
    padding:20px;
    box-shadow:0 1px 3px rgba(15,23,42,.035);
  }
  .card h2{font-size:21px;letter-spacing:-.02em}
  .card h3{font-size:16px;letter-spacing:-.01em}

  .menu-card{
    min-height:112px;
    border-radius:12px;
    border-color:#e0e5eb;
    padding:18px;
    transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;
  }
  .menu-card:hover{
    transform:translateY(-2px);
    border-color:#cbd4df;
    box-shadow:0 8px 22px rgba(15,23,42,.07);
  }
  .menu-card b{font-size:15px}

  .task-card{
    border-radius:11px;
    padding:16px 17px;
  }
  .task-card:hover{
    border-color:#cbd4df;
    box-shadow:0 4px 14px rgba(15,23,42,.055);
  }

  .btn{
    border-radius:8px;
    font-weight:700;
  }
  .field input,.field select,.field textarea{
    border-radius:8px;
    border-color:#cfd6df;
  }
  .field input:focus,.field select:focus,.field textarea:focus{
    outline:none;
    border-color:#65758b;
    box-shadow:0 0 0 3px rgba(100,116,139,.12);
  }

  .property-visual-card,
  .turnover-color-card{
    overflow:hidden;
  }
  .property-hero img,
  .turnover-hero img{
    height:180px;
  }

  .photo-grid{
    grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
    gap:14px;
  }
  .thumb img{height:170px}

  .table-wrap,
  .permission-table-wrap{
    border:1px solid #e1e6ec;
    border-radius:10px;
    background:#fff;
  }
  table{
    min-width:760px;
    font-size:13px;
  }
  table th{
    background:#f7f9fb;
    color:#596678;
    font-size:10px;
    letter-spacing:.05em;
    text-transform:uppercase;
    font-weight:800;
  }
  table th,table td{
    padding:11px 13px;
  }
  table tbody tr:hover td{
    background:#fafbfd;
  }

  .room-card{
    background:#fff;
    border-radius:10px;
    padding:14px;
  }

  .notice,.warnbox{
    border-radius:8px;
  }

  /* Desktop ribbon calendar gets the workspace it deserves. */
  .calendar-page{
    width:100%;
  }
  .calendar-toolbar{
    margin-bottom:10px;
  }
  .calendar-touch-hint{
    display:none;
  }
  .ribbon-viewport{
    height:calc(100vh - 190px);
    min-height:560px;
    max-height:none;
    border-radius:11px;
    box-shadow:0 1px 4px rgba(15,23,42,.045);
  }
  .ribbon-sticky-corner,
  .ribbon-sticky-property{
    --property-width:190px;
  }
  .ribbon-sticky-property b{
    font-size:11px;
    -webkit-line-clamp:2;
  }
  .ribbon-sticky-property img{
    width:39px;
    height:39px;
  }

  .booking-detail-card,
  .scan-reconcile-card,
  .pack-confirm-card{
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
  }
  .property-ops-page{
    max-width:1400px;
  }

  .ops-section{
    padding-top:22px;
    margin-top:22px;
  }

  .weekday-grid{
    grid-template-columns:repeat(7,minmax(0,1fr));
  }

  .login{
    max-width:470px;
    margin:10vh auto;
    padding:34px;
    border-radius:14px;
    box-shadow:0 22px 70px rgba(15,23,42,.14);
  }

  /* Keep bulk/action controls tidy on wide screens. */
  .bulk-property-toolbar{
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
  }
  .bulk-property-toolbar > .row:last-child{
    justify-content:flex-end;
  }

  .user-admin-row{
    display:grid;
    grid-template-columns:minmax(260px,1fr) auto;
    align-items:center;
  }

  .scan-context-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(min-width:1400px){
  .desktop-content{
    padding-left:38px;
    padding-right:38px;
  }
  .grid{
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr));
  }
  .photo-grid{
    grid-template-columns:repeat(auto-fill,minmax(210px,1fr));
  }
}

@media print{
  .desktop-sidebar,.desktop-page-heading{display:none!important}
  .desktop-shell,.desktop-main{display:block!important}
}


/* V10.3 — Page-by-page desktop layouts */
.mobile-calendar-copy{display:block}
.desktop-calendar-copy,.desktop-calendar-controls,.desktop-only{display:none}

@media(min-width:1024px){
  .desktop-calendar-copy,.desktop-calendar-controls,.desktop-only{display:flex}
  .mobile-calendar-copy{display:none}

  /* Shared page headers */
  .desktop-content > .row.space:first-child{
    align-items:flex-start;
    margin-bottom:20px;
  }
  .desktop-content > .row.space:first-child h2{
    margin:0 0 5px;
    font-size:24px;
  }
  .desktop-content > .row.space:first-child p{
    margin:0;
    max-width:760px;
  }

  /* TODAY — executive/operations dashboard instead of a mobile card feed */
  .view-today .hero{
    display:block;
    min-height:118px;
    padding:24px 28px;
  }
  .view-today .metric-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-today #exceptionsSection .exception-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-today .turnover-color-card{
    display:flex;
    flex-direction:column;
    min-height:360px;
  }
  .view-today .turnover-color-card > .row:last-child{
    margin-top:auto;
  }

  /* TASKS — two-column work queue with compact desktop cards */
  .view-tasks .tabs-lite{
    margin:0 0 18px;
    padding:4px;
    width:max-content;
    border:1px solid #dfe5ec;
    background:#fff;
    border-radius:10px;
  }
  .view-tasks .tabs-lite button{
    border:0;
    border-radius:7px;
  }
  .view-tasks .task-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
  }
  .view-tasks .task-card{
    min-height:144px;
    display:flex;
    flex-direction:column;
  }
  .view-tasks .task-card > .row:last-child{
    margin-top:auto!important;
  }

  /* PROPERTIES — portfolio tiles sized for a desktop management screen */
  .view-properties > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-items:stretch;
  }
  .view-properties .property-visual-card{
    display:flex;
    flex-direction:column;
    min-height:390px;
  }
  .view-properties .property-hero{
    margin:-20px -20px 16px;
  }
  .view-properties .property-hero img{
    height:185px;
  }
  .view-properties .property-visual-card > .row:last-child{
    margin-top:auto;
  }
  .view-properties .bulk-property-toolbar{
    margin-bottom:18px;
    padding:13px 16px;
  }

  /* PROPERTY OPERATIONS INDEX */
  .view-propertyOps > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  /* PROPERTY OPERATIONS DETAIL — real two-column operations workspace */
  .property-ops-page{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:16px;
    padding:0;
    border:0;
    box-shadow:none;
    background:transparent;
  }
  .property-ops-page > .btn,
  .property-ops-page > .row.space,
  .property-ops-page > .notice{
    grid-column:1 / -1;
  }
  .property-ops-page > .row.space{
    padding:20px 22px;
    margin:0!important;
    background:#fff;
    border:1px solid #e1e6ec;
    border-radius:12px;
  }
  .property-ops-page > .notice{
    margin:0;
  }
  .property-ops-page .ops-section{
    margin:0;
    padding:20px;
    background:#fff;
    border:1px solid #e1e6ec;
    border-radius:12px;
    min-width:0;
  }
  .property-ops-page .ops-section:first-of-type{
    border:1px solid #e1e6ec;
  }
  .property-ops-page .ops-access,
  .property-ops-page .ops-key,
  .property-ops-page .ops-trash,
  .property-ops-page .ops-vendors,
  .property-ops-page .ops-maintenance,
  .property-ops-page .ops-notes{
    grid-column:1 / -1;
  }
  .property-ops-page .ops-wifi,
  .property-ops-page .ops-filters{
    align-self:start;
  }
  .property-ops-page .ops-add-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .property-ops-page .ops-vendors .ops-add-grid,
  .property-ops-page .ops-maintenance .ops-add-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .property-ops-page .ops-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .property-ops-page .ops-maintenance .ops-list{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .property-ops-page .ops-key .photo-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }

  /* TOTES / LINENS / TEMPLATES */
  .view-totes > .grid,
  .view-linens > .grid,
  .view-templates > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-totes .card,
  .view-templates .card{
    min-width:0;
  }
  .view-scan .card:not(.scan-reconcile-card):not(.pack-confirm-card){
    max-width:980px;
    margin-left:auto;
    margin-right:auto;
  }
  .view-scan .scan-tote-card{
    max-width:980px;
  }
  .view-scan .scan-status-actions{
    justify-content:flex-start;
  }
  .view-scan .scan-status-actions .btn{
    flex:0 1 auto;
    min-width:150px;
  }

  /* PHOTOS — larger archive browser */
  .view-photos .photo-property-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .view-photos .photo-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }

  /* CLAIMS / OWNER REPORTS */
  .view-claims > .grid,
  .view-damageReports > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-claims .menu-card,
  .view-damageReports .menu-card{
    min-height:128px;
  }

  /* OWNER COMMUNICATIONS — compose on left, recipient roster on right */
  .view-ownerComms #ownerCommsContent{
    display:grid;
    grid-template-columns:minmax(360px,.8fr) minmax(520px,1.2fr);
    gap:18px;
    align-items:start;
  }
  .view-ownerComms #ownerCommsContent > .grid{
    grid-column:1 / -1;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .view-ownerComms #ownerCommsContent > .card:nth-of-type(1){
    grid-column:1;
  }
  .view-ownerComms #ownerCommsContent > .card:nth-of-type(2){
    grid-column:2;
  }
  .view-ownerComms textarea{
    min-height:220px;
  }

  /* MORE — desktop app launcher when needed */
  .view-more > .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .view-more .menu-card{
    min-height:118px;
  }

  /* ADMIN — use desktop width instead of a vertical mobile stack */
  .view-admin > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-admin > .card{
    margin-top:18px!important;
  }
  .view-admin .permission-table-wrap{
    max-height:560px;
    overflow:auto;
  }
  .view-admin .permission-table thead th{
    position:sticky;
    top:0;
    z-index:2;
  }
  .view-admin .user-admin-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
  }
  .view-admin .user-admin-row{
    border:1px solid #e1e6ec;
    border-radius:10px;
    padding:10px;
    grid-template-columns:minmax(0,1fr);
  }

  /* BUSINESS / ACCOUNT / OWNERREZ FORMS */
  .view-account > .card,
  .view-business > .card{
    max-width:1080px;
    margin-left:auto;
    margin-right:auto;
  }
  .view-ownerrezsync > .grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* BOOKING DETAIL */
  .booking-detail-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .booking-detail-grid > div{
    min-height:72px;
    padding:12px 14px;
  }

  /* RIBBON CALENDAR — dedicated desktop scheduling board */
  .desktop-content.view-calendar{
    max-width:none;
    padding:20px 22px 28px;
  }
  .view-calendar .calendar-page{
    height:calc(100vh - 120px);
    display:flex;
    flex-direction:column;
    min-height:650px;
  }
  .view-calendar .calendar-desktop-head{
    flex:0 0 auto;
  }
  .view-calendar .calendar-toolbar{
    align-items:flex-end;
    margin-bottom:10px;
  }
  .view-calendar .calendar-title-block h2{
    margin:0 0 3px;
    font-size:25px;
  }
  .view-calendar .calendar-title-block p{
    margin:0;
  }
  .desktop-calendar-controls{
    min-height:50px;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:9px 12px;
    margin-bottom:10px;
    background:#fff;
    border:1px solid #e1e6ec;
    border-radius:10px;
  }
  .desktop-calendar-summary{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  .desktop-calendar-summary span{
    min-height:30px;
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:5px 9px;
    border-radius:7px;
    background:#f3f6f9;
    color:#5d6978;
    font-size:11px;
    font-weight:650;
  }
  .desktop-calendar-summary b{
    color:#111827;
    font-size:13px;
  }
  .desktop-calendar-actions{
    display:flex;
    align-items:center;
    gap:10px;
  }
  .desktop-calendar-actions label{
    display:flex;
    align-items:center;
    gap:7px;
    color:#667386;
    font-size:11px;
    font-weight:750;
  }
  .desktop-calendar-actions input,
  .desktop-calendar-actions select{
    min-height:32px;
    border:1px solid #d7dee7;
    background:#fff;
    border-radius:7px;
    padding:5px 8px;
    color:#111827;
  }
  .view-calendar .ribbon-viewport{
    flex:1 1 auto;
    height:auto;
    min-height:0;
    max-height:none;
    border-radius:10px;
    border-color:#dce2e9;
    background:#fff;
  }
  .view-calendar .ribbon-unified-header{
    height:68px;
  }
  .view-calendar .ribbon-sticky-corner{
    height:68px;
    padding:0 14px;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:2px;
    background:#f8fafc;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  .view-calendar .ribbon-sticky-corner small{
    color:#94a0af;
    font-size:9px;
    font-weight:650;
    text-transform:none;
    letter-spacing:0;
  }
  .view-calendar .ribbon-header-timeline{
    height:68px;
    flex:0 0 auto;
  }
  .view-calendar .desktop-month-track{
    height:24px;
    display:flex;
    background:#f8fafc;
    border-bottom:1px solid #e5e9ef;
  }
  .view-calendar .ribbon-month{
    height:24px;
    padding:5px 9px;
    flex:0 0 auto;
    border-right:1px solid #e5e9ef;
    color:#4e5b6d;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.035em;
    overflow:hidden;
    white-space:nowrap;
  }
  .view-calendar .ribbon-date-track{
    height:44px;
  }
  .view-calendar .ribbon-date-track .ribbon-day{
    height:44px;
    padding:6px 3px 4px;
    font-size:10px;
    color:#4e5b6d;
  }
  .view-calendar .ribbon-day.weekend{
    background:#f8fafc;
  }
  .view-calendar .ribbon-date-track .ribbon-day.today{
    background:#eaf2ff;
    color:#174ea6;
  }
  .view-calendar .ribbon-unified-row{
    height:58px;
  }
  .view-calendar .ribbon-sticky-property{
    height:58px;
    padding:7px 11px;
    background:#fff;
  }
  .view-calendar .ribbon-sticky-property img{
    width:36px;
    height:36px;
    border-radius:7px;
  }
  .view-calendar .ribbon-property-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  .view-calendar .ribbon-property-copy b{
    font-size:11px;
    line-height:1.15;
    -webkit-line-clamp:1;
  }
  .view-calendar .ribbon-property-copy span{
    margin-top:3px;
    color:#8b97a7;
    font-size:9px;
    line-height:1;
  }
  .view-calendar .ribbon-row-track{
    height:58px;
    background-color:#fff;
  }
  .view-calendar .ribbon-grid-day{
    height:58px;
  }
  .view-calendar .ribbon-grid-day.weekend{
    background:rgba(148,163,184,.055);
  }
  .view-calendar .ribbon-grid-day.today{
    background:rgba(37,99,235,.08);
    border-left:1px solid rgba(37,99,235,.3);
    border-right:1px solid rgba(37,99,235,.3);
  }
  .view-calendar .ribbon-booking{
    top:7px;
    height:44px;
    border-radius:7px;
    padding:5px 8px;
    box-shadow:0 1px 2px rgba(15,23,42,.14);
    border:1px solid rgba(255,255,255,.35);
  }
  .view-calendar .ribbon-booking:hover{
    z-index:6;
    transform:translateY(-1px);
    box-shadow:0 5px 13px rgba(15,23,42,.18);
    filter:saturate(1.05);
  }
  .view-calendar .ribbon-booking b{
    display:block;
    font-size:10px;
    line-height:1.15;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .view-calendar .ribbon-booking span{
    display:block;
    margin-top:2px;
    font-size:8.5px;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    opacity:.9;
  }
}

@media(min-width:1280px){
  .view-properties > .grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-tasks .task-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .view-totes > .grid,
  .view-linens > .grid,
  .view-templates > .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}

@media(min-width:1600px){
  .view-properties > .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .view-propertyOps > .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
  .view-photos .photo-property-grid{
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
}


/* V10.4 — Full-screen desktop / ultrawide workspace */
@media(min-width:1024px){
  html,body,#app{
    width:100%;
    min-width:0;
    max-width:none;
  }

  /* Remove tablet-style global width caps. */
  .shell,
  .desktop-shell,
  .desktop-main,
  .desktop-content{
    max-width:none!important;
  }

  .desktop-shell{
    width:100vw;
    grid-template-columns:var(--desktop-sidebar) minmax(0,1fr);
  }

  .desktop-main{
    width:auto;
    min-width:0;
    margin:0;
  }

  .topbar{
    width:100%;
    max-width:none;
  }

  .desktop-content{
    width:100%;
    margin:0;
    padding:26px 28px 44px;
  }

  /* Let desktop pages use the entire remaining screen instead of centering narrow content. */
  .view-properties,
  .view-tasks,
  .view-totes,
  .view-linens,
  .view-templates,
  .view-photos,
  .view-claims,
  .view-damageReports,
  .view-propertyOps,
  .view-ownerComms,
  .view-admin,
  .view-more,
  .view-calendar{
    width:100%;
    max-width:none!important;
  }

  /* Calendar gets virtually edge-to-edge workspace. */
  .desktop-content.view-calendar{
    width:100%;
    max-width:none!important;
    padding:18px 18px 22px;
  }
  .view-calendar .calendar-page{
    width:100%;
    max-width:none;
    height:calc(100vh - 108px);
  }
  .view-calendar .ribbon-viewport{
    width:100%;
    max-width:none;
  }

  /* Property cards should scale with available width, not fixed tablet columns. */
  .view-properties > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  }
  .view-propertyOps > .grid{
    grid-template-columns:repeat(auto-fit,minmax(310px,1fr))!important;
  }

  /* Work queues scale naturally as monitors get wider. */
  .view-tasks .task-list{
    grid-template-columns:repeat(auto-fit,minmax(360px,1fr))!important;
  }
  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(auto-fit,minmax(310px,1fr))!important;
  }
  .view-today #exceptionsSection .exception-list{
    grid-template-columns:repeat(auto-fit,minmax(380px,1fr))!important;
  }

  .view-totes > .grid,
  .view-linens > .grid,
  .view-templates > .grid,
  .view-claims > .grid,
  .view-damageReports > .grid,
  .view-more > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  }

  .view-photos .photo-property-grid{
    grid-template-columns:repeat(auto-fit,minmax(270px,1fr))!important;
  }
  .view-photos .photo-grid{
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  }

  /* Operations detail can span wider screens without looking like one huge form. */
  .property-ops-page{
    width:100%;
    max-width:none!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  /* Admin/user management grows gracefully. */
  .view-admin > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  }

  /* Avoid long unreadable text measures inside wide cards. */
  .card p,
  .menu-card span,
  .task-card .muted{
    max-width:72ch;
  }
}

/* Large desktop: use more of the monitor, with sensible card minimums. */
@media(min-width:1600px){
  .desktop-content{
    padding-left:30px;
    padding-right:30px;
  }

  .view-properties > .grid{
    grid-template-columns:repeat(auto-fit,minmax(315px,1fr))!important;
  }

  .view-tasks .task-list{
    grid-template-columns:repeat(auto-fit,minmax(390px,1fr))!important;
  }

  .view-calendar .ribbon-sticky-property,
  .view-calendar .ribbon-sticky-corner{
    --property-width:240px;
  }
}

/* Ultrawide / 49-inch monitor mode */
@media(min-width:1900px){
  :root{
    --desktop-sidebar:250px;
  }

  .desktop-content{
    padding:24px 32px 44px;
  }

  /* Keep property cards readable while increasing column count automatically. */
  .view-properties > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
    gap:16px;
  }

  .view-propertyOps > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  }

  .view-tasks .task-list{
    grid-template-columns:repeat(auto-fit,minmax(370px,1fr))!important;
  }

  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important;
  }

  /* Full-width schedule board with slightly wider property labels. */
  .desktop-content.view-calendar{
    padding:14px 16px 18px;
  }
  .view-calendar .calendar-page{
    height:calc(100vh - 96px);
  }
  .view-calendar .ribbon-sticky-corner,
  .view-calendar .ribbon-sticky-property{
    width:248px!important;
    min-width:248px!important;
  }
  .view-calendar .calendar-desktop-head{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:8px;
  }
  .view-calendar .calendar-toolbar{
    margin-bottom:4px;
  }
  .view-calendar .desktop-calendar-controls{
    margin-bottom:8px;
  }

  /* Reduce dead space inside wide toolbar. */
  .view-calendar .desktop-calendar-summary{
    flex:1 1 auto;
  }
  .view-calendar .desktop-calendar-actions{
    margin-left:auto;
  }

  /* Owner communication and property ops should become true desktop workspaces. */
  .view-ownerComms #ownerCommsContent{
    grid-template-columns:minmax(420px,.7fr) minmax(700px,1.3fr);
  }
  .property-ops-page{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .property-ops-page .ops-access,
  .property-ops-page .ops-key,
  .property-ops-page .ops-trash,
  .property-ops-page .ops-vendors,
  .property-ops-page .ops-maintenance,
  .property-ops-page .ops-notes{
    grid-column:auto;
  }
  .property-ops-page .ops-access,
  .property-ops-page .ops-maintenance{
    grid-column:span 2;
  }
  .property-ops-page .ops-vendors,
  .property-ops-page .ops-notes{
    grid-column:span 3;
  }
}

/* Very large ultrawide: don't cap the app, just increase useful density. */
@media(min-width:2800px){
  :root{
    --desktop-sidebar:270px;
  }

  .desktop-content{
    padding-left:38px;
    padding-right:38px;
  }

  .view-properties > .grid{
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important;
  }

  .view-tasks .task-list{
    grid-template-columns:repeat(auto-fit,minmax(410px,1fr))!important;
  }

  .view-totes > .grid,
  .view-linens > .grid,
  .view-templates > .grid{
    grid-template-columns:repeat(auto-fit,minmax(320px,1fr))!important;
  }

  .view-calendar .ribbon-sticky-corner,
  .view-calendar .ribbon-sticky-property{
    width:270px!important;
    min-width:270px!important;
  }

  .view-calendar .ribbon-booking b{
    font-size:11px;
  }
  .view-calendar .ribbon-booking span{
    font-size:9px;
  }
}

/* Calendar range Auto button */
.desktop-calendar-auto{
  min-height:32px;
  border:1px solid #d7dee7;
  border-radius:7px;
  padding:5px 9px;
  background:#fff;
  color:#526071;
  font:inherit;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}
.desktop-calendar-auto.active{
  background:#111827;
  border-color:#111827;
  color:#fff;
}


/* V10.5 — Bulk task actions and evidence photo stamping */
.task-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.task-bulk-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.check-tile.compact{padding:7px 9px;font-size:12px}
.task-card-wrap{position:relative;min-width:0}
.task-card-wrap .task-card{height:100%}
.task-select-box{position:absolute;z-index:3;right:10px;top:10px;display:flex;align-items:center;gap:5px;padding:4px 7px;border-radius:7px;background:rgba(255,255,255,.94);border:1px solid var(--line);font-size:10px;font-weight:750}
.task-select-box input{width:15px;height:15px}
.task-card-wrap .task-card > .row:first-child{padding-right:72px}
#bulkDoneBtn:disabled{opacity:.45;cursor:not-allowed}
.evidence-stamp-note{border:1px solid #bfdbfe}
@media(max-width:700px){
  .task-toolbar{align-items:stretch}
  .task-bulk-actions{width:100%}
  .task-bulk-actions .btn{flex:1 1 150px}
}


/* V11.0 — JaxBNB Owner Lead CRM */
.owner-lead-page-head{margin-bottom:16px}
.owner-lead-metrics{grid-template-columns:repeat(5,minmax(150px,1fr))}
.metric-card-btn.metric-alert{border-color:#fecaca;background:#fffafa}
.owner-lead-toolbar{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.lead-view-tabs{display:flex;border:1px solid var(--line);border-radius:9px;padding:3px;background:#f8fafc}
.lead-view-tabs button{border:0;background:transparent;padding:8px 12px;border-radius:7px;font:inherit;font-weight:750;cursor:pointer}
.lead-view-tabs button.active{background:#111827;color:#fff}
.inline-field{margin:0;min-width:220px}
.owner-lead-followups{margin:20px 0}
.lead-followup-list{display:grid;gap:9px}
.lead-followup-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px}
.lead-followup-card.overdue{border-left:5px solid #b91c1c}
.lead-followup-main{border:0;background:transparent;text-align:left;padding:0;font:inherit;cursor:pointer}
.owner-lead-pipeline{display:flex;gap:12px;overflow-x:auto;padding-bottom:14px;align-items:flex-start}
.lead-stage-column{flex:0 0 290px;min-width:290px;background:#eef2f6;border-radius:12px;padding:9px}
.lead-stage-column.closed{background:#f4f6f8}
.lead-stage-head{display:flex;align-items:center;justify-content:space-between;padding:6px 5px 10px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#536174}
.lead-stage-head span{background:#fff;border-radius:99px;padding:2px 7px;font-size:10px}
.lead-stage-cards{display:grid;gap:8px}
.lead-stage-empty{padding:20px 10px;text-align:center;color:var(--muted);font-size:11px}
.lead-card{width:100%;border:1px solid #dfe5eb;background:#fff;border-radius:10px;padding:12px;text-align:left;font:inherit;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04)}
.lead-card:hover{border-color:#b9c4d0;box-shadow:0 5px 14px rgba(15,23,42,.07)}
.lead-card.hot{border-left:4px solid #dc2626}
.lead-card.warm{border-left:4px solid #f59e0b}
.lead-card.cold{border-left:4px solid #64748b}
.lead-card.overdue{box-shadow:inset 0 0 0 1px #fecaca}
.lead-address{margin:7px 0;font-weight:650;line-height:1.3}
.lead-card-foot{display:grid;gap:4px;margin-top:10px;padding-top:8px;border-top:1px solid #edf0f3;font-size:9px;color:#6b7787}
.owner-lead-closed-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.owner-lead-closed-grid .lead-stage-column{min-width:0;width:auto}
.owner-lead-list{display:grid;gap:10px}
.lead-list-row{display:grid;grid-template-columns:minmax(0,1fr) 220px auto;align-items:center;gap:14px}
.lead-list-main{border:0;background:transparent;text-align:left;font:inherit;cursor:pointer;padding:0}
.lead-list-meta{display:grid;gap:4px;font-size:11px;color:#667386}
.owner-lead-form{max-width:1180px;margin:0 auto}
.owner-lead-detail{display:grid;gap:16px}
.lead-detail-head{padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}
.lead-detail-head h2{margin:12px 0 7px}
.owner-lead-detail-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(320px,.8fr);gap:16px;align-items:start}
.lead-main-card .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.lead-side-stack{display:grid;gap:16px;position:sticky;top:90px}
.lead-dates{display:grid;gap:8px;margin-top:14px}
.lead-dates>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid #edf0f3;font-size:10px}
.lead-dates span{color:var(--muted)}
.lead-mini-followup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 0;border-top:1px solid #edf0f3}
.lead-mini-followup span{display:block;color:var(--muted);font-size:9px;margin-top:2px}
.lead-mini-followup.overdue b{color:#b91c1c}
.lead-activity-composer .grid{grid-template-columns:180px minmax(0,1fr) 260px}
.lead-timeline{display:grid}
.lead-timeline-row{display:grid;grid-template-columns:18px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid #edf0f3}
.lead-timeline-dot{width:9px;height:9px;border-radius:50%;background:#64748b;margin-top:5px}
.lead-timeline-row p{margin:5px 0}
.owner-lead-convert{max-width:1000px;margin:0 auto}

@media(min-width:1400px){
  .lead-stage-column{flex-basis:310px;min-width:310px}
}
@media(min-width:2200px){
  .owner-lead-pipeline{display:grid;grid-template-columns:repeat(7,minmax(260px,1fr));overflow:visible}
  .lead-stage-column{min-width:0;width:auto}
}
@media(max-width:900px){
  .owner-lead-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .owner-lead-detail-grid{grid-template-columns:1fr}
  .lead-side-stack{position:static}
  .lead-list-row{grid-template-columns:1fr}
  .lead-main-card .grid{grid-template-columns:1fr}
  .lead-activity-composer .grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .owner-lead-metrics{grid-template-columns:1fr 1fr}
  .owner-lead-closed-grid{grid-template-columns:1fr}
  .lead-stage-column{flex-basis:86vw;min-width:86vw}
}


/* V11.1 — Guests, Reviews, Messages, Promotions, Forms, Media & Recruitment */
.guest-directory{display:grid;gap:9px}
.guest-row{display:grid;grid-template-columns:minmax(220px,1.2fr) 80px 80px minmax(220px,1fr) 130px auto;gap:14px;align-items:center}
.guest-row span{display:block}
.review-summary-grid{display:grid;grid-template-columns:1fr 1.6fr .8fr;gap:14px;margin-bottom:16px}
.review-stat>span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800}.review-stat>b{display:block;font-size:30px;margin:8px 0}.review-channel-pills{display:flex;gap:6px;flex-wrap:wrap}
.rating-row{display:grid;grid-template-columns:28px 1fr 36px;gap:8px;align-items:center;margin:5px 0;font-size:10px}.rating-row>div{height:5px;background:#e5e7eb;border-radius:99px;overflow:hidden}.rating-row i{display:block;height:100%;background:#64748b}
.review-filters{display:grid;grid-template-columns:auto minmax(260px,1fr) 180px 220px;gap:10px;align-items:center;margin-bottom:16px}.review-rating-tabs{display:flex;gap:3px;background:#f3f4f6;padding:3px;border-radius:8px}.review-rating-tabs button{border:0;background:transparent;padding:7px 9px;border-radius:6px;font-weight:700;cursor:pointer}.review-rating-tabs button.active{background:#111827;color:#fff}
.review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.review-card{min-height:190px}.review-stars{color:#eab308;font-weight:800;text-align:right}.review-stars span{display:block;color:var(--muted);font-size:9px;font-weight:500}
.message-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;min-height:560px}.message-thread-list{padding:8px;overflow:auto}.message-thread{width:100%;border:0;border-bottom:1px solid #edf0f3;background:#fff;padding:12px;text-align:left;font:inherit;cursor:pointer}.message-thread:hover{background:#f8fafc}.notif-badge.inline{position:static;display:inline-flex}.message-pane{min-height:560px}.message-history{display:grid;gap:10px;margin:16px 0}.message-bubble{max-width:75%;padding:10px 12px;border-radius:12px;background:#f1f5f9}.message-bubble.outbound{margin-left:auto;background:#111827;color:#fff}.message-bubble span,.message-bubble small{font-size:9px;opacity:.75}.message-bubble p{margin:5px 0}
.promotion-code{display:inline-block;margin:8px 0;padding:7px 10px;border:1px dashed #94a3b8;border-radius:7px;font-weight:900;letter-spacing:.08em}
.submission-list{display:grid;gap:10px}.submission-list .room-card{display:grid;gap:8px}
.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.media-card{display:grid;gap:8px}.media-preview{height:150px;border-radius:8px;background:#eef2f6;display:grid;place-items:center;overflow:hidden;color:#64748b}.media-preview img{width:100%;height:100%;object-fit:cover}
.recruit-pipeline{display:flex;gap:12px;overflow-x:auto;padding-bottom:14px}.recruit-pipeline .lead-stage-column{flex:0 0 280px}
.public-form-page{max-width:760px;margin:0 auto}
@media(max-width:900px){.guest-row{grid-template-columns:1fr 1fr}.guest-row>div:first-child,.guest-row>div:nth-child(4),.guest-row>.row{grid-column:1/-1}.review-summary-grid,.review-filters,.message-layout{grid-template-columns:1fr}.message-thread-list{max-height:300px}.message-pane{min-height:300px}}

/* V11.2 — Full JaxBNB desktop catalog/management modules */
.booking-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.booking-row{cursor:pointer}.booking-row:hover td{background:#f8fafc}
.analytics-metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.analytics-bar-row{display:grid;grid-template-columns:140px 1fr 50px;gap:10px;align-items:center;margin:9px 0}.analytics-bar-row>div{height:8px;background:#e5e7eb;border-radius:99px;overflow:hidden}.analytics-bar-row i{display:block;height:100%;background:#334155}.analytics-property-row{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #edf0f3}
.cms-editor{max-width:1100px;margin:0 auto}
.team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.team-card{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:14px;align-items:start}.team-photo{width:74px;height:74px;border-radius:12px;background:#e5e7eb;display:grid;place-items:center;overflow:hidden;font-size:28px;font-weight:900}.team-photo img{width:100%;height:100%;object-fit:cover}.team-card p{margin:8px 0;color:var(--muted)}
.email-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:22px}
@media(max-width:900px){.analytics-grid,.email-action-grid{grid-template-columns:1fr}.team-card{grid-template-columns:64px 1fr}.team-card>.btn{grid-column:1/-1}.analytics-bar-row{grid-template-columns:100px 1fr 40px}}


/* V11.3 — Owner Portal */
.owner-signup-btn{width:100%;margin-top:9px}
.owner-content{max-width:none!important}
.owner-welcome{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:26px 28px;margin-bottom:18px;border-radius:15px;background:linear-gradient(125deg,#111827,#293548);color:#fff}
.owner-welcome h1{margin:4px 0 6px;font-size:30px}.owner-welcome p{margin:0;color:#dbe3ed}.owner-welcome .eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:800;color:#9eacbf}
.owner-support{display:grid;gap:4px;text-align:right}.owner-support span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#aeb9c7}.owner-support b{font-size:18px}
.owner-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.owner-section{margin-top:24px}.owner-section>h2,.owner-section>.row h2{margin-bottom:4px}
.owner-property-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.owner-property-card{overflow:hidden}.owner-property-hero{height:150px;margin:-20px -20px 15px;overflow:hidden}.owner-property-hero img{width:100%;height:100%;object-fit:cover}
.owner-dashboard-columns{display:grid;grid-template-columns:1.15fr .85fr;gap:16px;margin-top:22px}.owner-reservation-list{display:grid}.owner-reservation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:11px 0;border-top:1px solid #edf0f3}.owner-reservation-row>div{display:grid;gap:3px}.owner-reservation-row span{font-size:10px;color:var(--muted)}
.owner-doc-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px 0;border:0;border-top:1px solid #edf0f3;background:transparent;text-align:left;font:inherit;cursor:pointer}.owner-doc-row:hover{background:#fafbfd}.owner-doc-row>div{display:grid;gap:3px}.owner-doc-row>div:last-child{text-align:right;justify-items:end}.owner-doc-row span,.owner-doc-row small{font-size:9px;color:var(--muted)}
.owner-doc-filters{display:grid;grid-template-columns:1fr 180px 230px;gap:12px}.owner-doc-month{margin:18px 0}.owner-doc-month h3{margin:0}.owner-doc-list{padding:0 18px}.owner-doc-filter-item:first-child .owner-doc-row{border-top:0}
.owner-request-list{display:grid;gap:10px}.owner-request-card{width:100%;text-align:left;cursor:pointer}.owner-request-card span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.owner-request-form,.owner-request-detail{max-width:1000px;margin:0 auto}
.owner-request-comments{display:grid;gap:10px;margin:12px 0}.owner-comment{max-width:80%;padding:10px 12px;border-radius:12px;background:#eef2f6}.owner-comment.from-jaxbnb{margin-left:auto;background:#111827;color:#fff}.owner-comment p{margin:5px 0}.owner-comment span{font-size:9px;opacity:.7}
.owner-admin-list{display:grid;gap:8px}.owner-admin-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid #edf0f3}.owner-admin-row>div{display:grid;gap:3px}.owner-admin-row span{font-size:10px;color:var(--muted)}
.owner-admin-doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}.owner-property-access-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;margin:14px 0}.owner-property-access-grid .check-tile span{display:grid}.owner-property-access-grid small{color:var(--muted)}
.owner-doc-upload,.owner-access-editor{max-width:1100px;margin:0 auto}
.owner-announcements{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}
@media(max-width:800px){
  .owner-welcome{display:grid;padding:20px}.owner-support{text-align:left}.owner-metrics{grid-template-columns:1fr 1fr}.owner-dashboard-columns{grid-template-columns:1fr}.owner-doc-filters{grid-template-columns:1fr}.owner-reservation-row,.owner-doc-row{grid-template-columns:1fr}.owner-doc-row>div:last-child{text-align:left;justify-items:start}.owner-admin-row{grid-template-columns:1fr}
}


/* V11.4 — Property Performance Analytics */
.property-performance-toolbar{display:grid;grid-template-columns:220px minmax(300px,1fr);gap:12px;margin-bottom:16px}
.performance-health-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.performance-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px}
.performance-property-card{width:100%;text-align:left;font:inherit;cursor:pointer;min-width:0}
.performance-property-card.attention{border-left:5px solid #b91c1c}.performance-property-card.watch{border-left:5px solid #d97706}.performance-property-card.healthy{border-left:5px solid #15803d}
.performance-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.performance-mini-grid>div{padding:10px;background:#f7f9fb;border-radius:8px;display:grid;gap:3px}.performance-mini-grid span,.performance-mini-grid small{font-size:9px;color:var(--muted)}.performance-mini-grid b{font-size:20px}
.metric-delta{font-size:9px!important;font-weight:750}.metric-delta.up{color:#15803d!important}.metric-delta.down{color:#b91c1c!important}.metric-delta.neutral{color:#64748b!important}
.performance-signal-preview{display:flex;flex-wrap:wrap;gap:5px}.performance-signal-preview span{font-size:9px;font-weight:750;padding:4px 7px;border-radius:99px}.performance-signal-preview .attention{background:#fee2e2;color:#991b1b}.performance-signal-preview .watch{background:#fef3c7;color:#92400e}.performance-signal-preview .positive{background:#dcfce7;color:#166534}.performance-signal-preview .info{background:#e0f2fe;color:#075985}
.property-performance-detail{display:grid;gap:16px}.performance-detail-head{padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}.performance-detail-head h2{margin:12px 0 3px}
.performance-detail-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.performance-metric small{color:var(--muted);font-size:9px}
.performance-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.performance-signals{display:grid;gap:9px}.performance-signal{padding:12px 14px;border-radius:9px;border-left:4px solid #64748b;background:#f8fafc}.performance-signal p{margin:5px 0 0}.performance-signal.attention{border-color:#b91c1c;background:#fff7f7}.performance-signal.watch{border-color:#d97706;background:#fffbeb}.performance-signal.positive{border-color:#15803d;background:#f0fdf4}.performance-signal.info{border-color:#0284c7;background:#f0f9ff}
.forward-demand-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.forward-demand-grid>div{padding:12px;background:#f7f9fb;border-radius:9px;display:grid;gap:4px}.forward-demand-grid span,.forward-demand-grid small{font-size:9px;color:var(--muted)}.forward-demand-grid b{font-size:25px}.compare-callout{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:8px}
.monthly-bars{height:205px;display:flex;align-items:end;gap:8px;padding-top:20px}.monthly-bar-col{flex:1;min-width:22px;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:4px}.monthly-bar{width:70%;max-width:34px;background:#334155;border-radius:5px 5px 0 0}.monthly-bar-col b{font-size:9px}.monthly-bar-col span{font-size:8px;color:var(--muted)}
.pace-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.pace-card{padding:13px;border:1px solid var(--line);border-radius:9px;display:grid;gap:5px}.pace-card span,.pace-card small{font-size:9px;color:var(--muted)}.pace-card b{font-size:15px}
.quality-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quality-grid>div{padding:12px;background:#f7f9fb;border-radius:8px;display:grid;gap:4px}.quality-grid span{font-size:9px;color:var(--muted)}.quality-grid b{font-size:20px}
.financial-import{max-width:950px;margin:0 auto}
@media(max-width:900px){.property-performance-toolbar,.performance-detail-grid{grid-template-columns:1fr}.performance-detail-metrics,.pace-grid,.quality-grid{grid-template-columns:1fr 1fr}.performance-card-grid{grid-template-columns:1fr}}
@media(max-width:520px){.performance-detail-metrics,.pace-grid,.quality-grid,.performance-mini-grid{grid-template-columns:1fr}.forward-demand-grid{grid-template-columns:1fr}}


/* V11.5 — Expanded Owner Vault & Branded Property Comps */
.property-comp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:14px}.comp-report-card{display:grid;gap:10px}.comp-report-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.comp-report-numbers>div{background:#f7f9fb;border-radius:8px;padding:10px;display:grid;gap:3px}.comp-report-numbers span{font-size:9px;color:var(--muted)}.comp-report-numbers b{font-size:18px}
.comp-editor{display:grid;gap:16px}.comp-editor-head{padding:18px 20px;background:#fff;border:1px solid var(--line);border-radius:12px}.comp-editor-head h2{margin:12px 0 4px}.comp-form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.comp-projection-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.comp-month-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.comp-month-card{display:grid;gap:6px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#fafbfd}.comp-month-card b{text-align:center}.comp-month-card input{width:100%;min-width:0;padding:7px;border:1px solid #d8dee7;border-radius:7px}
.comp-comparable-editor{padding:14px;margin-top:12px;border:1px solid #dfe5eb;border-radius:10px;background:#fafbfd}.comp-comparable-editor>.grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.comp-public{min-height:100vh;background:#eef1f4;padding:32px 18px;color:#111827;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.comp-public-inner{max-width:1180px;margin:0 auto;background:#fff;box-shadow:0 25px 70px rgba(15,23,42,.12);overflow:hidden}.comp-public-header{display:flex;gap:20px;align-items:center;padding:32px 42px;border-bottom:1px solid #e5e7eb}.comp-public-header img{width:72px;height:72px;border-radius:14px;background:#05070a;object-fit:cover}.comp-public-header span{font-size:10px;font-weight:900;letter-spacing:.12em;color:#718096}.comp-public-header h1{margin:5px 0 4px;font-size:29px}.comp-public-header p{margin:0;color:#64748b}
.comp-public-hero{display:grid;grid-template-columns:1fr 1.3fr;gap:24px;align-items:center;padding:42px;background:#111827;color:#fff}.comp-public-hero>div:first-child>span{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#aab5c4}.comp-public-hero h2{font-size:47px;margin:8px 0}.comp-public-hero p{color:#cbd5e1}.comp-range{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.comp-range>div{padding:17px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:10px;display:grid;gap:5px}.comp-range span{font-size:9px;text-transform:uppercase;color:#aab5c4}.comp-range b{font-size:20px}
.comp-public-message,.comp-public-section,.comp-public-assumptions{padding:30px 42px}.comp-public-message{background:#f8fafc}.comp-public-message h2,.comp-public-section h2{margin-top:0}.comp-public-message p,.comp-public-section>p{font-size:16px;line-height:1.65;color:#475569;white-space:pre-line}
.comp-public-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#e5e7eb;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.comp-public-metrics>div{background:#fff;padding:24px 20px;display:grid;gap:5px;text-align:center}.comp-public-metrics span{font-size:9px;text-transform:uppercase;color:#64748b;font-weight:800;letter-spacing:.07em}.comp-public-metrics b{font-size:24px}
.comp-public-months{height:205px;display:flex;align-items:end;gap:9px;padding-top:20px}.comp-public-months>div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px}.comp-public-month-bar{width:65%;max-width:42px;background:#334155;border-radius:6px 6px 0 0}.comp-public-months b{font-size:9px}.comp-public-months span{font-size:9px;color:#64748b}
.comp-public-comps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.comp-public-comp{border:1px solid #e2e8f0;border-radius:11px;overflow:hidden;background:#fff}.comp-public-comp img{width:100%;height:150px;object-fit:cover}.comp-public-comp>div{padding:15px}.comp-public-comp h3{margin:0 0 4px}.comp-public-comp p{margin:0 0 9px;color:#64748b;font-size:11px}.comp-public-comp-stats{display:flex;gap:6px;flex-wrap:wrap}.comp-public-comp-stats span{font-size:9px;padding:5px 7px;background:#f1f5f9;border-radius:99px}.comp-public-comp small{display:block;margin-top:9px;line-height:1.4;color:#64748b}
.comp-public-two-col{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb}.comp-public-two-col .comp-public-section+section{border-left:1px solid #e5e7eb}.comp-public-assumptions{background:#f8fafc}.comp-public-assumptions p{white-space:pre-line;color:#64748b}
.comp-public-cta{padding:40px 42px;background:#111827;color:#fff;text-align:center;display:grid;gap:7px}.comp-public-cta h2{margin:0}.comp-public-cta p{color:#cbd5e1}.comp-public-cta b{font-size:24px}.comp-public-cta span{font-size:10px;color:#9aa7b8}.comp-public footer{padding:22px 42px;font-size:9px;color:#64748b;display:flex;justify-content:space-between;align-items:center;gap:20px}.comp-public footer p{max-width:850px}.comp-public footer button{border:1px solid #d6dde6;background:#fff;border-radius:8px;padding:8px 10px;cursor:pointer}
@media(max-width:900px){.comp-form-grid,.comp-comparable-editor>.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-projection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.comp-month-grid{grid-template-columns:repeat(3,1fr)}.comp-public-hero{grid-template-columns:1fr}.comp-public-comps{grid-template-columns:1fr}.comp-public-two-col{grid-template-columns:1fr}.comp-public-two-col .comp-public-section+section{border-left:0;border-top:1px solid #e5e7eb}}
@media(max-width:600px){.comp-form-grid,.comp-comparable-editor>.grid,.comp-projection-grid{grid-template-columns:1fr}.comp-month-grid{grid-template-columns:repeat(2,1fr)}.comp-report-numbers{grid-template-columns:1fr}.comp-public{padding:0}.comp-public-header,.comp-public-hero,.comp-public-message,.comp-public-section,.comp-public-assumptions,.comp-public-cta{padding:22px}.comp-public-header{align-items:flex-start}.comp-public-header img{width:54px;height:54px}.comp-public-header h1{font-size:22px}.comp-public-hero h2{font-size:36px}.comp-range,.comp-public-metrics{grid-template-columns:1fr 1fr}.comp-public footer{display:grid;padding:18px 22px}}
@media print{.comp-public{padding:0;background:#fff}.comp-public-inner{box-shadow:none;max-width:none}.comp-public footer button{display:none}.comp-public-comp{break-inside:avoid}.comp-public-section{break-inside:avoid}}


/* V11.6 — Damage approvals, business health, role presets */
.recommended-role-presets{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:10px}
.damage-report-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.damage-report-tile.approval{border-left:5px solid #d97706}
.damage-kind-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0 18px}
.damage-kind-option{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:10px;cursor:pointer;background:#fafbfd}
.damage-kind-option:has(input:checked){border-color:#334155;background:#f1f5f9}
.damage-kind-option span{display:grid;gap:4px}.damage-kind-option small{color:var(--muted);line-height:1.4}
.damage-approval-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}.damage-approval-status>div{padding:11px;border-radius:9px;background:#f7f9fb;display:grid;gap:4px}.damage-approval-status span{font-size:9px;text-transform:uppercase;color:var(--muted)}.damage-approval-status b{text-transform:capitalize}
.damage-approval-status.approved>div:first-child{background:#ecfdf5}.damage-approval-status.declined>div:first-child{background:#fff1f2}
.public-repair-status{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.public-repair-status>div{background:#f7f9fb;padding:12px;border-radius:8px;display:grid;gap:3px}.public-repair-status span{font-size:9px;text-transform:uppercase;color:#64748b}.public-repair-status b{text-transform:capitalize}
.owner-approval-panel{margin-top:20px;padding:18px;border:2px solid #d97706;border-radius:11px;background:#fffbeb}.owner-approval-actions{display:flex;gap:8px;flex-wrap:wrap}.owner-approval-complete{margin-top:20px;padding:18px;border-radius:10px;background:#f0fdf4}.owner-approval-complete.declined{background:#fff1f2}
.security-notice{border-left:5px solid #0f766e}
.business-health-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}.business-health-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px;margin-top:16px}.cashflow-chart{height:205px;display:flex;align-items:end;gap:9px;padding:20px 0 0}.cashflow-month{flex:1;height:100%;min-width:30px;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:5px}.cashflow-bars{height:150px;display:flex;align-items:end;gap:3px}.cashflow-bars i{display:block;width:10px;min-height:2px;border-radius:4px 4px 0 0}.cashflow-bars .revenue,.cashflow-legend .revenue{background:#15803d}.cashflow-bars .expense,.cashflow-legend .expense{background:#b91c1c}.cashflow-month b{font-size:8px}.cashflow-month span{font-size:8px;color:var(--muted)}.cashflow-legend{display:flex;gap:14px}.cashflow-legend span{display:flex;align-items:center;gap:5px;font-size:9px}.cashflow-legend i{width:9px;height:9px;border-radius:2px}.forecast-big{font-size:38px;font-weight:850;margin:12px 0}.expense-category-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f3}
.metric-card-btn.bad{border-color:#fecaca;background:#fff7f7}.metric-card-btn.warn{border-color:#fde68a;background:#fffbeb}.metric-card-btn.good{border-color:#bbf7d0;background:#f0fdf4}
@media(max-width:1000px){.business-health-metrics{grid-template-columns:repeat(3,1fr)}.business-health-grid{grid-template-columns:1fr}}
@media(max-width:700px){.damage-kind-picker{grid-template-columns:1fr}.damage-approval-status,.public-repair-status{grid-template-columns:1fr 1fr}.business-health-metrics{grid-template-columns:1fr 1fr}}

/* V11.8 — Booking directory & sorting */
.booking-controls{display:grid;grid-template-columns:minmax(280px,1fr) 190px 220px;gap:12px;align-items:end;margin-bottom:14px}
.booking-controls .field{margin:0}
.booking-table-wrap tbody tr{cursor:pointer}
.booking-table-wrap tbody tr:hover td{background:#f8fafc}
@media(max-width:800px){.booking-controls{grid-template-columns:1fr}.booking-table-wrap{overflow:auto}}

/* V11.9 — CoSchedule-style Blog Planner */
.blog-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.blog-planner-toolbar{display:grid;grid-template-columns:auto minmax(260px,1fr);gap:14px;align-items:end}.blog-view-tabs{display:flex;gap:4px;background:#f1f5f9;border-radius:9px;padding:4px}.blog-view-tabs button{border:0;background:transparent;border-radius:7px;padding:8px 11px;font-weight:750;cursor:pointer}.blog-view-tabs button:hover{background:#fff}
.blog-pipeline{display:flex;gap:12px;overflow-x:auto;padding-bottom:14px}.blog-stage{flex:0 0 300px;background:#f3f5f7;border:1px solid #e0e5ea;border-radius:10px;padding:8px}.blog-stage-head{display:flex;justify-content:space-between;align-items:center;padding:7px 5px}.blog-stage-head span{font-size:10px;background:#fff;border-radius:99px;padding:3px 7px}.blog-stage-cards{display:grid;gap:8px}.blog-stage-empty{font-size:10px;color:var(--muted);padding:15px;text-align:center}
.blog-post-card{width:100%;border:1px solid #e0e5ea;background:#fff;border-radius:9px;padding:11px;text-align:left;font:inherit;cursor:pointer;display:grid;gap:6px}.blog-post-card:hover{border-color:#94a3b8}.blog-post-card.high{border-left:4px solid #b91c1c}.blog-keyword{font-size:9px;padding:4px 6px;background:#eef2ff;color:#3730a3;border-radius:5px;width:max-content}.blog-card-foot{display:flex;gap:8px;flex-wrap:wrap;font-size:9px;color:var(--muted)}
.blog-idea-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px}
.blog-calendar-head{display:flex;justify-content:center;align-items:center;gap:14px;margin-bottom:10px}.blog-calendar-head h3{margin:0}.blog-calendar-weekdays,.blog-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.blog-calendar-weekdays b{padding:8px;text-align:center;font-size:10px;color:var(--muted)}.blog-calendar-day{min-height:135px;border:1px solid #e2e8f0;padding:7px;background:#fff}.blog-calendar-day.blank{background:#f8fafc}.blog-calendar-day>span{font-size:10px;color:#64748b}.blog-calendar-day>div{display:grid;gap:4px;margin-top:5px}.blog-calendar-day button{border:0;background:#e0f2fe;color:#0c4a6e;border-radius:6px;padding:6px;text-align:left;cursor:pointer}.blog-calendar-day button b{display:block;font-size:9px}.blog-calendar-day button small{font-size:8px}
.blog-post-editor{display:grid;gap:14px}.blog-editor-head{padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:11px}.blog-editor-head h2{margin:10px 0 0}.blog-plan-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.blog-task-list{display:grid;gap:6px}.blog-task-row{display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;padding:9px;border:1px solid #e2e8f0;border-radius:8px}.blog-task-row span{display:grid;gap:2px}.blog-task-row small{color:var(--muted)}
@media(max-width:900px){.blog-planner-toolbar,.blog-plan-grid{grid-template-columns:1fr}.blog-calendar-day{min-height:95px}.blog-calendar-day button b{font-size:8px}}
@media(max-width:600px){.blog-metrics{grid-template-columns:1fr 1fr}.blog-view-tabs{overflow-x:auto}.blog-calendar-weekdays b{font-size:8px}.blog-calendar-day{min-height:76px;padding:4px}.blog-calendar-day button{padding:4px}.blog-calendar-day button b{font-size:7px}}

/* V11.10 — Direct turnover context loading */
.booking-actions .btn{min-width:88px}

/* V11.11 — Cleaner Guests + Property Review Analytics */
.guest-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}
.guest-filter-bar{display:grid;grid-template-columns:minmax(300px,1fr) 220px;gap:12px;align-items:end}
.guest-filter-bar .field{margin:0}
.guest-directory-clean{display:grid;gap:9px}
.guest-profile-card{width:100%;display:grid;grid-template-columns:48px minmax(260px,2fr) 70px 70px minmax(150px,1fr) 22px;gap:14px;align-items:center;text-align:left;font:inherit;cursor:pointer}
.guest-profile-card:hover{border-color:#94a3b8;background:#fbfcfd}
.guest-avatar{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#111827;color:#fff;font-weight:850}
.guest-avatar.large{width:68px;height:68px;font-size:20px}
.guest-primary h3{margin:0}.guest-contact-line,.guest-property-line{display:flex;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:10px;margin-top:4px}.guest-property-line{font-size:9px}
.guest-stat,.guest-stay-date{display:grid;gap:3px}.guest-stat span,.guest-stay-date span,.guest-stay-date small{font-size:9px;color:var(--muted)}.guest-stat b{font-size:18px}
.guest-chevron{font-size:25px;color:#94a3b8}
.guest-detail-page{display:grid;gap:14px}.guest-detail-hero{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center}.guest-detail-hero h2{margin:0}.guest-detail-actions{display:flex;gap:6px}
.guest-stay-row{width:100%;border:0;border-top:1px solid #edf0f3;background:transparent;padding:11px 0;display:grid;grid-template-columns:1fr auto;gap:14px;text-align:left;font:inherit;cursor:pointer}.guest-stay-row>div{display:grid;gap:3px}.guest-stay-row span{font-size:9px;color:var(--muted)}.guest-stay-row:hover{background:#fafbfd}
.review-summary-v2{grid-template-columns:1.15fr 1fr .7fr}.review-stat.hero b{font-size:35px}.review-secondary-number{font-size:23px!important;margin-top:4px}
.review-property-performance{margin:14px 0}.review-property-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}.review-property-grid button{border:1px solid #e2e8f0;background:#fff;border-radius:9px;padding:11px;text-align:left;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px}.review-property-grid button:hover{border-color:#94a3b8}.review-property-grid button>div{display:grid}.review-property-grid span,.review-property-grid small{font-size:9px;color:var(--muted)}.review-property-grid strong{font-size:20px}.bad-text{color:#b91c1c!important}
.review-selection-row{display:flex;justify-content:space-between;align-items:center;padding:8px 3px;font-size:10px;color:var(--muted)}
.review-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start}.review-card-head .review-select{margin-top:3px}
.review-import-card{max-width:850px;margin:0 auto}
@media(max-width:900px){.guest-profile-card{grid-template-columns:44px minmax(0,1fr) 60px 60px}.guest-stay-date{grid-column:2/-1}.guest-chevron{display:none}.review-summary-v2{grid-template-columns:1fr}.guest-detail-hero{grid-template-columns:68px 1fr}.guest-detail-actions{grid-column:1/-1}}
@media(max-width:600px){.guest-metrics{grid-template-columns:1fr 1fr}.guest-filter-bar{grid-template-columns:1fr}.guest-profile-card{grid-template-columns:44px minmax(0,1fr)}.guest-stat{display:none}.guest-stay-date{grid-column:1/-1;padding-left:58px}.guest-stay-row{grid-template-columns:1fr}.review-property-grid{grid-template-columns:1fr}}


/* V11.13 — Review readability + per-platform property scores */
.review-summary-v3{grid-template-columns:1.25fr 1fr .75fr}
.review-overall-card{color:#111827!important;background:#fff!important;display:flex;flex-direction:column;justify-content:center;min-height:250px}
.review-overall-card .review-stat-label,.review-distribution-card .review-stat-label,.review-attention-card .review-stat-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:#64748b;font-weight:850}
.review-overall-score{font-size:58px;line-height:1;font-weight:900;letter-spacing:-.04em;margin:18px 0 8px;color:#0f172a}
.review-overall-score span{color:#eab308;font-size:.72em}
.review-overall-meta{font-size:15px;color:#64748b;margin-bottom:18px}.review-overall-meta b{color:#0f172a}
.review-platform-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:9px;margin-top:auto}
.review-platform-summary-card{border:1px solid #e2e8f0;border-radius:10px;padding:11px 12px;display:grid;gap:3px;background:#f8fafc}
.review-platform-summary-card span{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:800}
.review-platform-summary-card b{font-size:20px;color:#0f172a}
.review-platform-summary-card small{font-size:9px;color:#64748b}
.review-platform-summary-card.airbnb{border-left:4px solid #ff385c}
.review-platform-summary-card.vrbo{border-left:4px solid #2563eb}
.review-platform-summary-card.other{border-left:4px solid #64748b}
.review-attention-card{display:flex;flex-direction:column;justify-content:center}.review-attention-card>b{font-size:36px;margin:10px 0}.review-attention-divider{height:1px;background:#e2e8f0;margin:15px 0}
.review-distribution-card{display:flex;flex-direction:column;justify-content:center}
.review-property-grid-v2{grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:12px}
.review-property-grid-v2 .review-property-card-v2{display:block!important;padding:15px!important;text-align:left!important}
.property-review-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}
.property-review-head>div{display:grid;gap:3px}.property-review-head>div>b{font-size:15px;line-height:1.25}.property-review-head>div>span{font-size:9px;color:#64748b}
.property-review-head>strong{font-size:25px!important;white-space:nowrap;color:#0f172a}.property-review-head>strong span{color:#eab308}
.property-platform-breakdown{display:grid;gap:6px;margin-top:13px;padding-top:11px;border-top:1px solid #edf0f3}
.property-platform-row{display:grid;grid-template-columns:minmax(0,1fr) auto 34px;gap:8px;align-items:center;padding:7px 9px;border-radius:7px;background:#f8fafc;border-left:3px solid #64748b}
.property-platform-row.airbnb{border-left-color:#ff385c}.property-platform-row.vrbo{border-left-color:#2563eb}
.property-platform-row span{font-size:10px!important;font-weight:750;color:#334155!important}.property-platform-row b{font-size:13px}.property-platform-row small{text-align:right;color:#64748b!important}
.property-platform-breakdown.empty{font-size:9px;color:#64748b}
.property-review-foot{display:flex;justify-content:space-between;gap:10px;margin-top:10px}.property-review-foot small{font-size:9px!important}.good-text{color:#15803d!important}
@media(max-width:1000px){.review-summary-v3{grid-template-columns:1fr 1fr}.review-overall-card{grid-column:1/-1}.review-property-grid-v2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}}
@media(max-width:650px){.review-summary-v3{grid-template-columns:1fr}.review-overall-card{grid-column:auto;min-height:auto}.review-overall-score{font-size:48px}.review-property-grid-v2{grid-template-columns:1fr}.review-platform-summary{grid-template-columns:1fr 1fr}}


/* V11.14 — Cleaner Properties page */
.properties-page{display:grid;gap:14px}
.properties-page-head{align-items:flex-start}
.property-page-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.property-page-toolbar{display:grid;grid-template-columns:minmax(300px,1fr) 220px auto;gap:14px;align-items:end}
.property-page-toolbar .field{margin:0}
.property-select-all{height:42px;display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted);white-space:nowrap}
.property-bulk-toolbar-clean{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}
.property-bulk-toolbar-clean>div:first-child{display:grid;gap:2px}.property-bulk-toolbar-clean span{font-size:9px;color:var(--muted)}
.property-page-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:14px;align-items:start}
.property-card-clean{padding:0!important;overflow:hidden;border-left:0!important;border-top:5px solid var(--property-color);display:flex;flex-direction:column;min-width:0}
.property-card-media{height:175px;background:#eef2f6;position:relative;overflow:hidden}
.property-card-media>img{width:100%;height:100%;object-fit:cover}
.property-card-placeholder{height:100%;display:grid;place-items:center;align-content:center;gap:9px;color:#64748b;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.property-color-dot.large{width:22px;height:22px;margin:0}
.property-card-select{position:absolute;top:11px;left:11px;width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:rgba(255,255,255,.94);box-shadow:0 2px 8px rgba(15,23,42,.12);cursor:pointer}
.property-card-select input{margin:0}
.property-card-badges{position:absolute;top:10px;right:10px;display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}
.property-card-badges .pill{box-shadow:0 1px 5px rgba(15,23,42,.08)}
.property-card-body{padding:16px;display:grid;gap:14px}
.property-card-title{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start}
.property-card-title .property-color-dot{margin-top:5px}
.property-card-title h3{font-size:17px;line-height:1.22;margin:0}
.property-card-title p{font-size:10px;color:var(--muted);margin:4px 0 0;line-height:1.35}
.property-card-meta{display:grid;grid-template-columns:1.35fr 1fr;gap:10px;padding:10px 0;border-top:1px solid #edf0f3;border-bottom:1px solid #edf0f3}
.property-card-meta>div{display:grid;gap:2px;min-width:0}
.property-card-meta span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:#94a3b8;font-weight:850}
.property-card-meta b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.property-card-meta small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.property-primary-actions{display:flex;gap:7px;flex-wrap:wrap}
.property-primary-actions .btn{flex:1 1 auto;min-width:90px}
.property-management-actions{display:flex;justify-content:flex-end;gap:14px;padding-top:2px}
.property-quiet-action{border:0;background:transparent;padding:3px 0;font:inherit;font-size:9px;color:#64748b;cursor:pointer;text-decoration:none}
.property-quiet-action:hover{color:#334155;text-decoration:underline}
.property-quiet-action.delete{color:#b45353}
.property-quiet-action.delete:hover{color:#991b1b}
.btn.subtle-danger{background:#fff7f7;color:#a33a3a;border-color:#f1caca}
.btn.subtle-danger:hover{background:#feecec;border-color:#eab0b0;filter:none}
@media(min-width:1800px){.property-page-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}}
@media(max-width:850px){.property-page-toolbar{grid-template-columns:1fr}.property-select-all{height:auto}.property-page-grid{grid-template-columns:1fr}}
@media(max-width:520px){.property-page-metrics{grid-template-columns:1fr 1fr}.property-card-meta{grid-template-columns:1fr}.property-primary-actions .btn{flex:1 1 45%}.property-management-actions{justify-content:space-between}}


/* V11.15 — Turnover Detail Hub */
.turnover-detail-page{display:grid;gap:14px}
.turnover-detail-head{padding:16px 18px;border:1px solid var(--line);border-top:5px solid var(--property-color);border-radius:11px;background:#fff}
.turnover-detail-head h2{margin:10px 0 2px}
.turnover-detail-hero{height:220px;border-radius:12px;overflow:hidden;background:#eef2f6}.turnover-detail-hero img{width:100%;height:100%;object-fit:cover}
.turnover-detail-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}
.turnover-progress{height:9px;background:#e5e7eb;border-radius:99px;overflow:hidden;margin-top:12px}.turnover-progress i{display:block;height:100%;background:#15803d;border-radius:99px}
.turnover-schedule-card{border-left:5px solid #2563eb}
.turnover-task-list{display:grid}.turnover-task-row{width:100%;border:0;border-top:1px solid #edf0f3;background:transparent;padding:11px 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;text-align:left;font:inherit;cursor:pointer}.turnover-task-row:hover{background:#fafbfd}.turnover-task-row>div{display:grid;gap:3px}.turnover-task-row span{font-size:9px;color:var(--muted)}
.booking-actions .btn:first-child{font-weight:800}
@media(max-width:850px){.turnover-detail-grid{grid-template-columns:1fr}.turnover-detail-hero{height:180px}}


/* V11.16 — Save feedback + login keyboard UX */
.btn.action-working{opacity:.72;cursor:wait}
.btn.action-saved{background:#15803d!important;border-color:#15803d!important;color:#fff!important}
.save-confirmation-toast{position:fixed;right:24px;bottom:24px;z-index:9999;padding:11px 15px;border-radius:10px;background:#166534;color:#fff;font-weight:800;font-size:11px;box-shadow:0 10px 30px rgba(15,23,42,.22);opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .18s ease,transform .18s ease}
.save-confirmation-toast.show{opacity:1;transform:translateY(0)}
@media(max-width:600px){.save-confirmation-toast{left:14px;right:14px;bottom:18px;text-align:center}}


/* V11.17 — Universal click feedback + deterministic page scroll */
button,
.btn,
.text-btn,
.menu-card,
[role="button"]{
  -webkit-tap-highlight-color:transparent;
}
button:not(:disabled),
.btn:not([aria-disabled="true"]),
.text-btn,
.menu-card,
[role="button"]{
  transition:
    transform .10s ease,
    box-shadow .14s ease,
    filter .14s ease,
    background-color .14s ease,
    border-color .14s ease,
    opacity .14s ease;
}
button:not(:disabled):active,
.btn:not([aria-disabled="true"]):active,
.text-btn:active,
.menu-card:active,
[role="button"]:active{
  transform:scale(.975);
}
.ui-activated{
  animation:jaxbnbButtonAcknowledge .38s ease-out!important;
}
@keyframes jaxbnbButtonAcknowledge{
  0%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,.24)}
  35%{transform:scale(.975);box-shadow:0 0 0 4px rgba(37,99,235,.12)}
  100%{transform:scale(1);box-shadow:0 0 0 0 rgba(37,99,235,0)}
}
.ui-action-indicator{
  position:fixed;
  top:0;
  left:0;
  right:0;
  height:3px;
  z-index:10000;
  pointer-events:none;
  opacity:0;
  overflow:hidden;
  background:transparent;
}
.ui-action-indicator i{
  display:block;
  width:34%;
  height:100%;
  background:#2563eb;
  transform:translateX(-110%);
}
.ui-action-indicator.show{
  opacity:1;
}
.ui-action-indicator.show i{
  animation:jaxbnbActionBar .52s ease-out forwards;
}
@keyframes jaxbnbActionBar{
  0%{transform:translateX(-110%);width:28%}
  55%{transform:translateX(155%);width:50%}
  100%{transform:translateX(350%);width:34%}
}
button:disabled,
.btn[aria-disabled="true"]{
  cursor:not-allowed;
}
@media(prefers-reduced-motion:reduce){
  button,.btn,.text-btn,.menu-card,[role="button"]{transition:none!important}
  .ui-activated,.ui-action-indicator.show i{animation:none!important}
}


/* V11.18 — Prevent desktop horizontal overscroll from becoming browser Back */
@media (hover:hover) and (pointer:fine){
  html,
  body,
  #app{
    overscroll-behavior-x:none;
  }

  .ribbon-viewport,
  .ribbon-scroll,
  .owner-lead-pipeline,
  .recruit-pipeline,
  .blog-pipeline,
  .booking-table-wrap,
  .table-wrap,
  .permission-table-wrap,
  .nav,
  .desktop-nav-scroll,
  .card:has(table){
    overscroll-behavior-x:contain;
  }
}


/* V11.19 — reliable turnover context */
.turnover-context-note{font-size:9px;color:var(--muted)}


/* V11.20 — Owner damage line items + editable claims */
.damage-cost-total{display:grid;text-align:right}.damage-cost-total span,.damage-cost-total small{font-size:9px;color:var(--muted)}.damage-cost-total b{font-size:22px}
.damage-line-items{display:grid;gap:10px;margin:12px 0}
.damage-line-item{border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#fff}
.damage-line-item-main{display:grid;grid-template-columns:110px minmax(190px,1fr) 55px 120px 120px auto;gap:10px;align-items:center}
.damage-line-type{display:inline-flex;width:max-content;max-width:100%;padding:4px 7px;border-radius:99px;background:#eef2f7;color:#475569;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.damage-line-name{display:grid}.damage-line-name span{font-size:9px;color:var(--muted);margin-top:2px}
.damage-line-qty,.damage-line-cost,.damage-line-total{display:grid}.damage-line-qty span,.damage-line-cost span,.damage-line-total span{font-size:8px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.damage-line-evidence{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid #edf0f3}.damage-line-evidence>div{display:grid}.damage-line-evidence span{font-size:8px;color:var(--muted)}
.damage-line-photo-strip{display:flex;gap:6px;margin-top:9px;overflow-x:auto}.damage-line-photo-strip img{width:72px;height:54px;object-fit:cover;border-radius:6px;border:1px solid #e2e8f0}
.damage-add-row{display:grid;grid-template-columns:145px minmax(180px,1.2fr) minmax(180px,1fr) 70px 145px 130px auto;gap:9px;align-items:end;padding:12px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.damage-add-row .field{margin:0}.damage-add-row-button{height:42px}
.damage-evidence-upload{display:grid;grid-template-columns:minmax(230px,1fr) minmax(180px,.8fr) minmax(180px,.8fr) auto;gap:10px;align-items:end;margin-top:12px}.damage-evidence-upload .field{margin:0}
.damage-empty-items{padding:18px;text-align:center;border:1px dashed #cbd5e1;border-radius:9px;color:var(--muted);font-size:10px}
.public-damage-items{display:grid;gap:7px}.public-damage-row{display:grid;grid-template-columns:minmax(0,1fr) 70px 130px;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:8px;padding:10px}.public-damage-row>div{display:grid}.public-damage-row small,.public-damage-row>div>span:not(.damage-line-type){font-size:8px;color:var(--muted)}
.claim-item-list{display:grid;gap:10px}.claim-item-card{border:1px solid #e2e8f0;border-radius:10px;padding:12px;background:#fff}.claim-item-summary{display:grid;grid-template-columns:minmax(180px,1fr) 60px 90px 100px auto;gap:10px;align-items:center}.claim-item-summary>div{display:grid}.claim-item-summary span{font-size:8px;color:var(--muted)}.claim-item-summary .row{display:flex}
.claim-item-editor{margin-top:12px;padding:12px;background:#f8fafc;border-radius:9px;border:1px solid #e2e8f0}.claim-item-evidence{display:grid;grid-template-columns:minmax(130px,1fr) minmax(220px,1fr) auto;gap:10px;align-items:center;margin-top:10px;padding-top:10px;border-top:1px solid #edf0f3}.claim-item-evidence>div{display:grid}.claim-item-evidence span{font-size:8px;color:var(--muted)}
@media(max-width:1000px){.damage-line-item-main{grid-template-columns:100px minmax(180px,1fr) 55px 100px}.damage-line-total{display:none}.damage-add-row{grid-template-columns:1fr 1fr 1fr}.damage-evidence-upload{grid-template-columns:1fr 1fr}.claim-item-summary{grid-template-columns:minmax(180px,1fr) 55px 85px 95px}.claim-item-summary>.row{grid-column:1/-1}}
@media(max-width:650px){.damage-line-item-main{grid-template-columns:1fr 1fr}.damage-line-name{grid-column:1/-1}.damage-line-evidence,.damage-evidence-upload,.claim-item-evidence{grid-template-columns:1fr}.damage-add-row{grid-template-columns:1fr}.public-damage-row{grid-template-columns:1fr 1fr}.public-damage-row>div:first-child{grid-column:1/-1}.claim-item-summary{grid-template-columns:1fr 1fr}.claim-item-summary>div:first-child{grid-column:1/-1}}


/* V11.21 — Owner Portal invitations */
.owner-invite-login-note{display:grid;gap:3px;margin:14px 0 4px;padding:10px 12px;border:1px solid #dbe3ec;border-radius:9px;background:#f8fafc;text-align:left}
.owner-invite-login-note b{font-size:10px}.owner-invite-login-note span{font-size:9px;color:var(--muted);line-height:1.45}
.owner-invite-form{max-width:1050px;margin:0 auto}
.owner-invite-list{display:grid;gap:7px;margin-top:12px}
.owner-invite-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid #e2e8f0;border-radius:9px;background:#fff}
.owner-invite-row>div{display:grid;gap:2px}.owner-invite-row span{font-size:9px;color:var(--muted)}
.property-quiet-action.owner-invite-link{color:#2563eb}
.property-quiet-action.owner-invite-link:hover{color:#1d4ed8}
@media(max-width:600px){.owner-invite-row{grid-template-columns:1fr}.owner-invite-row>.pill{width:max-content}}


/* V11.22 — Owner communication exclusions + automatic comp provider options */
.owner-recipient-table-wrap{overflow:auto}.owner-recipient-table{min-width:980px}.owner-recipient-excluded{opacity:.72;background:#fafafa}.owner-comm-pref-card{max-width:760px;margin:0 auto}
.comp-auto-section{border-left:5px solid #2563eb}.comp-provider-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}.comp-provider-card{border:1px solid #e2e8f0;border-radius:10px;padding:12px;display:grid;gap:12px;background:#fff}.comp-provider-card>div{display:grid;gap:4px}.comp-provider-card span{font-size:9px;color:var(--muted);line-height:1.5}.comp-provider-card.comp-provider-featured{border-width:2px;box-shadow:0 8px 24px rgba(15,23,42,.06)}.comp-provider-card.comp-provider-featured b{font-size:12px}.comp-provider-setup{margin-top:12px;padding:12px;border-radius:10px;background:#f8fafc;border:1px solid #dbe3ec}.comp-provider-setup p{margin:4px 0 10px;color:var(--muted);font-size:10px}
@media(max-width:900px){.comp-provider-grid{grid-template-columns:1fr}}


/* V11.23 — Live OwnerRez Guest Messaging */
.ownerrez-message-status{border-left:5px solid #d97706;margin-bottom:14px}.ownerrez-message-status.connected{border-left-color:#15803d}.ownerrez-message-status h3{margin:0}.ownerrez-message-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.ownerrez-message-meta span{display:grid;padding:8px 10px;background:#f8fafc;border-radius:8px;font-size:9px;color:var(--muted)}.ownerrez-message-meta b{color:#111827;font-size:8px;text-transform:uppercase;letter-spacing:.04em}
.ownerrez-messaging-setup{margin-top:12px}.ownerrez-endpoint-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.ownerrez-endpoint-grid>div{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center}.ownerrez-endpoint-grid span{grid-column:1/-1;font-size:9px;font-weight:800}.ownerrez-endpoint-grid input{font-size:9px}
.message-thread.unread{background:#eff6ff}.message-thread.active{box-shadow:inset 4px 0 #2563eb;background:#f8fafc}.message-thread-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:10px;border-bottom:1px solid #edf0f3}.message-thread-head h3{margin:0}
.message-history{max-height:55vh;overflow:auto;padding:14px 4px;scroll-behavior:smooth}.message-bubble{max-width:82%;padding:10px 12px;border-radius:12px;background:#f1f5f9;margin:8px 0}.message-bubble.outbound{margin-left:auto;background:#111827;color:#fff}.message-bubble span,.message-bubble small{font-size:8px;opacity:.72}.message-bubble p{margin:5px 0;white-space:pre-wrap}.message-bubble.removed{opacity:.65}.message-attachments{display:flex;gap:6px;flex-wrap:wrap}.message-attachments a{font-size:8px;text-decoration:underline;color:inherit}
.message-reply-box{border-top:1px solid #e2e8f0;padding-top:12px}.message-reply-box textarea{width:100%;resize:vertical}.message-empty-state{display:grid;gap:5px;padding:22px;text-align:center;color:var(--muted)}.message-empty-state b{color:#334155}
@media(max-width:900px){.ownerrez-endpoint-grid,.ownerrez-message-meta{grid-template-columns:1fr}.message-history{max-height:45vh}.message-bubble{max-width:92%}}


/* V11.24 — Gallery reliability, photo lightbox, cleaner priority, mobile More */
.photo-expand-button{display:block;position:relative;width:100%;border:0;padding:0;background:#0f172a;cursor:zoom-in;overflow:hidden;border-radius:inherit;text-align:left}
.photo-expand-button img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .18s ease}
.photo-expand-button:hover img{transform:scale(1.02)}
.photo-expand-button>span{position:absolute;right:7px;bottom:7px;padding:4px 7px;border-radius:99px;background:rgba(15,23,42,.78);color:#fff;font-size:8px;font-weight:800;opacity:0;transition:opacity .14s ease}
.photo-expand-button:hover>span{opacity:1}
.photo-lightbox{position:fixed;inset:0;z-index:20000;background:rgba(2,6,23,.92);display:none;align-items:center;justify-content:center;padding:22px}
.photo-lightbox.show{display:flex}.photo-lightbox-inner{max-width:min(96vw,1500px);max-height:92vh;display:grid;gap:8px}.photo-lightbox-inner img{max-width:100%;max-height:84vh;object-fit:contain;border-radius:8px;background:#000}.photo-lightbox-caption{color:#e2e8f0;text-align:center;font-size:10px}
.photo-lightbox-close{position:fixed;right:20px;top:15px;width:42px;height:42px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}.lightbox-open{overflow:hidden}
.guest-gallery-control{border-left:5px solid #2563eb}.public-gallery-thumb .photo-expand-button{aspect-ratio:4/3}

.cleaner-pinned-section{position:relative;border-radius:14px;padding:14px;background:#f8fafc;border:1px solid #dbe4ee}
.cleaner-pinned-section:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#2563eb;border-radius:14px 0 0 14px}
.cleaner-priority-metric{box-shadow:inset 0 0 0 2px rgba(37,99,235,.16)}
.same-day-metric{box-shadow:inset 0 0 0 2px rgba(217,119,6,.24);background:#fffaf0}
.pill.same-day-turn{background:#ffedd5;color:#9a3412;border:1px solid #fdba74;font-weight:900;letter-spacing:.03em}

.more-page{max-width:none}.more-page-head{margin-bottom:10px}.more-groups{display:grid;gap:18px}.more-group>h3{margin:0 0 8px;font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:#64748b}
.more-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px}
.more-menu-item{display:grid;grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;align-items:center;width:100%;padding:11px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;text-align:left;cursor:pointer}
.more-menu-item:hover{background:#f8fafc;border-color:#cbd5e1}.more-menu-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:9px;background:#f1f5f9;font-size:16px;color:#334155}
.more-menu-copy{display:grid;gap:2px}.more-menu-copy b{font-size:10px}.more-menu-copy small{font-size:8px;color:#64748b;line-height:1.35}.more-menu-arrow{font-size:22px;color:#94a3b8}
@media(max-width:700px){
  .photo-expand-button>span{opacity:1}
  .photo-lightbox{padding:8px}.photo-lightbox-close{right:10px;top:10px}
  .more-page{padding-bottom:12px}.more-groups{gap:15px}.more-menu-grid{grid-template-columns:1fr;gap:5px}
  .more-group{background:#f8fafc;border:1px solid #edf1f5;border-radius:12px;padding:9px}
  .more-group>h3{padding:2px 4px 5px;margin:0}
  .more-menu-item{border:0;border-bottom:1px solid #edf0f3;border-radius:0;padding:9px 6px;background:transparent}
  .more-menu-item:last-child{border-bottom:0}.more-menu-icon{width:34px;height:34px;background:#fff;border:1px solid #e2e8f0}
  .cleaner-pinned-section{padding:11px}
}


/* V11.28 — Phone Guest Messaging + More readability */
.mobile-message-toolbar{display:none}
.message-thread-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.message-thread-property{margin-top:4px;font-size:11px;color:#475569;font-weight:650}
.message-thread-bottom{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:7px;color:#64748b;font-size:9px}
.message-channel-pill{display:inline-flex;padding:3px 6px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:8px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}
.message-thread-title-row{display:flex;gap:10px;align-items:center}.message-thread-subtitle{font-size:9px;color:var(--muted);margin-top:3px}
.message-mobile-back{display:none;border:0;background:#f1f5f9;border-radius:10px;width:38px;height:38px;font-size:28px;line-height:1;color:#111827;cursor:pointer}
.message-reply-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px}.message-send-note{font-size:9px;color:var(--muted)}
.message-thread-loading{min-height:260px;display:grid;place-items:center;align-content:center;gap:10px;color:#64748b}.message-thread-loading span{width:24px;height:24px;border-radius:50%;border:3px solid #e2e8f0;border-top-color:#334155;animation:msgspin .7s linear infinite}
@keyframes msgspin{to{transform:rotate(360deg)}}

@media(max-width:900px){
  .mobile-message-toolbar{display:block;margin-bottom:8px}
  .mobile-message-toolbar .field{margin:0}.mobile-message-toolbar label{font-size:12px}.mobile-message-toolbar input{font-size:16px;min-height:46px}
  .message-layout{display:block!important}
  .message-thread-list{max-height:none!important;padding:0;border-radius:12px;overflow:hidden}
  .message-thread{min-height:82px;padding:13px 14px;background:#fff}
  .message-thread-top b{font-size:16px;line-height:1.2}
  .message-thread-property{font-size:13px;margin-top:5px}
  .message-thread-bottom{font-size:11px;margin-top:8px}
  .message-channel-pill{font-size:10px;padding:4px 7px}
  .message-thread.unread{box-shadow:inset 4px 0 #2563eb;background:#f8fbff}
  .message-pane{display:none;min-height:calc(100dvh - 150px);padding:12px;margin:0;border-radius:12px}
  .message-layout.mobile-thread-open .message-thread-list{display:none}
  .message-layout.mobile-thread-open .message-pane{display:block}
  .message-mobile-back{display:inline-grid;place-items:center;flex:0 0 38px}
  .message-thread-head{position:sticky;top:0;z-index:3;background:#fff;margin:-12px -12px 0;padding:10px 12px;border-bottom:1px solid #e2e8f0}
  .message-thread-head h3{font-size:18px;line-height:1.2}
  .message-thread-subtitle{font-size:11px;line-height:1.35}
  .message-refresh-btn{font-size:11px;padding:8px 10px}
  .message-history{max-height:none!important;min-height:calc(100dvh - 330px);padding:12px 2px 120px;margin:0;overflow:visible}
  .message-bubble{max-width:88%;padding:11px 13px;border-radius:15px;margin:8px 0;font-size:15px;line-height:1.4}
  .message-bubble p{font-size:15px;line-height:1.42;margin:5px 0}
  .message-bubble span,.message-bubble small{font-size:10px}
  .message-reply-box{position:sticky;bottom:76px;z-index:5;background:#fff;margin:0 -12px -12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #dbe3ec;box-shadow:0 -6px 18px rgba(15,23,42,.06)}
  .message-reply-box textarea{font-size:16px;line-height:1.4;min-height:82px;max-height:180px;border-radius:12px;padding:11px}
  .message-reply-actions{margin-top:8px}.message-send-note{font-size:11px}.message-send-btn{min-width:110px;min-height:44px;font-size:14px}
  .message-empty-state{font-size:14px}.message-empty-state b{font-size:16px}
}

@media(max-width:700px){
  .more-page-head h2{font-size:24px;margin-bottom:4px}.more-page-head p{font-size:14px;line-height:1.4}
  .more-groups{gap:18px}
  .more-group{padding:11px}
  .more-group>h3{font-size:13px;line-height:1.2;padding:3px 5px 8px;letter-spacing:.055em}
  .more-menu-item{grid-template-columns:46px minmax(0,1fr) 22px;gap:12px;padding:12px 7px;min-height:68px}
  .more-menu-icon{width:44px;height:44px;font-size:20px;border-radius:11px}
  .more-menu-copy{gap:4px}
  .more-menu-copy b{font-size:16px!important;line-height:1.2}
  .more-menu-copy small{font-size:12px!important;line-height:1.38}
  .more-menu-arrow{font-size:26px}
}


/* V11.29 — Correct OwnerRez sender + latest-message display */
.message-thread-preview{margin-top:7px;font-size:10px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-thread-preview b{font-size:9px}.message-thread-preview b.outbound{color:#1d4ed8}.message-thread-preview b.inbound{color:#15803d}
.message-thread-preview span{font-size:10px;color:#64748b}
.message-bubble-who{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:4px}
.message-bubble-who b{font-size:10px}.message-bubble-who span{font-size:8px;text-transform:uppercase;letter-spacing:.04em;opacity:.65}
.message-bubble.inbound .message-bubble-who b{color:#166534}
.message-bubble.outbound .message-bubble-who b{color:#fff}
@media(max-width:900px){
  .message-thread-preview{font-size:13px;margin-top:8px}.message-thread-preview b{font-size:12px}.message-thread-preview span{font-size:13px}
  .message-bubble-who b{font-size:12px}.message-bubble-who span{font-size:9px}
}


/* V11.30 — Inline image previews in Guest Messages */
.message-attachments{display:grid;gap:8px;margin-top:8px}
.message-image-attachment{display:grid;gap:5px;justify-items:start;max-width:min(320px,100%);padding:0;border:0;background:transparent;cursor:pointer;text-align:left}
.message-image-attachment img{display:block;width:100%;max-width:320px;max-height:260px;object-fit:cover;border-radius:12px;border:1px solid rgba(148,163,184,.28);background:#e2e8f0}
.message-image-attachment span{font-size:9px;color:#64748b}
.message-file-attachment{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border-radius:10px;border:1px solid rgba(148,163,184,.35);background:#f8fafc;font-size:10px;color:#1d4ed8;text-decoration:none;max-width:max-content}
.message-bubble.outbound .message-file-attachment{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#e0ecff}
.message-bubble.outbound .message-image-attachment span{color:rgba(255,255,255,.78)}
.message-bubble.outbound .message-image-attachment img{border-color:rgba(255,255,255,.18)}
@media(max-width:900px){
  .message-image-attachment{max-width:100%}
  .message-image-attachment img{max-width:100%;max-height:280px}
  .message-image-attachment span{font-size:11px}
  .message-file-attachment{font-size:12px}
}


/* V11.31 — OwnerRez Core Sync + corrected analytics */
.analytics-source-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 14px}
.analytics-source-strip>div{display:grid;gap:3px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc}
.analytics-source-strip span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;font-weight:800}.analytics-source-strip b{font-size:18px}
.analytics-primary-metrics{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin-bottom:16px}.analytics-big-metric small{display:block;margin-top:5px;font-size:9px;color:#64748b;font-weight:500}
.analytics-section-title{margin:22px 0 9px}.analytics-secondary-metrics{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.analytics-property-performance-list{display:grid;margin-top:10px}.analytics-property-performance-row{display:grid;grid-template-columns:minmax(220px,1.5fr) repeat(3,minmax(90px,.55fr));gap:12px;align-items:center;width:100%;padding:10px 4px;border:0;border-top:1px solid #edf0f3;background:transparent;text-align:left;cursor:pointer;color:inherit}
.analytics-property-performance-row:hover{background:#f8fafc}.analytics-property-performance-row>div{display:grid;gap:2px}.analytics-property-performance-row span{font-size:9px;color:#64748b}.analytics-property-performance-row b{font-size:11px}

.ownerrez-core-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.ownerrez-core-action{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;align-items:center;padding:14px;border:1px solid #dbe3ec;border-radius:12px;background:#fff;text-align:left;color:#111827;cursor:pointer}
.ownerrez-core-action.primary{border-color:#93c5fd;background:#eff6ff}.ownerrez-core-action:hover{border-color:#94a3b8}.ownerrez-core-action b{display:block;font-size:12px}.ownerrez-core-action small{display:block;font-size:9px;line-height:1.4;color:#64748b;margin-top:3px}.ownerrez-core-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#f1f5f9;font-size:20px}
.ownerrez-core-status{border-left:5px solid #2563eb}.ownerrez-core-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}
.ownerrez-core-metrics>div{display:grid;gap:3px;padding:9px;background:#f8fafc;border-radius:9px}.ownerrez-core-metrics span{font-size:8px;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.ownerrez-core-metrics b{font-size:17px}.ownerrez-core-metrics small{font-size:8px;color:#64748b}
.ownerrez-webhook-card{margin-top:14px}.ownerrez-fallback-tools{margin-top:14px}.ownerrez-fallback-tools summary{cursor:pointer;display:flex;justify-content:space-between;gap:12px}.ownerrez-fallback-tools summary span{font-size:9px;color:#64748b}

.calendar-block-bar{background:#64748b!important;color:#fff!important;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 7px,rgba(255,255,255,0) 7px 14px)!important}
.calendar-owner-bar{background:#7c3aed!important;color:#fff!important}
@media(max-width:900px){
  .analytics-source-strip{grid-template-columns:1fr 1fr}.analytics-property-performance-row{grid-template-columns:minmax(0,1fr) 70px}.analytics-property-performance-row>div:nth-child(3),.analytics-property-performance-row>div:nth-child(4){display:none}
  .ownerrez-core-actions{grid-template-columns:1fr}.ownerrez-core-action b{font-size:15px}.ownerrez-core-action small{font-size:12px}.ownerrez-core-metrics{grid-template-columns:1fr 1fr}.ownerrez-core-metrics span{font-size:10px}.ownerrez-core-metrics small{font-size:10px}
}


/* V11.33 — Central OwnerRez Integration */
.integration-section{margin-top:18px}.integration-section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:8px}.integration-section-head h3{margin:0}.integration-section-head p{margin:3px 0 0}
.ownerrez-central-connection>.ownerrez-message-status{border:0;box-shadow:none;padding:0;margin:0 0 16px}
.ownerrez-central-connection>.ownerrez-messaging-setup{border-top:1px solid #e2e8f0;padding-top:15px}
.integration-module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.integration-module-grid>.card{margin:0}.integration-module-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.integration-endpoints{margin-top:12px}.ownerrez-message-status.compact{margin-bottom:0}
.view-messages .ownerrez-message-status.compact{padding:12px 14px}.view-messages .ownerrez-message-status.compact h3{font-size:14px}.view-messages .ownerrez-message-status.compact p{font-size:11px;margin:4px 0}
@media(max-width:900px){
  .integration-module-grid{grid-template-columns:1fr}.integration-section{margin-top:14px}
  .ownerrez-central-connection{padding:12px}.ownerrez-central-connection .grid{grid-template-columns:1fr}
  .integration-module-actions .btn{flex:1 1 100%}
}


/* V11.34 — property color consistency + interactive analytics trends */
.performance-property-card{position:relative;border-left:6px solid var(--property-color,#2563eb)!important}
.performance-property-card:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--property-color,#2563eb);opacity:.22}
.property-performance-detail .performance-detail-head{border-left:6px solid var(--property-color,#2563eb);padding-left:12px}
.performance-detail-head h2{display:flex;align-items:center;gap:8px}.property-analytics-color-dot{width:13px;height:13px;border-radius:50%;background:var(--property-color,#2563eb);display:inline-block;flex:0 0 13px}
.analytics-property-performance-row{border-left:4px solid var(--property-color,#2563eb);padding-left:10px}

.analytics-inline-control,.analytics-trend-controls label{display:grid;gap:3px}.analytics-inline-control span,.analytics-trend-controls label span{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.analytics-inline-loading{padding:8px 11px;border-radius:9px;background:#eff6ff;color:#1d4ed8;font-size:10px;margin-bottom:8px}
.analytics-trend-card{margin:16px 0}.analytics-trend-head{align-items:flex-end}.analytics-trend-controls{display:flex;gap:9px;align-items:end}.analytics-trend-controls select{min-width:150px}
.analytics-trend-body{min-height:300px}.analytics-chart-loading,.analytics-chart-empty{min-height:270px;display:grid;place-items:center;color:#64748b;font-size:12px}
.analytics-chart-summary{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:13px 4px 0}.analytics-chart-summary>div{display:grid;gap:2px}.analytics-chart-summary span{font-size:10px;color:#64748b}.analytics-chart-summary b{font-size:22px}
.analytics-chart-scroll{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.analytics-line-chart{display:block;width:100%;min-width:720px;height:auto;margin-top:2px;overflow:visible}
.analytics-chart-grid{stroke:#e2e8f0;stroke-width:1}.analytics-chart-axis{fill:#64748b;font-size:11px}.analytics-chart-line{fill:none;stroke:#111827;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.analytics-chart-point circle{fill:#fff;stroke:#111827;stroke-width:3}.analytics-chart-point:hover circle{r:7}
@media(max-width:900px){
  .analytics-page-head{align-items:flex-start}.analytics-page-head>.row{width:100%;flex-wrap:wrap}.analytics-inline-control{width:100%}.analytics-inline-control select{width:100%;font-size:16px}
  .analytics-trend-head{align-items:flex-start;gap:12px}.analytics-trend-controls{width:100%;display:grid;grid-template-columns:1fr 1fr}.analytics-trend-controls select{width:100%;min-width:0;font-size:16px}
  .analytics-trend-body{min-height:250px}.analytics-line-chart{min-width:680px}.analytics-chart-summary{align-items:flex-start;flex-direction:column;gap:4px}
}
@media(max-width:480px){
  .analytics-trend-controls{grid-template-columns:1fr}
}


/* V11.35 — cleaner desktop Upcoming Turnover tiles; mobile card layout stays intact */
.turnover-date-desktop{display:none}

@media(min-width:1024px){
  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(auto-fit,minmax(420px,1fr))!important;
    gap:12px!important;
  }

  .view-today #myWorkSection .dashboard-turnover-card{
    min-height:0!important;
    padding:13px 14px!important;
    border-left-width:5px;
    border-radius:11px;
    row-gap:4px;
  }

  .view-today #myWorkSection .dashboard-turnover-card:has(> .turnover-hero){
    display:grid!important;
    grid-template-columns:112px minmax(0,1fr);
    grid-auto-rows:auto;
    column-gap:14px;
    align-items:start;
  }

  .view-today #myWorkSection .dashboard-turnover-card:has(> .turnover-hero) > .turnover-hero{
    grid-column:1;
    grid-row:1 / span 6;
    width:112px!important;
    height:112px!important;
    margin:0!important;
    border-radius:9px!important;
    align-self:start;
  }

  .view-today #myWorkSection .dashboard-turnover-card:has(> .turnover-hero) > :not(.turnover-hero){
    grid-column:2;
    min-width:0;
  }

  .view-today #myWorkSection .dashboard-turnover-card > .turnover-assignment-row,
  .view-today #myWorkSection .dashboard-turnover-card > .turnover-card-actions{
    grid-column:1 / -1!important;
  }

  .view-today #myWorkSection .turnover-card-head{
    gap:7px;
    align-items:flex-start;
    margin:0;
  }
  .view-today #myWorkSection .turnover-card-head h3{
    min-width:0;
    margin:0;
    font-size:13px;
    line-height:1.25;
    display:flex;
    align-items:flex-start;
    gap:6px;
  }
  .view-today #myWorkSection .property-color-dot{
    margin-top:3px;
    flex:0 0 auto;
  }
  .view-today #myWorkSection .turnover-statuses{
    gap:4px;
    justify-content:flex-end;
  }
  .view-today #myWorkSection .turnover-statuses .pill{
    font-size:8px;
    padding:3px 6px;
  }

  .view-today #myWorkSection .turnover-guest-link{
    margin-top:2px;
    font-size:12px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    width:100%;
  }
  .view-today #myWorkSection .turnover-date-mobile{display:none}
  .view-today #myWorkSection .turnover-date-desktop{display:inline}
  .view-today #myWorkSection .turnover-date-line{
    font-size:10px;
    line-height:1.2;
    margin:0;
  }
  .view-today #myWorkSection .turnover-meta-line{
    margin:1px 0;
    font-size:10px;
    color:#64748b;
  }
  .view-today #myWorkSection .turnover-meta-line b{
    color:#263244;
  }

  .view-today #myWorkSection .turnover-assignment-row{
    margin-top:8px;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:7px;
    align-items:center;
    padding-top:9px;
    border-top:1px solid #edf0f3;
  }
  .view-today #myWorkSection .turnover-assignment-row select{
    width:100%;
    min-width:0;
    min-height:34px;
    height:34px;
    padding:5px 8px;
    font-size:10px;
  }
  .view-today #myWorkSection .turnover-assignment-row .btn{
    min-height:34px;
    padding:6px 10px;
    font-size:9px;
  }

  .view-today #myWorkSection .turnover-card-actions{
    margin-top:7px!important;
    display:flex;
    gap:6px;
    flex-wrap:wrap;
  }
  .view-today #myWorkSection .turnover-card-actions .btn{
    min-height:32px;
    padding:6px 9px;
    font-size:9px;
    line-height:1.1;
    flex:0 1 auto!important;
  }
  .view-today #myWorkSection .turnover-card-actions .btn:first-child{
    flex:1 1 118px!important;
  }
}

@media(min-width:1900px){
  .view-today #myWorkSection > .grid{
    grid-template-columns:repeat(auto-fit,minmax(430px,1fr))!important;
  }
}


/* V11.36 — rebuilt analytics charts + range-based Property Analytics */
.property-range-caption{display:flex;justify-content:space-between;align-items:end;gap:12px;margin:4px 2px 10px}.property-range-caption b{font-size:13px}.property-range-caption span{font-size:10px;color:#64748b}
.property-analytics-loading{min-height:100px;display:grid;place-items:center;color:#64748b}
.property-detail-range-actions{display:flex;align-items:flex-end;gap:10px;flex-wrap:wrap;justify-content:flex-end}.property-detail-range-actions label{display:grid;gap:3px}.property-detail-range-actions label span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;font-weight:800;color:#64748b}
.property-metric-method{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:13px 0}.property-metric-method>div{display:grid;gap:3px;padding:9px 11px;border-left:3px solid var(--property-color,#2563eb);background:#f8fafc;border-radius:7px}.property-metric-method b{font-size:10px}.property-metric-method span{font-size:9px;line-height:1.4;color:#64748b}
.performance-mini-grid>div small{display:block;margin-top:3px;line-height:1.25}

/* The old fixed SVG trend styles are intentionally superseded by a canvas chart. */
.analytics-canvas-shell{margin-top:8px;border:1px solid #e2e8f0;border-radius:11px;background:#fff;overflow:hidden}
.analytics-canvas-scroll{width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.analytics-canvas-stage{position:relative;min-width:100%}
#analyticsTrendCanvas{display:block;touch-action:pan-x pan-y;cursor:crosshair}
.analytics-canvas-tooltip{position:absolute;z-index:5;width:190px;padding:9px 10px;border-radius:9px;background:rgba(15,23,42,.94);color:#fff;box-shadow:0 6px 18px rgba(15,23,42,.22);pointer-events:none;display:grid;gap:2px;font-size:10px}
.analytics-canvas-tooltip[hidden]{display:none}.analytics-canvas-tooltip b{font-size:11px}.analytics-canvas-tooltip span{font-weight:700}.analytics-canvas-tooltip small{color:#cbd5e1;font-size:9px}
.analytics-chart-summary-copy{display:grid!important;gap:2px!important;text-align:right}
.analytics-chart-month-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(82px,1fr);overflow-x:auto;gap:1px;margin-top:9px;border:1px solid #edf0f3;border-radius:8px}
.analytics-chart-month-strip>div{display:grid;gap:2px;padding:7px 8px;border-right:1px solid #edf0f3;background:#fafbfc;text-align:center}.analytics-chart-month-strip span{font-size:8px;color:#64748b}.analytics-chart-month-strip b{font-size:10px}
.analytics-chart-help{margin-top:7px}
.analytics-trend-body{min-height:0!important}

@media(max-width:900px){
  .property-range-caption{display:grid;gap:2px}.property-performance-toolbar{grid-template-columns:1fr!important}.property-performance-toolbar select,.property-performance-toolbar input{font-size:16px}
  .property-detail-range-actions{width:100%;justify-content:space-between;align-items:end}.property-detail-range-actions label{flex:1}.property-detail-range-actions select{width:100%;font-size:16px}
  .property-metric-method{grid-template-columns:1fr}.property-metric-method b{font-size:12px}.property-metric-method span{font-size:11px}
  .analytics-chart-summary-copy{text-align:left}.analytics-canvas-shell{margin-left:-2px;margin-right:-2px}
}


/* V11.37 — OwnerRez blocked dates are availability items, not guests */
.calendar-block-bar{
  color:#fff!important;
  background:#6b7280!important;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.12) 0 7px,rgba(255,255,255,0) 7px 14px)!important;
  border:1px solid rgba(17,24,39,.18)!important;
}
.calendar-block-bar b{
  letter-spacing:.045em;
  font-weight:900;
}
.calendar-owner-bar{
  background:#7c3aed!important;
  color:#fff!important;
}
.calendar-special-legend{
  display:inline-flex;
  align-items:center;
  gap:5px;
  font-size:9px;
  color:#64748b;
  white-space:nowrap;
}
.calendar-special-legend i{
  width:12px;
  height:12px;
  border-radius:3px;
  display:inline-block;
  margin-left:4px;
}
.calendar-special-legend i.block{
  background:#6b7280;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.2) 0 3px,rgba(255,255,255,0) 3px 6px);
}
.calendar-special-legend i.owner{background:#7c3aed}

@media(max-width:900px){
  .calendar-special-legend{font-size:10px;flex-wrap:wrap}
}

/* V11.38 */
.scan-workstation{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px;align-items:start}
.scan-camera-card,.scan-lookup-card{margin:0}.scan-camera-head{align-items:flex-start}
.scan-camera-stage{position:relative;margin-top:12px;background:#0f172a;border-radius:14px;overflow:hidden;min-height:360px;display:grid;place-items:center}
.scan-camera-stage video{width:100%;height:100%;min-height:360px;max-height:560px;object-fit:cover;background:#0f172a}
.scan-frame{position:absolute;width:min(46%,320px);aspect-ratio:1;border:1px solid rgba(255,255,255,.18);border-radius:18px;pointer-events:none}
.scan-frame i{position:absolute;width:42px;height:42px;border-color:#fff;border-style:solid}
.scan-frame i:nth-child(1){left:-2px;top:-2px;border-width:4px 0 0 4px}.scan-frame i:nth-child(2){right:-2px;top:-2px;border-width:4px 4px 0 0}.scan-frame i:nth-child(3){left:-2px;bottom:-2px;border-width:0 0 4px 4px}.scan-frame i:nth-child(4){right:-2px;bottom:-2px;border-width:0 4px 4px 0}
.scan-camera-hint{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:rgba(15,23,42,.78);color:#fff;border-radius:999px;padding:7px 11px;font-size:10px;white-space:nowrap}
.scan-camera-controls{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:10px;align-items:end;margin-top:11px}.scan-device-field{margin:0!important}.scan-camera-buttons{display:flex;gap:7px}.scan-camera-buttons .btn{min-height:38px}
.scan-lookup-card{display:grid;gap:10px}.scan-result-panel{margin-top:5px}.view-messages .jaxbnb-message-inbox{margin-top:16px}
@media(min-width:1600px){.scan-workstation{grid-template-columns:minmax(0,1.55fr) minmax(360px,.45fr)}.scan-camera-stage,.scan-camera-stage video{min-height:440px}}
@media(max-width:1023px){.scan-workstation{grid-template-columns:1fr}.scan-camera-stage,.scan-camera-stage video{min-height:280px}.scan-camera-stage video{max-height:420px}.scan-camera-controls{grid-template-columns:1fr}.scan-camera-buttons .btn{flex:1}.view-messages .jaxbnb-message-inbox{margin-top:10px}}

/* V11.39 — admin delete controls */
.claim-list-tile,.damage-report-tile{position:relative;padding:0!important;overflow:hidden}
.claim-list-open,.damage-report-tile-open{appearance:none;border:0;background:transparent;color:inherit;text-align:left;width:100%;display:grid;gap:5px;padding:14px;cursor:pointer;font:inherit}
.claim-list-open:hover,.damage-report-tile-open:hover{background:rgba(15,23,42,.025)}
.claim-list-delete,.damage-report-delete{margin:0 12px 10px}
.claim-detail-actions,.damage-report-detail-actions{align-items:center;flex-wrap:wrap}
.btn.danger{background:#b91c1c;color:#fff;border-color:#b91c1c}.btn.danger:hover{background:#991b1b}
@media(max-width:900px){.claim-detail-actions .btn,.damage-report-detail-actions .btn{flex:1 1 140px}}


/* V11.40 — analytics integrity + full OwnerRez financial sync */
.ownerrez-full-sync-progress{display:grid;gap:4px}
.ownerrez-full-sync-progress span{font-size:11px;font-weight:700}
.ownerrez-full-sync-progress small{color:#64748b}
.analytics-property-performance-row small{display:block;font-size:8px;color:#64748b;margin-top:2px}
.performance-mini-grid>div>small+small{margin-top:2px}


/* V11.41 — recognizable booking channel colors in Guest Messages */
.message-channel-pill{border:1px solid transparent}
.message-channel-pill.channel-airbnb{background:#fff0f1;color:#d92d3f;border-color:#ffd7dc}
.message-channel-pill.channel-booking{background:#eaf2ff;color:#003b95;border-color:#c9dcff}
.message-channel-pill.channel-vrbo{background:#eef0ff;color:#3139a8;border-color:#d7dafd}
.message-channel-pill.channel-direct{background:#eaf8ef;color:#176b3a;border-color:#ccebd7}
.message-channel-pill.channel-hopper{background:#f3edff;color:#6c38a0;border-color:#e1d3f5}
.message-channel-pill.channel-whimstay{background:#fff4e8;color:#a64e00;border-color:#f8dcc1}
.message-channel-pill.channel-crewdogs{background:#eef6f7;color:#17606a;border-color:#d2e8eb}
.message-channel-pill.channel-other{background:#f1f5f9;color:#475569;border-color:#e2e8f0}
.message-channel-pill.compact{font-size:8px;padding:2px 6px;margin:0 2px}
.message-thread-subtitle{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
@media(max-width:900px){
  .message-channel-pill.compact{font-size:9px;padding:3px 7px}
}


/* V11.42 — complete property loading + provisional financials */
.performance-health-metrics .metric-card-btn small{display:block;font-size:9px;color:#64748b;margin-top:3px}
.performance-mini-grid>div.financial-provisional{background:#fffaf0;border:1px solid #fde7b2}
.performance-mini-grid>div.financial-provisional>span:first-child{color:#92400e}
.performance-mini-grid>div.financial-provisional>b{color:#78350f}


/* V11.43 — visible OwnerRez finance progress + resilient property calculations */
.property-finance-sync-card{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,.6fr) auto;align-items:center;gap:14px;margin:12px 0}
.property-finance-sync-card.incomplete{border-left:5px solid #d97706}
.property-finance-sync-card.complete{border-left:5px solid #16a34a}
.property-finance-sync-card>div:first-child{display:grid;gap:3px}
.property-finance-sync-kicker{font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:#64748b}
.property-finance-sync-card b{font-size:13px}.property-finance-sync-card small{font-size:9px;color:#64748b;line-height:1.35}
.property-finance-sync-progress{height:9px;border-radius:999px;background:#edf1f5;overflow:hidden}.property-finance-sync-progress i{display:block;height:100%;background:#d97706;border-radius:999px}
.property-finance-sync-card.complete .property-finance-sync-progress i{background:#16a34a}
@media(max-width:900px){
  .property-finance-sync-card{grid-template-columns:1fr}.property-finance-sync-card .row{justify-content:space-between}
}


/* V11.44 — resumable OwnerRez financial enrichment */
.ownerrez-full-sync-progress .property-finance-sync-progress{margin-top:5px}


/* V11.45 — ChargeAutomation guest readiness */
.chargeautomation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.chargeautomation-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}
.chargeautomation-metrics>div{padding:11px;border-radius:9px;background:#f7f9fb;display:grid;gap:3px}
.chargeautomation-metrics span{font-size:8px;text-transform:uppercase;font-weight:800;color:#64748b}.chargeautomation-metrics b{font-size:20px}
.chargeautomation-webhook-section{margin-top:14px}.chargeautomation-webhook-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:12px 0}
.chargeautomation-event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:10px 0}.chargeautomation-event-grid span{padding:7px 9px;border-radius:7px;background:#f7f9fb;font-size:9px}
.booking-readiness-card{margin-top:14px;border-left:5px solid #16a34a}
.booking-readiness-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:10px 0}
.readiness-tile{padding:9px 10px;border-radius:9px;background:#f7f9fb;display:grid;gap:3px}.readiness-tile span{font-size:8px;text-transform:uppercase;font-weight:800;color:#64748b}.readiness-tile b{font-size:12px}.readiness-tile b.good{color:#15803d}.readiness-tile b.warn{color:#b45309}.readiness-tile b.bad{color:#b91c1c}.readiness-tile small{font-size:8px;color:#64748b}
.booking-access-code-panel{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:end;padding:10px;border-radius:9px;background:#f0f7ff;margin:8px 0}.booking-access-code-panel>div{display:grid;gap:2px}.booking-access-code-panel span{font-size:8px;text-transform:uppercase;font-weight:800;color:#64748b}.booking-access-code-panel b{font-size:15px}
@media(max-width:1100px){.booking-readiness-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){
  .chargeautomation-grid{grid-template-columns:1fr}.chargeautomation-metrics{grid-template-columns:repeat(2,1fr)}
  .chargeautomation-webhook-copy{grid-template-columns:1fr}.chargeautomation-event-grid{grid-template-columns:1fr}
  .booking-readiness-grid{grid-template-columns:repeat(2,1fr)}.booking-access-code-panel{grid-template-columns:1fr 1fr}.booking-access-code-panel .btn{grid-column:1/-1}
}

/* V11.47 ChargeAutomation booking-readiness summaries */
.booking-ca-cell{display:flex;flex-direction:column;gap:4px;min-width:132px}.booking-ca-cell small{font-size:11px;color:var(--muted);line-height:1.25}.guest-screening-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0 14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.guest-screening-summary>div{display:flex;flex-direction:column;gap:3px}.guest-screening-summary span{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.guest-screening-summary b{font-size:18px}.guest-screening-summary small{color:var(--muted);line-height:1.35}.guest-screening-summary.good{border-left:5px solid #16a34a}.guest-screening-summary.warn{border-left:5px solid #d97706}.guest-screening-summary.bad{border-left:5px solid #dc2626}.booking-table-wrap table{min-width:1180px}@media(max-width:760px){.guest-screening-summary{grid-template-columns:1fr}}
.booking-code-cell{display:flex;flex-direction:column;gap:2px;min-width:92px}.booking-code-cell b{font-size:1.05rem;letter-spacing:.04em}.booking-code-cell small{color:var(--muted);font-size:.72rem}

/* V11.50 dashboard attention actions */
.exception-card{display:block;padding:0;overflow:hidden}
.exception-main{display:block;width:100%;border:0;background:transparent;text-align:left;padding:16px;cursor:pointer;color:inherit}
.exception-main:hover{background:rgba(15,23,42,.025)}
.exception-actions{display:flex;gap:8px;flex-wrap:wrap;padding:0 16px 14px}
.exception-actions .btn{min-width:74px}
@media(max-width:700px){.exception-actions .btn{flex:1}.tabs-lite{flex-wrap:wrap}}

/* v11.52 ChargeAutomation questionnaire screening */
.booking-screening-flags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.booking-screening-flags .pill{font-size:11px;padding:4px 7px}
.booking-questionnaire-card{margin-top:16px}.booking-questionnaire-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}.questionnaire-summary-item{background:#f6f8fb;border:1px solid #e3e9f1;border-left:4px solid #64748b;border-radius:12px;padding:13px}.questionnaire-summary-item span{display:block;font-size:11px;font-weight:800;text-transform:uppercase;color:#64748b;margin-bottom:5px}.questionnaire-summary-item b{display:block;font-size:18px}.questionnaire-summary-item small{display:block;color:#64748b;margin-top:5px}.questionnaire-summary-item.questionnaire-risk{background:#fff1f2;border-color:#fecdd3;border-left-color:#dc2626}.questionnaire-summary-item.questionnaire-risk b,.questionnaire-summary-item.questionnaire-risk small{color:#b91c1c}.questionnaire-summary-item.questionnaire-warn{background:#fffbeb;border-color:#fde68a;border-left-color:#d97706}.questionnaire-answer-list{display:grid;gap:8px}.questionnaire-answer{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px}.questionnaire-answer span{display:block;color:#52657a;font-size:13px;margin-bottom:4px}.questionnaire-answer b{display:block;font-size:15px}.questionnaire-answer small{display:block;color:#94a3b8;margin-top:3px}@media(max-width:800px){.booking-questionnaire-summary{grid-template-columns:1fr}}

/* V11.53 — Integrations hub + Users directory */
.integration-hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.integration-card{display:flex;flex-direction:column;gap:16px;min-height:245px}
.integration-card-top{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:14px;align-items:start}
.integration-icon{width:54px;height:54px;border-radius:15px;background:#0f172a;color:white;display:grid;place-items:center;font-weight:900;letter-spacing:.02em}
.integration-card h3{margin:3px 0 4px}.integration-card p{margin:0}.integration-card>.btn{margin-top:auto;align-self:flex-start}
.integration-meta{display:flex;gap:18px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid var(--line);font-size:12px;color:var(--muted)}
.integration-placeholder{border-style:dashed;background:#fbfcfe}
.segmented-tabs{display:inline-flex;background:#eef2f7;border:1px solid var(--line);padding:4px;border-radius:13px;gap:4px;margin:14px 0 18px}
.segmented-tabs button{border:0;background:transparent;border-radius:9px;padding:10px 18px;font:inherit;font-weight:800;cursor:pointer;color:#64748b}.segmented-tabs button.active{background:#fff;color:#0f172a;box-shadow:0 1px 4px rgba(15,23,42,.12)}.segmented-tabs button span{font-size:11px;margin-left:5px;opacity:.7}
.user-directory-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) 220px;gap:12px;margin-bottom:14px}.user-directory-toolbar .field{margin:0}
.staff-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.staff-user-card{display:grid;grid-template-columns:minmax(0,1fr) 245px;gap:16px;align-items:center;padding:16px}.staff-user-card.inactive{background:#f8fafc}.staff-user-main{border:0;background:none;text-align:left;padding:0;display:flex;gap:14px;align-items:center;cursor:pointer;color:inherit;min-width:0}.staff-avatar{width:58px;height:58px;flex:0 0 58px;border-radius:50%;display:grid;place-items:center;background:#0f172a;color:#fff;font-weight:900;font-size:16px;overflow:hidden}.staff-avatar img{width:100%;height:100%;object-fit:cover}.staff-avatar.xl{width:92px;height:92px;flex-basis:92px;font-size:24px}.staff-user-copy{min-width:0}.staff-user-copy h3{margin:0}.staff-user-copy p{margin:3px 0;color:#475569;font-weight:700}.staff-user-copy>span{display:block;color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}.staff-access-panel{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:12px;align-items:end}.field.compact{margin:0}.access-switch{display:flex;align-items:center;gap:8px;cursor:pointer;white-space:nowrap}.access-switch input{position:absolute;opacity:0;pointer-events:none}.switch-track{width:44px;height:24px;min-width:44px;flex:0 0 44px;border-radius:999px;background:#cbd5e1;padding:3px;transition:.2s;display:block}.switch-track span{display:block;width:18px;height:18px;border-radius:50%;background:white;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.2s}.access-switch.on .switch-track,.access-switch input:checked+.switch-track{background:#16a34a}.access-switch input:checked+.switch-track span{transform:translateX(20px)}.access-switch b{font-size:12px}.access-switch.large{padding:10px 12px;border:1px solid var(--line);border-radius:12px}
.owner-user-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.owner-user-card{display:grid;grid-template-columns:52px minmax(0,1fr) auto;gap:14px;align-items:center}.owner-user-avatar{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#e0f2fe;color:#075985;font-weight:900}.owner-user-card h3,.owner-user-card p{margin:0}.owner-user-card p{margin-top:4px}.owner-users-actions{margin-bottom:14px}
.staff-profile-hero{margin-top:14px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px}.staff-profile-title h2{margin:0}.staff-profile-title p{margin:4px 0;color:#475569;font-weight:750}.staff-profile-title>span{color:var(--muted)}.staff-profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:14px;margin-top:14px}.staff-profile-controls hr{border:0;border-top:1px solid var(--line);margin:18px 0}
@media(max-width:1100px){.staff-user-grid,.owner-user-grid{grid-template-columns:1fr}.staff-user-card{grid-template-columns:minmax(0,1fr) 245px}}
@media(max-width:720px){.integration-card-top{grid-template-columns:48px minmax(0,1fr)}.integration-card-top>.pill{grid-column:2}.staff-user-card{grid-template-columns:1fr}.staff-access-panel{grid-template-columns:1fr 1fr}.user-directory-toolbar{grid-template-columns:1fr}.staff-profile-hero{grid-template-columns:auto minmax(0,1fr)}.staff-profile-hero>.access-switch{grid-column:1/-1}.staff-profile-layout{grid-template-columns:1fr}.owner-user-card{grid-template-columns:45px minmax(0,1fr)}.owner-user-actions{grid-column:2}.users-page-head{align-items:flex-start;flex-direction:column}}


/* v11.54 permission-aware users + centralized notification rules */
.staff-role-readonly{display:block;padding:10px 0;color:#14213d}
.notification-rules-card{margin:16px 0 22px}
.notification-rule-groups{display:grid;gap:18px;margin-top:16px}
.notification-rule-group{border:1px solid #e3e9f2;border-radius:14px;overflow:hidden;background:#fff}
.notification-rule-group h4{margin:0;padding:12px 16px;background:#f7f9fc;border-bottom:1px solid #e7ebf2;color:#50657e;text-transform:uppercase;letter-spacing:.04em;font-size:12px}
.notification-rule-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:18px;align-items:center;padding:14px 16px;border-bottom:1px solid #edf0f5}
.notification-rule-row:last-child{border-bottom:0}
.notification-rule-copy{display:flex;flex-direction:column;gap:4px}
.notification-rule-copy span{font-size:13px;color:#66758a;line-height:1.35}
.notification-rule-toggles{display:flex;gap:12px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.rule-toggle{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid #dce3ec;border-radius:10px;background:#f8fafc;font-size:13px;font-weight:700;white-space:nowrap}
.rule-toggle input{width:18px;height:18px;accent-color:#0f7b55}
.rule-na{font-size:12px;color:#9aa5b4;min-width:112px;text-align:center}
.notification-history{margin-top:18px}
@media(max-width:760px){.notification-rule-row{grid-template-columns:1fr}.notification-rule-toggles{justify-content:flex-start}.rule-na{text-align:left}}

/* v11.56 AI turnover inspections */
.ai-mini-metrics{display:grid;grid-template-columns:repeat(4,minmax(70px,1fr));gap:10px;margin:14px 0}.ai-mini-metrics>div{background:var(--surface-2,#f6f7f8);border:1px solid var(--line);border-radius:12px;padding:10px}.ai-mini-metrics span{display:block;font-size:12px;color:var(--muted)}.ai-mini-metrics b{font-size:20px}.ai-inspection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:14px}.ai-inspection-card{text-align:left;width:100%;cursor:pointer}.ai-inspection-card.has-findings{border-color:#d99b39}.ai-inspection-card p{min-height:42px}.ai-property-shortcuts select{min-width:220px}.ai-setup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:16px 0}.ai-inventory-list{display:grid;gap:10px}.ai-inventory-row{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--line);border-radius:12px;padding:12px}.ai-inventory-row span,.ai-inventory-row small{display:block;color:var(--muted);margin-top:3px}.ai-findings-list{display:grid;gap:14px;margin:16px 0}.ai-finding.missing,.ai-finding.damage{border-left:4px solid #c84d46}.ai-finding.coverage{border-left:4px solid #d5a038}.ai-finding.moved{border-left:4px solid #4f8e78}.ai-confidence{text-align:right;min-width:82px}.ai-confidence b{font-size:24px;display:block}.ai-confidence span{font-size:11px;color:var(--muted)}.ai-evidence-strip{display:flex;gap:10px;overflow:auto;padding:10px 0}.ai-evidence-strip button{position:relative;border:0;background:none;padding:0;min-width:130px;cursor:pointer}.ai-evidence-strip img{width:130px;height:96px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.ai-evidence-strip span{position:absolute;left:6px;bottom:7px;background:rgba(0,0,0,.7);color:#fff;border-radius:999px;padding:3px 7px;font-size:10px}.ai-finding-review{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}.ai-provider-hero,.ai-report-summary,.ai-turnover-summary{margin-bottom:16px}.ai-photo-run-card{border-style:dashed}
@media(max-width:760px){.ai-setup-grid{grid-template-columns:1fr}.ai-mini-metrics{grid-template-columns:repeat(2,1fr)}.ai-inventory-row,.ai-finding-review{align-items:flex-start;flex-direction:column}.ai-property-shortcuts .row{align-items:stretch}.ai-property-shortcuts select{min-width:0;width:100%}}
\n\n/* V11.58 — working instant Needs Attention dismissal + smooth reflow + AI dismissal history */\n.exception-list{overflow:visible}\n.exception-card{max-height:900px;opacity:1;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),max-height .34s cubic-bezier(.2,.8,.2,1),margin .34s ease,padding .34s ease,border-width .34s ease;will-change:opacity,transform,max-height}\n.exception-card-dismissing{opacity:0;transform:translateX(24px) scale(.985);max-height:0!important;margin-top:-10px!important;margin-bottom:0!important;border-width:0!important;pointer-events:none}\n.exception-card-dismissing .exception-main,.exception-card-dismissing .exception-actions{padding-top:0!important;padding-bottom:0!important;overflow:hidden}\n.attention-empty-enter{animation:attentionEmptyIn .28s ease both}\n@keyframes attentionEmptyIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}\n.ai-inspection-tabs{margin:14px 0 16px;max-width:470px}\n.dismissed-ai-list{display:grid;gap:12px}\n.dismissed-ai-card{border-left:4px solid #94a3b8}\n.dismissed-ai-card h3{margin:8px 0 5px}.dismissed-ai-card p{margin:0}\n.dismissed-ai-date{text-align:right;min-width:145px}.dismissed-ai-date span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.dismissed-ai-date b{font-size:13px}\n.dismissed-ai-actions{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}\n@media(max-width:700px){.dismissed-ai-card>.row.space{align-items:flex-start;flex-direction:column}.dismissed-ai-date{text-align:left}.dismissed-ai-actions .btn{flex:1}}\n
/* V11.59 — analytics calculation help, metric tooltips and graph definitions */
.analytics-title-with-help{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.analytics-title-with-help h3{margin:0}
.analytics-help-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid #dbe3ec;background:#f8fafc;color:#334155;border-radius:999px;padding:5px 9px;font:inherit;font-size:9px;font-weight:800;line-height:1;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,transform .15s ease}.analytics-help-btn:hover{background:#eef6ff;border-color:#bfdbfe}.analytics-help-btn:active{transform:scale(.97)}.analytics-help-btn span{font-size:11px;color:#2563eb}
.analytics-info-dot{display:inline-grid!important;place-items:center;width:16px;height:16px;border-radius:50%;background:#eef6ff;color:#2563eb!important;border:1px solid #bfdbfe;font-size:10px!important;font-weight:900!important;line-height:1!important;cursor:pointer;vertical-align:middle;margin-left:2px;flex:none;user-select:none}.analytics-info-dot:hover,.analytics-info-dot:focus-visible{background:#dbeafe;outline:2px solid rgba(37,99,235,.18);outline-offset:1px}
.analytics-help-overlay{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.46);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;animation:analyticsHelpFade .16s ease both}.analytics-help-dialog{width:min(680px,100%);max-height:min(82vh,760px);overflow:auto;background:#fff;border:1px solid #dbe3ec;border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.25);animation:analyticsHelpPop .2s cubic-bezier(.2,.8,.2,1) both}.analytics-help-head{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 22px 15px;background:rgba(255,255,255,.97);border-bottom:1px solid #edf0f3;backdrop-filter:blur(8px)}.analytics-help-kicker{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#2563eb;margin-bottom:4px}.analytics-help-head h3{font-size:20px;margin:0;color:#0f172a}.analytics-help-close{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid #dbe3ec;border-radius:10px;background:#f8fafc;color:#334155;font-size:24px;line-height:1;cursor:pointer}.analytics-help-close:hover{background:#f1f5f9}
.analytics-help-grid{display:grid;padding:8px 22px 22px}.analytics-help-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding:13px 0;border-bottom:1px solid #edf0f3}.analytics-help-row:last-child{border-bottom:0}.analytics-help-row>span{font-size:10px;text-transform:uppercase;letter-spacing:.05em;font-weight:900;color:#64748b}.analytics-help-row p{margin:0;font-size:13px;line-height:1.55;color:#1e293b}.analytics-help-row:nth-child(2) p{font-weight:800;color:#0f172a}
@keyframes analyticsHelpFade{from{opacity:0}to{opacity:1}}@keyframes analyticsHelpPop{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.analytics-big-metric>span,.performance-metric>span,.performance-mini-grid>div>span,.analytics-property-performance-row>div>span,.analytics-source-strip>div>span{display:flex;align-items:center;gap:3px}
@media(max-width:700px){.analytics-help-overlay{padding:0;place-items:end center}.analytics-help-dialog{width:100%;max-height:88vh;border-radius:18px 18px 0 0}.analytics-help-head{padding:17px 18px 13px}.analytics-help-grid{padding:5px 18px 22px}.analytics-help-row{grid-template-columns:1fr;gap:4px;padding:12px 0}.analytics-help-btn{font-size:10px;padding:6px 9px}}

/* V11.60 — Mobile ribbon calendar sticky-layer stabilization
   Keep the phone calendar as one synchronized two-axis scroll surface.
   Desktop keeps the month band; mobile uses only the compact date header. */
@media(max-width:1023px){
  .view-calendar .ribbon-viewport{
    overflow:auto!important;
    overscroll-behavior:none!important;
    scrollbar-gutter:auto;
    isolation:isolate;
    scroll-behavior:auto;
    -webkit-overflow-scrolling:touch;
  }
  .view-calendar .ribbon-unified{
    position:relative;
    min-height:max-content;
  }
  .view-calendar .ribbon-unified-header{
    height:48px!important;
    min-height:48px!important;
    position:sticky;
    top:0;
    z-index:40;
    display:flex;
    align-items:stretch;
    overflow:visible;
    background:#fff;
    isolation:isolate;
  }
  /* The desktop month strip was previously rendering as normal block content
     on phones, overflowing the 48px sticky header and causing the jumpy header. */
  .view-calendar .desktop-month-track{
    display:none!important;
    height:0!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .view-calendar .ribbon-header-timeline{
    display:block!important;
    position:relative;
    height:48px!important;
    min-height:48px!important;
    flex:0 0 auto;
    overflow:visible;
    background:#fff;
    z-index:1;
  }
  .view-calendar .ribbon-date-track{
    display:flex!important;
    position:relative;
    height:48px!important;
    min-height:48px!important;
    z-index:2;
    background:#fff;
  }
  .view-calendar .ribbon-date-track .ribbon-day{
    height:48px!important;
    min-height:48px!important;
    background:#fff;
  }
  .view-calendar .ribbon-date-track .ribbon-day.weekend{
    background:#f8fafc;
  }
  .view-calendar .ribbon-date-track .ribbon-day.today{
    background:#eaf2ff;
  }
  /* Top-left corner owns both sticky axes so dates never paint over it. */
  .view-calendar .ribbon-sticky-corner{
    position:sticky!important;
    top:0!important;
    left:0!important;
    height:48px!important;
    min-height:48px!important;
    z-index:60!important;
    background:#fff!important;
    box-shadow:4px 0 8px rgba(15,23,42,.08),0 3px 6px rgba(15,23,42,.05);
    transform:translateZ(0);
    backface-visibility:hidden;
  }
  /* Property cells move vertically with their row, but stay locked to the left
     during horizontal swipes. This prevents a second independent-looking column. */
  .view-calendar .ribbon-sticky-property{
    position:sticky!important;
    left:0!important;
    z-index:30!important;
    background:#fff!important;
    transform:translateZ(0);
    backface-visibility:hidden;
  }
  .view-calendar .ribbon-unified-row,
  .view-calendar .ribbon-row-track{
    contain:layout paint;
  }
}

/* V11.62 — Admin Role Preview */
.role-preview-topbar-btn{
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:44px;
}
.role-preview-desktop-label{display:none}
.role-preview-floating{
  position:fixed;
  left:12px;
  right:12px;
  bottom:calc(78px + env(safe-area-inset-bottom));
  z-index:120;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:11px 12px;
  border:1px solid #f6c453;
  border-radius:14px;
  background:rgba(255,248,219,.97);
  color:#4a3510;
  box-shadow:0 14px 34px rgba(15,23,42,.22);
  backdrop-filter:blur(12px);
}
.role-preview-floating>div{min-width:0;display:flex;flex-direction:column;gap:1px}
.role-preview-floating span{font-size:9px;font-weight:900;letter-spacing:.1em;color:#8a5c00}
.role-preview-floating b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.role-preview-floating small{font-size:10px;color:#755a27}
.role-preview-floating .btn{flex:0 0 auto;background:#111827;color:#fff;border-color:#111827}
.role-preview-overlay{
  position:fixed;
  inset:0;
  z-index:300;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(15,23,42,.58);
  backdrop-filter:blur(5px);
}
.role-preview-dialog{
  width:min(720px,100%);
  max-height:min(86vh,780px);
  overflow:auto;
  background:#fff;
  border-radius:18px;
  padding:22px;
  box-shadow:0 28px 80px rgba(15,23,42,.36);
}
.role-preview-dialog h2{margin:4px 0 0}
.role-preview-role-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.role-preview-role-card{
  border:1px solid #dfe5ec;
  border-radius:13px;
  background:#f8fafc;
  min-height:78px;
  padding:14px;
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:4px;
  font:inherit;
}
.role-preview-role-card:hover{border-color:#9aa7b8;background:#fff;box-shadow:0 8px 22px rgba(15,23,42,.08)}
.role-preview-role-card b{font-size:15px}
.role-preview-role-card span{font-size:11px;color:#697586}
.role-preview-owner-box{
  display:grid;
  gap:10px;
  padding:16px;
  margin-bottom:14px;
  border:1px solid #dfe5ec;
  border-radius:14px;
  background:#f8fafc;
}
.role-preview-owner-box p{margin:3px 0 0}
.role-preview-owner-box select{width:100%}
.readonly-field{
  min-height:44px;
  padding:11px 12px;
  border:1px solid #dce2e9;
  border-radius:10px;
  background:#f6f8fa;
  color:#334155;
  display:flex;
  align-items:center;
}
.role-preview-more{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:12px 0 20px;
}
.role-preview-more>div{display:flex;flex-direction:column;gap:2px}
.role-preview-more span{font-size:12px;color:#667085}

@media(min-width:1024px){
  .role-preview-desktop-label{display:inline}
  .role-preview-topbar-btn{padding:8px 11px!important;width:auto!important}
  .role-preview-floating{
    left:auto;
    right:28px;
    bottom:24px;
    width:min(460px,calc(100vw - var(--desktop-sidebar) - 56px));
  }
  .role-preview-role-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:520px){
  .role-preview-overlay{padding:10px}
  .role-preview-dialog{padding:16px;border-radius:15px;max-height:90vh}
  .role-preview-role-grid{grid-template-columns:1fr 1fr;gap:8px}
  .role-preview-role-card{min-height:66px;padding:11px}
  .role-preview-floating{bottom:calc(74px + env(safe-area-inset-bottom));padding:9px 10px}
  .role-preview-floating small{display:none}
  .role-preview-more{align-items:flex-start}
}
.role-preview-owner-divider{display:flex;align-items:center;gap:10px;color:#8a94a3;font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.08em}
.role-preview-owner-divider:before,.role-preview-owner-divider:after{content:"";height:1px;background:#dfe5ec;flex:1}

/* V11.63 — Owner Portal operations */
.owner-quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.owner-doc-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.owner-month-packet{margin:14px 0;padding:18px}.owner-month-packet h3{margin:3px 0 0}.owner-packet-section{margin-top:14px;padding-top:12px;border-top:1px solid #e7ebf0}.owner-packet-section>b{display:block;margin-bottom:4px}
.owner-generated-doc-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:11px 0;border-top:1px solid #edf0f3}.owner-generated-doc-row>div{display:grid;gap:4px}.owner-generated-doc-row>div:last-child{justify-items:end}.owner-generated-doc-row span,.owner-generated-doc-row small{font-size:10px;color:var(--muted)}
.owner-active-doc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.owner-active-doc-card{display:grid;gap:8px}.owner-active-doc-card>span,.owner-active-doc-card>small{color:var(--muted)}.owner-doc-expired{border-color:#fecaca;background:#fff7f7}
.owner-request-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.owner-request-shortcuts .menu-card{text-align:left}
.owner-request-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;margin:14px 0}.owner-request-facts>div{display:grid;gap:3px;padding:10px 12px;border:1px solid #e4e9ef;border-radius:9px;background:#f8fafc}.owner-request-facts span{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.owner-vendor-card,.owner-request-decision,.owner-request-approval-box,.owner-request-generated-doc{margin:16px 0;padding:16px;border-radius:11px;border:1px solid #dfe5ec;background:#fafbfd}.owner-request-decision.pending{background:#fffbeb;border-color:#fde68a}.owner-request-decision.approved{background:#f0fdf4;border-color:#bbf7d0}.owner-request-decision.denied{background:#fff1f2;border-color:#fecdd3}.owner-request-approval-box{border:2px solid #f59e0b;background:#fffbeb}.owner-request-status-row{margin:16px 0}
.owner-approval-queue{border:1px solid #f5c96b;background:#fffdf6}.owner-request-approval-card{background:#fff}.owner-request-approval-card p{margin:8px 0 12px}
.owner-charge-apply{max-width:760px;margin:0 auto}.notification-card{cursor:pointer}.notification-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
@media(max-width:800px){.owner-request-shortcuts{grid-template-columns:1fr 1fr}.owner-generated-doc-row{grid-template-columns:1fr}.owner-generated-doc-row>div:last-child{justify-items:start}}
@media(max-width:520px){.owner-request-shortcuts{grid-template-columns:1fr}.owner-quick-actions .btn{width:100%}.owner-month-packet>.row{align-items:flex-start}.owner-month-packet>.row>div:last-child{justify-content:flex-start}.owner-request-facts{grid-template-columns:1fr}}
/* v11.64 Owner Portal calendar-first booking visibility */
.owner-calendar-card{background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;margin:18px 0;box-shadow:0 8px 24px rgba(15,23,42,.05)}
.owner-calendar-head{padding:18px 20px;align-items:flex-end;gap:18px}.owner-calendar-head h2{margin:2px 0 4px}.owner-calendar-range{display:block;margin-top:7px;font-size:11px;font-weight:750;color:var(--muted)}.owner-calendar-controls{display:flex;gap:10px;align-items:end;flex-wrap:wrap;justify-content:flex-end}.owner-calendar-controls label{font-size:12px;font-weight:800;color:var(--muted)}.owner-calendar-property-control{display:flex;flex-direction:column;gap:4px}.owner-calendar-property-control select{min-width:220px}.owner-calendar-month-controls{display:flex;align-items:end;gap:6px}.owner-calendar-month-controls label{display:flex;flex-direction:column;gap:4px}.owner-calendar-month-controls input[type=month]{min-width:158px}.owner-month-arrow{min-width:42px}
.owner-ribbon-viewport{overflow:auto;max-height:560px;overscroll-behavior:contain;scrollbar-gutter:stable;border-top:1px solid var(--line)}
.owner-ribbon-grid{position:relative;min-width:100%;background:#fff}.owner-ribbon-head{height:84px;display:flex;position:sticky;top:0;z-index:12;background:#fff;border-bottom:1px solid var(--line)}
.owner-ribbon-corner{position:sticky;left:0;z-index:15;width:var(--owner-prop-width);min-width:var(--owner-prop-width);padding:32px 14px 18px;background:#fff;font-weight:900;border-right:1px solid var(--line)}
.owner-ribbon-header-timeline{display:flex;flex-direction:column}.owner-ribbon-months{height:28px;display:flex;background:#f8fafc;border-bottom:1px solid var(--line)}.owner-ribbon-months>div{flex:0 0 auto;padding:6px 10px;font-size:11px;font-weight:900;color:#475569;border-right:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-ribbon-dates{height:56px;display:flex}.owner-ribbon-day{flex:0 0 auto;text-align:center;padding:8px 4px;border-right:1px solid var(--line);font-size:12px}.owner-ribbon-day b,.owner-ribbon-day span{display:block}.owner-ribbon-day.today{background:#eef5ff;color:#0f4c81}
.owner-ribbon-row{height:76px;display:flex;border-bottom:1px solid var(--line)}.owner-ribbon-property{position:sticky;left:0;z-index:8;width:var(--owner-prop-width);min-width:var(--owner-prop-width);display:flex;gap:8px;align-items:center;padding:10px 12px;background:#fff;border-right:1px solid var(--line)}.owner-ribbon-property b{font-size:13px;line-height:1.2}.owner-ribbon-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto}
.owner-ribbon-track{position:relative;background-image:linear-gradient(to right,var(--line) 1px,transparent 1px)}.owner-ribbon-entry{position:absolute;top:8px;height:60px;box-sizing:border-box;border:2px solid rgba(255,255,255,.94);border-radius:12px;padding:7px 9px;text-align:left;overflow:hidden;background:#2563eb;color:#fff;box-shadow:0 2px 6px rgba(15,23,42,.18)}.owner-ribbon-entry b,.owner-ribbon-entry span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.owner-ribbon-entry b{font-size:12px}.owner-ribbon-entry span{font-size:10px;opacity:.92;margin-top:3px}.owner-ribbon-entry.owner-stay{background:repeating-linear-gradient(135deg,transparent 0 10px,rgba(255,255,255,.22) 10px 18px),var(--owner-entry-color,#7c3aed)}.owner-ribbon-entry.block{background:repeating-linear-gradient(135deg,#64748b,#64748b 8px,#758398 8px,#758398 16px)}
.owner-booking-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.owner-booking-info-grid>div{padding:12px;border:1px solid var(--line);border-radius:12px}.owner-booking-info-grid span,.owner-booking-info-grid b{display:block}.owner-booking-info-grid span{font-size:12px;color:var(--muted);margin-bottom:3px}
.owner-visibility-panel{max-width:720px}.owner-visibility-groups{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:16px 0}.owner-visibility-groups section{border:1px solid var(--line);border-radius:14px;padding:14px}.owner-visibility-groups h3{margin-top:0}.owner-visibility-toggle{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);cursor:pointer}.owner-visibility-toggle:last-child{border-bottom:0}.owner-visibility-toggle>input{position:absolute;opacity:0;pointer-events:none}.owner-visibility-toggle b,.owner-visibility-toggle small{display:block}.owner-visibility-toggle small{color:var(--muted);margin-top:2px}.owner-visibility-toggle .switch-track{width:42px;height:24px;border-radius:999px;background:#cbd5e1;padding:3px;transition:.2s}.owner-visibility-toggle .switch-track span{display:block;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s}.owner-visibility-toggle input:checked~.switch-track{background:#16a34a}.owner-visibility-toggle input:checked~.switch-track span{transform:translateX(18px)}.owner-financial-children{padding-left:10px;border-left:3px solid #eef2f7}
@media(max-width:720px){.owner-calendar-head{align-items:stretch;flex-direction:column}.owner-calendar-controls{display:flex;flex-direction:column;align-items:stretch}.owner-calendar-property-control,.owner-calendar-property-control select{width:100%;min-width:0}.owner-calendar-month-controls{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:end;width:100%}.owner-calendar-month-controls label{min-width:0}.owner-calendar-month-controls input[type=month]{min-width:0;width:100%}.owner-ribbon-viewport{max-height:520px}.owner-ribbon-corner,.owner-ribbon-property{--owner-prop-width:140px}.owner-ribbon-corner{width:140px;min-width:140px;padding-left:10px;padding-right:10px}.owner-ribbon-property{width:140px;min-width:140px}.owner-ribbon-property b{font-size:11px}.owner-ribbon-months>div{font-size:10px;padding-left:8px;padding-right:8px}.owner-visibility-groups{grid-template-columns:1fr}.owner-booking-info-grid{grid-template-columns:1fr}.owner-welcome.compact{gap:10px}}

/* v11.65 interactive Ribbon Calendar / OwnerRez handoffs */
.view-calendar .calendar-empty-action{
  pointer-events:auto;
  appearance:none;
  border:0;
  border-right:1px solid transparent;
  background:transparent;
  padding:0;
  margin:0;
  cursor:pointer;
  z-index:1;
}
.view-calendar .calendar-empty-action.today{background:rgba(37,99,235,.07)}
@media (hover:hover) and (pointer:fine){
  .view-calendar .calendar-empty-action:hover{background:rgba(37,99,235,.055);outline:1px dashed rgba(37,99,235,.28);outline-offset:-2px}
}
.view-calendar .ribbon-booking{z-index:4}
.view-calendar .calendar-pending-action{
  z-index:5;
  top:8px;
  height:48px;
  color:#6b4200;
  background:repeating-linear-gradient(135deg,#fff7df 0,#fff7df 9px,#f8e7b4 9px,#f8e7b4 18px)!important;
  border:2px dashed #c58a18;
  box-shadow:0 2px 7px rgba(95,65,0,.14);
}
.view-calendar .calendar-pending-action.calendar-pending-owner{
  color:#60420c;
  background:repeating-linear-gradient(135deg,#fff4d8 0,#fff4d8 9px,#ead69f 9px,#ead69f 18px)!important;
}
.view-calendar .calendar-pending-action b{font-size:10px}
.view-calendar .calendar-pending-action span{font-size:9px}
.calendar-operation-card{max-width:760px;margin:0 auto}
.calendar-operation-card .booking-detail-grid{margin:14px 0}
@media(max-width:700px){
  .view-calendar .calendar-empty-action{touch-action:pan-x pan-y}
  .calendar-operation-card .row.space{align-items:flex-start;gap:10px}
  .calendar-operation-card .row.booking-actions{display:grid;grid-template-columns:1fr}
  .calendar-operation-card .row.booking-actions .btn{width:100%}
}

/* v11.66 Admin Developer Mode */
.developer-mode-page{display:grid;gap:14px}
.developer-mode-head{align-items:flex-start;gap:12px}
.developer-mode-head h2{margin:2px 0 4px}
.developer-mode-safety{display:flex;flex-direction:column;gap:4px}
.developer-role-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:12px}
.developer-role-card{appearance:none;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:14px 10px;min-height:104px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;text-align:left;cursor:pointer;color:inherit}
.developer-role-card:hover{border-color:var(--primary);background:var(--soft)}
.developer-role-card:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 30%,transparent);outline-offset:2px}
.developer-role-icon{font-size:22px;line-height:1}
.developer-role-card b{font-size:15px}
.developer-role-card small{color:var(--muted)}
.developer-owner-actions,.developer-testing-actions{margin-top:12px;flex-wrap:wrap}
.developer-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}
.developer-steps>div{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;gap:9px;align-items:flex-start;background:var(--soft)}
.developer-steps>div>b{width:24px;height:24px;border-radius:999px;background:var(--primary);color:white;display:grid;place-items:center;flex:0 0 24px;font-size:12px}
.developer-steps>div>span{font-size:13px;line-height:1.35}
.developer-preview-active-card{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}
@media(max-width:900px){.developer-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.developer-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.developer-mode-head{display:block}.developer-mode-head>.pill{display:inline-flex;margin-top:8px}.developer-role-grid{grid-template-columns:1fr 1fr}.developer-role-card{min-height:96px;padding:12px}.developer-steps{grid-template-columns:1fr}.developer-owner-actions .btn,.developer-testing-actions .btn{width:100%}}

/* V11.69 Owner Preview request simulation */
.owner-simulation-pill{background:#f3e8ff!important;border-color:#d8b4fe!important;color:#6b21a8!important;font-weight:800;letter-spacing:.035em}
.owner-request-simulation-notice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:12px 0 16px;border:1px dashed #a855f7;background:#faf5ff}
.owner-request-simulation-notice>div{display:grid;gap:3px;min-width:0}.owner-request-simulation-notice span{color:var(--muted);font-size:11px;line-height:1.45}
.owner-request-simulated{border:1.5px dashed #c084fc!important;background:linear-gradient(180deg,#fff 0%,#fdfaff 100%)!important}
.owner-request-title-row{gap:8px;align-items:center;flex-wrap:wrap}.owner-request-title-row .pill{margin:0;font-size:8px!important}
.owner-request-simulation-form,.owner-request-simulated-detail{border:1.5px dashed #c084fc!important}
.owner-simulation-view-switch{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px;padding:10px;border:1px dashed #d8b4fe;border-radius:10px;background:#faf5ff}
.owner-simulation-effects{display:grid;gap:9px;margin:16px 0;padding:14px;border:1px dashed #c084fc;border-radius:11px;background:#faf5ff}
.owner-simulation-effects h3{margin:0 0 2px;color:#6b21a8}.owner-simulation-effects>div{display:grid;gap:4px;padding:10px 12px;border:1px solid #ead7fb;border-radius:9px;background:#fff}
.owner-simulation-effects>div>b{font-size:12px}.owner-simulation-effects>div>span:not(.pill){font-size:10px;color:var(--muted);line-height:1.45}.owner-simulation-effects .pill{justify-self:start;margin-top:2px}
.owner-request-simulated-detail>.row:first-child{align-items:center}
@media(max-width:600px){.owner-request-simulation-notice{align-items:flex-start;flex-direction:column}.owner-request-simulation-notice .btn{width:100%}.owner-simulation-view-switch .btn{flex:1 1 140px}}
\n\n/* V11.70 — Owner Portal solid booking-detail modal */\n.owner-booking-dialog{width:min(620px,100%);overflow:hidden;background:#fff;color:#0f172a}\n.owner-booking-colorbar{height:7px;width:100%}\n.owner-booking-head{position:relative;top:auto;background:#fff;backdrop-filter:none}\n.owner-booking-head h3{font-size:24px;line-height:1.15;margin-top:2px}\n.owner-booking-body{padding:20px 22px 24px;background:#fff}\n.owner-booking-stay-summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:14px;padding:16px 18px;margin-bottom:14px;border:1px solid #dbe3ec;border-radius:15px;background:#f8fafc}\n.owner-booking-stay-summary>div:not(.owner-booking-arrow){min-width:0}\n.owner-booking-stay-summary span{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:850;color:#64748b;margin-bottom:4px}\n.owner-booking-stay-summary b{display:block;font-size:16px;line-height:1.25;color:#0f172a}\n.owner-booking-arrow{font-size:22px;font-weight:700;color:#94a3b8}\n.owner-booking-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}\n.owner-booking-info-grid>div{background:#fff;border-color:#dbe3ec;min-width:0}\n.owner-booking-info-grid b{overflow-wrap:anywhere}\n.owner-visibility-panel{width:min(720px,100%);max-height:min(86vh,820px);overflow:auto;background:#fff;color:#0f172a;padding:20px 22px 22px}\n.owner-visibility-panel>.row.space:first-child{margin-bottom:12px}\n@media(max-width:700px){\n  .owner-booking-overlay{place-items:end center}\n  .owner-booking-dialog{width:100%;max-height:88vh;border-radius:20px 20px 0 0}\n  .owner-booking-body{padding:16px 18px 24px}\n  .owner-booking-stay-summary{grid-template-columns:1fr;padding:14px 15px;gap:10px}\n  .owner-booking-arrow{display:none}\n  .owner-booking-info-grid{grid-template-columns:1fr}\n  .owner-visibility-panel{width:100%;max-height:88vh;border-radius:20px 20px 0 0;padding:18px}\n}\n

/* V11.71 — OwnerRez-style half-day Ribbon Calendar geometry
   Booking/block/owner-stay endpoints are calculated at the center of arrival
   and departure date columns. Borders provide separation for back-to-back stays
   without shifting those calendar endpoints. */
.view-calendar .ribbon-booking,.owner-ribbon-entry{box-sizing:border-box}
.view-calendar .ribbon-booking:not(.calendar-pending-action){border:2px solid rgba(255,255,255,.88)}

/* V11.72 — Cleaner marketplace + default cleaner offers */
.cleaner-offer-metric{border-color:#f59e0b!important;background:linear-gradient(180deg,#fffaf0,#fff)!important}
.cleaner-offers-section{scroll-margin-top:92px}
.available-cleanings-section{scroll-margin-top:92px}
.cleaner-offer-card{border:2px solid #f59e0b;position:relative;overflow:hidden}
.cleaner-offer-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:#f59e0b}
.available-cleaning-card{border-style:dashed;border-width:2px}
.default-cleaner-config{padding:4px 0 8px}
.default-cleaner-config .form-check{display:flex;gap:9px;align-items:flex-start;margin-top:10px}
.default-cleaner-config .form-check input{margin-top:3px}
@media(max-width:720px){
  .cleaner-offer-card .turnover-card-actions,.available-cleaning-card .turnover-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .cleaner-offer-card .turnover-card-actions .btn:first-child,.available-cleaning-card .turnover-card-actions .btn:first-child{grid-column:1/-1}
}

/* V11.73 — STR data provider integrations */
.integration-detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:16px;align-items:start}
.comp-provider-result{margin-top:12px}.comp-provider-result-card{margin:0;display:grid;gap:12px}.comp-provider-result-card .comp-report-numbers{margin-top:0}
@media(max-width:900px){.integration-detail-grid{grid-template-columns:1fr}.comp-provider-result .comp-provider-grid{grid-template-columns:1fr}}

/* V11.74 — production auth redirects + branded owner activation */
.auth-brand-card{max-width:520px;text-align:left;padding:34px;border:1px solid #dfe4ec;border-radius:24px;box-shadow:0 24px 70px rgba(15,23,42,.12);background:#fff}
.auth-brand-logo{display:block;margin:0 auto 18px;width:76px;height:76px;object-fit:contain;border-radius:18px}
.auth-brand-eyebrow{font-size:11px;font-weight:800;letter-spacing:.12em;color:#64748b;margin-bottom:6px}
.auth-brand-card h2{font-size:28px;line-height:1.15;margin:0 0 8px;color:#0f172a}
.auth-brand-note{margin:18px 0}
.auth-brand-support{text-align:center;margin:18px 0 0}
@media(max-width:640px){.auth-brand-card{margin:16px;padding:26px 20px;border-radius:20px}.auth-brand-card h2{font-size:24px}}

/* V11.75 — owner account administration + compliance renewal tracking */
.owner-admin-main{appearance:none;border:0;background:transparent;text-align:left;padding:0;flex:1;min-width:0;color:inherit;cursor:pointer}
.owner-admin-main>div{display:flex;flex-direction:column;gap:3px}
.owner-admin-row.inactive,.owner-user-card:has(.pill.warn){opacity:.72}
.owner-compliance-owner-card{width:100%;text-align:left;appearance:none;cursor:pointer;margin-bottom:10px}
.owner-compliance-owner-card>div>div:first-child{display:flex;flex-direction:column;gap:4px}
.owner-compliance-property-group{margin-top:16px}
.owner-compliance-property-group h4{margin:0 0 8px;font-size:14px;color:var(--muted)}
.owner-property-chip-grid{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.owner-admin-detail{display:flex;flex-direction:column;gap:16px}
.owner-active-doc-card small{display:block;margin-top:4px;color:var(--muted)}
.owner-active-doc-card .row:last-child{margin-top:10px}
@media(max-width:720px){
  .owner-admin-row{align-items:flex-start;gap:10px}
  .owner-admin-row>.row{width:100%;flex-wrap:wrap}
  .owner-admin-detail>.row.space{align-items:flex-start;gap:12px}
  .owner-admin-detail>.row.space>.row{width:100%;flex-wrap:wrap}
  .owner-compliance-owner-card>.row.space{align-items:flex-start;gap:10px}
  .owner-compliance-owner-card>.row.space>.row{flex-wrap:wrap;justify-content:flex-start}
}

/* V11.76 — Booking financial detail */
.booking-financials-card{margin-top:14px}
.booking-financial-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:12px 0}
.booking-financial-grid>div{padding:12px;border:1px solid var(--line,#e5e7eb);border-radius:12px;background:var(--surface-soft,#f8fafc);display:flex;flex-direction:column;gap:4px;min-width:0}
.booking-financial-grid span{font-size:12px;color:var(--muted,#64748b)}
.booking-financial-grid b{font-size:17px;overflow-wrap:anywhere}
.booking-financial-meta{margin-top:10px}
@media(max-width:900px){.booking-financial-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.booking-financial-grid{grid-template-columns:1fr 1fr}.booking-financial-grid>div{padding:10px}.booking-financial-grid b{font-size:15px}}

/* V11.77 — operational Service Areas + Property Groups */
.portfolio-org-page{display:flex;flex-direction:column;gap:16px}
.portfolio-org-grid{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.portfolio-org-card{display:flex;flex-direction:column;gap:11px;min-height:260px}
.portfolio-org-card h3{margin:0}
.portfolio-org-count{display:flex;align-items:baseline;gap:7px;padding:10px 12px;border:1px solid var(--line,#e5e7eb);border-radius:11px;background:var(--surface-soft,#f8fafc)}
.portfolio-org-count b{font-size:24px}.portfolio-org-count span{font-size:12px;color:var(--muted,#64748b)}
.portfolio-org-property-list{display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-height:42px}
.portfolio-org-property{appearance:none;border:1px solid var(--line,#dfe5ed);background:#fff;border-radius:999px;padding:6px 9px;font-size:11px;font-weight:750;cursor:pointer;color:inherit}
.portfolio-org-property:hover{border-color:#94a3b8;background:#f8fafc}
.portfolio-org-card>.btn{margin-top:auto;align-self:flex-start}
.org-property-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin:12px 0 18px;max-height:420px;overflow:auto;padding:3px}
.org-property-choice{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:9px;border:1px solid var(--line,#e2e8f0);border-radius:11px;padding:10px 11px;background:#fff;cursor:pointer}
.org-property-choice:has(input:checked){border-color:#64748b;background:#f8fafc}
.org-property-choice>span:last-child{display:flex;flex-direction:column;min-width:0}.org-property-choice small{color:var(--muted,#64748b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.property-org-badges{display:flex;flex-wrap:wrap;gap:6px}.property-org-badges .pill{font-size:9px!important;margin:0}.org-location{background:#eff6ff!important;border-color:#bfdbfe!important;color:#1d4ed8!important}.org-collection{background:#f5f3ff!important;border-color:#ddd6fe!important;color:#6d28d9!important}
.property-card-organization{padding-top:10px;border-top:1px solid var(--line,#edf0f3)}
.portfolio-filter-toolbar{grid-template-columns:minmax(230px,1.5fr) repeat(3,minmax(160px,.7fr));align-items:end}
.property-organization-config{display:grid;gap:14px;padding:4px 0 8px}.property-org-config-block{display:grid;gap:7px}.property-org-check-grid{display:flex;flex-wrap:wrap;gap:7px}.check-tile.compact{padding:8px 10px;min-height:auto}
.calendar-portfolio-filterbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid var(--line,#e2e8f0);border-radius:12px;background:#fff}
.calendar-portfolio-filterbar>div:first-child{display:flex;flex-direction:column;gap:2px;margin-right:auto}.calendar-portfolio-filterbar>div:first-child span{font-size:10px;color:var(--muted,#64748b)}
.calendar-portfolio-filterbar label{display:grid;gap:4px;font-size:10px;font-weight:800;color:var(--muted,#64748b)}.calendar-portfolio-filterbar select{min-width:170px}
@media(max-width:900px){.portfolio-filter-toolbar{grid-template-columns:1fr 1fr}.calendar-portfolio-filterbar>div:first-child{width:100%;margin-right:0}.calendar-portfolio-filterbar label{flex:1 1 160px}.calendar-portfolio-filterbar select{width:100%;min-width:0}}
@media(max-width:600px){.portfolio-filter-toolbar{grid-template-columns:1fr}.org-property-picker{grid-template-columns:1fr}.calendar-portfolio-filterbar{align-items:stretch}.calendar-portfolio-filterbar label{flex:1 1 100%}.calendar-portfolio-filterbar .btn{width:100%}}


/* v11.79 JaxBNB Forms Operations */
.forms-template-section,.forms-live-section{margin-top:22px}.forms-template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.form-template-card h4{margin:10px 0 6px}.form-template-card p{min-height:54px}.forms-purpose-strip{margin-top:14px}.form-category-group{margin-top:18px}.form-category-group> .row{margin-bottom:8px}.form-live-card h3{margin:3px 0 0}.form-submission-card.needs-review{border-left:4px solid var(--warning,#d68b00)}.form-submission-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:10px}.public-form-page select{width:100%}
@media(max-width:700px){.forms-template-grid{grid-template-columns:1fr}.form-template-card p{min-height:0}.form-submission-fields{grid-template-columns:1fr}}

/* V11.80 — immediate owner lifecycle + transactional email */
.owner-archived-section > summary{cursor:pointer;display:flex;align-items:center;gap:10px;list-style:none;padding:2px 0;font-size:1rem}
.owner-archived-section > summary::-webkit-details-marker{display:none}
.owner-archived-section[open] > summary{margin-bottom:12px}
.owner-invite-row .bad-text{max-width:360px}
#manualAuthLinkOverlay .owner-booking-dialog{max-width:640px}
#manualAuthLinkText{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem;word-break:break-all}
@media(max-width:700px){#manualAuthLinkOverlay .owner-booking-dialog{max-width:none}.owner-archived-section > summary{padding:4px 0}}

/* V11.88 — inline tote template creation */
.tote-template-picker{align-items:stretch}.tote-template-picker select{flex:1;min-width:240px}.inline-tote-template{margin-top:12px;padding:16px;border:1px solid var(--line,#e2e8f0);border-radius:14px;background:var(--surface-soft,#f8fafc);display:grid;gap:13px}.inline-tote-template[hidden]{display:none}.inline-tote-template-head{align-items:flex-start}.inline-tote-template-head h3,.inline-template-linens h4{margin:0}.inline-tote-template-head p{margin:4px 0 0}.inline-template-parameter-grid{grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.inline-template-pool-row{align-items:center;gap:18px;flex-wrap:wrap}.inline-template-pool-row label{display:flex;align-items:center;gap:7px}.inline-template-linens{display:grid;gap:10px}.inline-template-linen-table{max-height:360px;overflow:auto;border:1px solid var(--line,#e2e8f0);border-radius:10px;background:#fff}.inline-template-linen-table table{margin:0}.inline-template-linen-table thead{position:sticky;top:0;background:#fff;z-index:1}
@media(max-width:720px){.tote-template-picker{flex-direction:column}.tote-template-picker select,.tote-template-picker .btn{width:100%;min-width:0}.inline-template-parameter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-tote-template-head{flex-direction:column}.inline-tote-template-head .btn{width:100%}}
@media(max-width:460px){.inline-template-parameter-grid{grid-template-columns:1fr}}


/* V11.90 — assigned-home scan filtering + mobile scan containment */
.view-scan,
.view-scan .scan-workstation,
.view-scan .scan-camera-card,
.view-scan .scan-lookup-card,
.view-scan .scan-result-panel,
.view-scan .scan-tote-card,
.view-scan .scan-context-grid,
.view-scan .scan-contents,
.view-scan .scan-history,
.view-scan .field,
.view-scan .row{min-width:0;max-width:100%;box-sizing:border-box}
.view-scan .scan-result-panel{width:100%;overflow:hidden}
.view-scan .scan-tote-card{width:100%;overflow:hidden}
.view-scan .scan-tote-card select,
.view-scan .scan-tote-card input,
.view-scan .scan-tote-card textarea{width:100%;max-width:100%;min-width:0}
.view-scan .scan-tote-card .row{flex-wrap:wrap}
.view-scan .scan-tote-card .row.space>*{min-width:0}
.view-scan .scan-tote-card h3,
.view-scan .scan-tote-card b,
.view-scan .scan-tote-card span,
.view-scan .scan-tote-card small,
.view-scan .scan-tote-card summary,
.view-scan .scan-tote-card option{overflow-wrap:anywhere;word-break:break-word}
@media(max-width:600px){
  .view-scan .scan-workstation{display:block;width:100%;max-width:100%}
  .view-scan .scan-camera-card,.view-scan .scan-lookup-card{width:100%;max-width:100%;padding:12px;overflow:hidden}
  .view-scan .scan-camera-card{margin-bottom:12px}
  .view-scan .scan-camera-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .view-scan .scan-camera-head h3,.view-scan .scan-camera-head p{min-width:0;overflow-wrap:anywhere}
  .view-scan .scan-camera-stage,.view-scan .scan-camera-stage video{width:100%;max-width:100%;min-height:220px}
  .view-scan .scan-camera-buttons{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .view-scan .scan-camera-buttons .btn{min-width:0;width:100%;padding-left:8px;padding-right:8px}
  .view-scan .scan-tote-card{padding:12px;gap:11px}
  .view-scan .scan-context-grid{grid-template-columns:1fr}
  .view-scan .scan-status-actions{display:grid;grid-template-columns:1fr;width:100%}
  .view-scan .scan-status-actions .btn{width:100%;min-width:0;max-width:100%}
  .view-scan .scan-contents>.row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}
  .view-scan .scan-history-row{grid-template-columns:1fr}
  .view-scan .scan-history-row small{grid-column:1}
}
\n\n/* V11.91 — hard mobile containment + clear tote origin/destination */\n@media(max-width:700px){\n  html,body,#app{width:100%;max-width:100%;overflow-x:hidden}\n  .view-scan{width:100%;max-width:100%;min-width:0;overflow-x:clip;padding-left:10px;padding-right:10px}\n  .view-scan .scan-workstation,\n  .view-scan .scan-camera-card,\n  .view-scan .scan-lookup-card,\n  .view-scan .scan-result-panel,\n  .view-scan .scan-tote-card{\n    width:100%!important;\n    max-width:100%!important;\n    min-width:0!important;\n    margin-left:0!important;\n    margin-right:0!important;\n    overflow-x:hidden!important;\n  }\n  .view-scan .scan-lookup-card>* ,\n  .view-scan .scan-tote-card>* ,\n  .view-scan .scan-context-grid>* ,\n  .view-scan .field>*{min-width:0;max-width:100%}\n  .view-scan .scan-tote-card>.row.space:first-child{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;width:100%}\n  .view-scan .scan-tote-card>.row.space:first-child>.pill{justify-self:end;white-space:nowrap}\n  .view-scan .scan-context-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important}\n  .view-scan .scan-context-grid>div{width:100%;min-width:0;overflow:hidden}\n  .view-scan .scan-context-grid b{display:block;width:100%;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}\n  .view-scan .field{width:100%;min-width:0}\n  .view-scan .field select,\n  .view-scan .field input,\n  .view-scan .field textarea{display:block;width:100%!important;min-width:0!important;max-width:100%!important;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}\n  .view-scan .scan-status-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important;width:100%!important;gap:10px}\n  .view-scan .scan-status-actions .btn{display:block;width:100%!important;min-width:0!important;max-width:100%!important;margin:0}\n  .view-scan .notice,.view-scan .warnbox{width:100%;max-width:100%;overflow-wrap:anywhere}\n  .view-scan .scan-location-current,.view-scan .scan-location-destination{border-color:#cbd5e1}\n}\n

/* V11.93 — editable room bed entries */
.room-bed-list{display:grid;gap:7px;margin-top:9px}
.room-bed-heading{font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.room-bed-entry{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}
.room-bed-entry>span{min-width:0;overflow-wrap:anywhere;text-transform:capitalize}
.room-bed-entry .btn{flex:0 0 auto}
@media(max-width:600px){
  .room-bed-entry{align-items:stretch;flex-direction:column}
  .room-bed-entry .btn{width:100%}
}

/* V11.94 — inline Linen Catalog creation inside property/tote template builder */
.inline-linen-item-creator{margin:14px 0;padding:16px;border:1px solid #dbe3ee;border-radius:14px;background:#f8fafc}
.inline-linen-item-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.inline-linen-header{gap:12px;align-items:flex-start;flex-wrap:wrap}
.inline-linen-header>.row{flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){
  .inline-linen-item-grid{grid-template-columns:minmax(0,1fr)}
  .inline-linen-header{display:block}
  .inline-linen-header>.row{margin-top:10px;justify-content:flex-start}
  .inline-linen-item-creator{padding:12px}
}

/* V11.95 — rules-based linen/supply quantities */
.linen-rule-editor{margin:14px 0;padding:16px;border:1px solid var(--line,#d9dee7);border-radius:14px;background:#f8fafc}
.linen-rule-grid{grid-template-columns:repeat(4,minmax(140px,1fr));gap:12px;margin-top:12px}
.room-supply-facts{margin-top:12px;padding:12px;border:1px solid var(--line,#d9dee7);border-radius:12px;background:#f8fafc}
.room-supply-facts .row{margin-top:8px;align-items:center;gap:14px;flex-wrap:wrap}
.room-supply-facts label{display:flex;align-items:center;gap:7px}
.inline-template-linen-table td:nth-child(2){max-width:190px;white-space:normal}
@media(max-width:760px){.linen-rule-grid{grid-template-columns:1fr 1fr}.room-supply-facts .row{align-items:stretch}.room-supply-facts label{width:100%;justify-content:space-between}.inline-template-linen-table{overflow-x:auto}.inline-template-linen-table table{min-width:650px}}
@media(max-width:480px){.linen-rule-grid{grid-template-columns:1fr}}

/* V11.97 linen catalog categories */
.linen-category-picker{display:flex;gap:8px;align-items:center;width:100%;flex-wrap:wrap}
.linen-category-picker select{flex:1 1 180px;min-width:0}
.inline-template-linen-table td:last-child{white-space:nowrap}
@media(max-width:700px){.linen-category-picker{align-items:stretch}.linen-category-picker .btn{width:100%}.inline-template-linen-table{overflow-x:auto;max-width:100%}}

/* V12.00 — polished single tote label workspace */
.qr-single-card{
  width:min(860px,calc(100% - 24px));
  max-width:860px;
  margin:32px auto;
  padding:24px;
  text-align:left;
}
.qr-single-head{
  display:flex;
  align-items:flex-start;
  gap:18px;
  padding-bottom:20px;
  margin-bottom:20px;
  border-bottom:1px solid var(--line);
}
.qr-single-title{min-width:0}
.qr-single-title h2{margin:1px 0 4px;font-size:24px;line-height:1.15}
.qr-single-title p{margin:0}
.eyebrow{font-size:11px;font-weight:800;letter-spacing:.09em;color:#64748b}
.qr-single-layout{
  display:grid;
  grid-template-columns:minmax(390px,1fr) minmax(250px,290px);
  gap:22px;
  align-items:stretch;
}
.qr-preview-panel{
  min-width:0;
  border:1px solid var(--line);
  border-radius:16px;
  background:#f8fafc;
  padding:18px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.qr-preview-caption{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:16px;
  color:#64748b;
  font-size:12px;
}
.qr-preview-caption b{color:var(--ink);font-size:12px}
.qr-single-card .qr-label{margin:0 auto}
.qr-single-actions{
  min-width:0;
  border:1px solid var(--line);
  border-radius:16px;
  background:#fff;
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.qr-single-actions h3{margin:3px 0 6px;font-size:20px}
.qr-single-actions p{margin:0;line-height:1.45}
.qr-label-meta{display:grid;gap:9px}
.qr-label-meta>div{
  border:1px solid var(--line);
  border-radius:11px;
  background:#f8fafc;
  padding:10px 11px;
  min-width:0;
}
.qr-label-meta span{display:block;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.qr-label-meta b{display:block;font-size:13px;line-height:1.25;overflow-wrap:anywhere}
.qr-single-buttons{display:grid;gap:9px;margin-top:auto}
.qr-single-buttons .btn{width:100%;justify-content:center}
@media(max-width:760px){
  .qr-single-card{width:calc(100% - 20px);margin:14px auto;padding:14px}
  .qr-single-head{gap:10px;padding-bottom:14px;margin-bottom:14px}
  .qr-single-title h2{font-size:20px}
  .qr-single-layout{display:block}
  .qr-preview-panel{padding:12px;overflow:hidden}
  .qr-single-actions{margin-top:12px;padding:15px}
}
@media print{
  .qr-single-card{width:auto!important;margin:0!important;padding:.04in!important;max-width:none!important}
  .qr-single-layout{display:block!important}
  .qr-preview-panel{display:block!important;border:0!important;background:#fff!important;padding:0!important}
  .qr-single-card .qr-label{margin:0!important}
}
.cleaner-job-access-card{border-left:4px solid var(--property-color,#2563eb)}
.cleaner-arrival-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}
.cleaner-arrival-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:14px;min-width:0}
.cleaner-arrival-grid span{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;margin-bottom:4px}
.cleaner-arrival-grid b{display:block;overflow-wrap:anywhere}
.cleaner-arrival-wide{grid-column:span 2}
.cleaner-arrival-wide .btn{margin-top:10px}
.door-code-value{font-size:1.35rem;letter-spacing:.08em}
.cleaner-access-notes{margin-top:14px;padding:14px;border-radius:14px;background:#fff7ed;border:1px solid #fed7aa;line-height:1.5}
@media(max-width:760px){.cleaner-arrival-grid{grid-template-columns:1fr 1fr}.cleaner-arrival-wide{grid-column:1/-1}}
@media(max-width:440px){.cleaner-arrival-grid{grid-template-columns:1fr}.cleaner-arrival-wide{grid-column:auto}}

/* V12.02 — Custom booking/revenue alert rules */
.custom-alert-rules-card{margin:16px 0 22px;overflow:hidden}
.custom-alert-head{gap:16px;align-items:flex-start}
.custom-alert-head h3{margin:2px 0 5px}
.custom-alert-rule-list{display:grid;gap:10px;margin-top:16px}
.custom-alert-rule-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:15px 16px;border:1px solid #e2e8f0;border-radius:14px;background:#fff}
.custom-alert-rule-disabled{opacity:.66;background:#f8fafc}
.custom-alert-rule-main{min-width:0;display:grid;gap:7px}
.custom-alert-rule-title{gap:8px;flex-wrap:wrap;align-items:center}
.custom-alert-rule-title b{font-size:15px;color:#0f172a}
.custom-alert-rule-summary{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:13px;color:#475569}
.custom-alert-rule-summary span{display:inline-flex;align-items:center;gap:4px}
.custom-alert-rule-actions{justify-content:flex-end;align-items:center;flex-wrap:wrap}
.custom-alert-editor{width:min(780px,100%);padding:20px 22px 22px}
.custom-alert-editor>.row:first-child{align-items:flex-start;margin-bottom:16px}
.custom-alert-editor>.row:first-child h2{margin:2px 0 4px}
.custom-alert-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.custom-alert-toggle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}
.custom-alert-toggle-grid .check-tile{align-items:flex-start;padding:12px}
.custom-alert-toggle-grid .check-tile span{display:grid;gap:2px}
.custom-alert-toggle-grid .check-tile small{display:block;color:#64748b;line-height:1.3}
.input-with-suffix{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch}
.input-with-suffix input{border-radius:10px 0 0 10px}
.input-with-suffix span{display:flex;align-items:center;padding:0 11px;border:1px solid var(--line);border-left:0;border-radius:0 10px 10px 0;background:#f8fafc;color:#64748b;font-size:13px;white-space:nowrap}
.custom-alert-property-scope{margin:14px 0;padding:14px;border:1px solid #e2e8f0;border-radius:14px;background:#f8fafc}
.custom-alert-property-scope h3{margin:0 0 3px}
.custom-alert-property-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:12px;max-height:250px;overflow:auto;padding-right:3px}
.custom-alert-property-list.disabled{opacity:.48}
.custom-alert-property-option{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border:1px solid #e2e8f0;border-radius:10px;background:#fff;font-size:13px;cursor:pointer}
.custom-alert-property-option input{width:17px;height:17px;flex:none;margin-top:1px}
.custom-alert-editor-actions{margin-top:16px}

@media(max-width:760px){
  .custom-alert-head{display:grid;grid-template-columns:1fr}
  .custom-alert-head>.row{width:100%;justify-content:flex-start}
  .custom-alert-rule-row{grid-template-columns:1fr}
  .custom-alert-rule-actions{justify-content:flex-start}
  .custom-alert-editor{width:100%;max-height:90vh;padding:17px 16px 20px;border-radius:18px 18px 0 0}
  .custom-alert-editor-grid{grid-template-columns:1fr}
  .custom-alert-toggle-grid{grid-template-columns:1fr}
  .custom-alert-property-scope>.row{display:grid;grid-template-columns:1fr;gap:10px}
  .custom-alert-property-list{grid-template-columns:1fr;max-height:220px}
}
.linen-rule-components{display:grid;gap:10px;margin-top:14px}
.linen-rule-component{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(150px,1fr) auto;gap:12px;align-items:end;padding:12px;border:1px solid var(--line,#d9dee7);border-radius:12px;background:#fff}
.linen-rule-component .field{margin:0}
.linen-rule-remove-field{min-width:82px}
@media(max-width:760px){.linen-rule-component{grid-template-columns:1fr 1fr}.linen-rule-remove-field{grid-column:1/-1}.linen-rule-remove-field label{display:none}.linen-rule-remove-field .btn{width:100%}}
@media(max-width:480px){.linen-rule-component{grid-template-columns:1fr}}


/* V12.08 — Turnover detail desktop layout polish */
@media(min-width:851px){
  .turnover-detail-grid{
    grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);
    grid-template-areas:
      "summary photos"
      "arrival arrival";
    align-items:start;
  }
  .turnover-summary-card{grid-area:summary}
  .turnover-photo-card{grid-area:photos}
  .cleaner-job-access-card{grid-area:arrival}
  .cleaner-job-access-card .cleaner-arrival-grid{
    grid-template-columns:minmax(280px,2fr) repeat(5,minmax(100px,1fr));
    align-items:stretch;
  }
  .cleaner-job-access-card .cleaner-arrival-wide{grid-column:auto}
}
.cleaner-arrival-grid b{word-break:normal}
.door-code-value{white-space:nowrap;overflow-wrap:normal!important;word-break:normal!important}
.door-code-empty{font-size:1rem;letter-spacing:0;white-space:nowrap;overflow-wrap:normal!important;word-break:normal!important;color:#475569}
@media(min-width:851px) and (max-width:1180px){
  .turnover-detail-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}
  .cleaner-job-access-card .cleaner-arrival-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cleaner-job-access-card .cleaner-arrival-wide{grid-column:span 2}
}
@media(max-width:850px){
  .turnover-detail-grid{
    grid-template-columns:1fr;
    grid-template-areas:"summary" "arrival" "photos";
  }
  .turnover-summary-card{grid-area:summary}
  .cleaner-job-access-card{grid-area:arrival}
  .turnover-photo-card{grid-area:photos}
}

/* V12.09 — turnover tote auto-assignment + fast blank-tote label workflow */
.turnover-tote-cell{display:flex!important;flex-direction:column;align-items:flex-start;gap:5px}
.turnover-tote-inline-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.turnover-tote-inline-actions .btn{min-height:30px;padding:5px 9px;font-size:12px}
@media(max-width:600px){.turnover-tote-inline-actions .btn{width:100%}}

/* V12.11 — room-based turnover photo batching */
.room-photo-checklist-shell{margin:14px 0}
.room-photo-checklist-title{align-items:flex-start;gap:16px}
.room-photo-checklist-title h3{margin-bottom:4px}
.room-batch-order-note{margin:12px 0 14px}
.room-photo-checklist-list{display:grid;gap:10px}
.room-photo-checklist-card{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.room-photo-checklist-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;background:#f8fafc;user-select:none}
.room-photo-checklist-card>summary::-webkit-details-marker{display:none}
.room-photo-checklist-card>summary:before{content:'›';font-size:25px;line-height:1;color:var(--muted);transition:transform .15s ease;flex:0 0 auto}
.room-photo-checklist-card[open]>summary:before{transform:rotate(90deg)}
.room-photo-checklist-card>summary>div:first-of-type{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.room-photo-checklist-card>summary>div:first-of-type b{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-photo-checklist-card>summary>div:first-of-type span{font-size:12px;color:var(--muted);text-transform:capitalize}
.room-photo-summary-progress{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.room-photo-summary-progress strong{font-size:15px}
.room-photo-checklist-body{padding:14px 16px 16px;display:grid;gap:14px}
.room-photo-stage{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.room-photo-stage.complete{background:#f7fcf8}
.room-photo-stage-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.room-photo-stage-head>div{display:flex;flex-direction:column;gap:2px}
.room-photo-stage-head>div span{font-size:12px;color:var(--muted)}
.room-photo-stage-hint{margin:8px 0 10px}
.room-photo-shot-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 12px}
.room-photo-shot-list li{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:7px 9px;border-radius:8px;background:#f8fafc;font-size:13px;line-height:1.35}
.room-photo-shot-list li.done{background:#eefbf2;color:#376145}
.room-shot-status{font-weight:900;flex:0 0 auto}
.room-batch-uploader{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.room-batch-uploader .field{margin-bottom:8px}
.room-batch-uploader input[type=file]{width:100%;max-width:none}
.room-batch-actions{align-items:center;gap:10px;flex-wrap:wrap}
.room-batch-actions .small{min-height:18px}
@media(max-width:760px){
  .room-photo-checklist-card>summary{padding:13px 12px;gap:10px}
  .room-photo-summary-progress .pill{display:none}
  .room-photo-checklist-body{padding:12px;gap:12px}
  .room-photo-stage{padding:12px}
  .room-photo-shot-list{grid-template-columns:1fr}
  .room-batch-actions{display:grid;grid-template-columns:1fr}
  .room-batch-actions .btn{width:100%}
}

/* V12.14 Scan accountability board */
.outstanding-totes-card{margin:16px 0}.outstanding-totes-head{gap:16px;align-items:flex-start}.outstanding-totes-head h3{margin:0 0 4px}.outstanding-totes-head p{margin:0}
.outstanding-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.outstanding-metric{border:1px solid var(--line,#dfe4ea);border-radius:14px;padding:12px 14px;background:var(--soft,#f7f9fb);display:flex;flex-direction:column;gap:4px}.outstanding-metric span{font-size:12px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.04em}.outstanding-metric b{font-size:24px}.outstanding-metric.warn{background:#fff8df;border-color:#f1d27a}.outstanding-metric.bad{background:#fff0f0;border-color:#efb3b3}
.outstanding-tote-list{display:flex;flex-direction:column;gap:8px}.outstanding-tote-row{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(0,2.5fr) auto;gap:14px;align-items:center;border:1px solid var(--line,#dfe4ea);border-radius:14px;padding:12px 14px}.outstanding-tote-row.warn{border-color:#e9c75b;background:#fffaf0}.outstanding-tote-row.bad{border-color:#e5a0a0;background:#fff5f5}.outstanding-tote-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.outstanding-tote-detail{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;font-size:13px;color:var(--muted,#6b7280)}.outstanding-empty{display:flex;flex-direction:column;gap:4px;padding:18px;border:1px dashed var(--line,#dfe4ea);border-radius:14px;text-align:center}.outstanding-empty span{color:var(--muted,#6b7280)}
@media(max-width:900px){.outstanding-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.outstanding-tote-row{grid-template-columns:1fr auto}.outstanding-tote-detail{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.outstanding-metrics{grid-template-columns:1fr 1fr}.outstanding-tote-row{grid-template-columns:1fr}.outstanding-tote-row .btn{width:100%}.outstanding-tote-detail{grid-template-columns:1fr}}

/* V12.15 — consolidated Needs Attention groups */
.attention-section-head{align-items:flex-start;gap:18px}
.attention-type-summary{margin-top:7px;font-weight:750;color:#64748b}
.attention-group-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;padding:0 2px;color:var(--muted);font-size:12px;font-weight:800}
.attention-group-toolbar>div{display:flex;gap:7px;flex-wrap:wrap}
.attention-groups{display:grid;gap:10px}
.attention-group{padding:0;overflow:hidden;border-left:5px solid #cbd5e1}
.attention-group.warn{border-left-color:#f59e0b}
.attention-group.bad{border-left-color:#b91c1c}
.attention-group-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;background:#fff;user-select:none}
.attention-group-summary::-webkit-details-marker{display:none}
.attention-group-summary:hover{background:#f8fafc}
.attention-group-copy{display:grid;gap:3px;min-width:0}
.attention-group-copy b{font-size:15px;color:#0f172a}
.attention-group-copy span{font-size:12px;color:var(--muted);line-height:1.3}
.attention-group-meta{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:0 0 auto}
.attention-group-priority{font-size:11px;font-weight:850;color:#64748b;white-space:nowrap}
.attention-group-priority.warn{color:#b45309}
.attention-group-priority.bad{color:#b91c1c}
.attention-chevron{font-size:18px;font-weight:900;color:#64748b;transition:transform .18s ease;line-height:1}
.attention-group[open] .attention-chevron{transform:rotate(180deg)}
.attention-group-items{display:grid;gap:9px;padding:10px 12px 12px;background:#f8fafc;border-top:1px solid var(--line)}
.attention-group-items .exception-card{background:#fff;margin:0}
.attention-group-items .exception-card.warn,.attention-group-items .exception-card.bad{border-left-width:4px}
@media(max-width:700px){
  .attention-section-head{align-items:flex-start}
  .attention-group-toolbar{align-items:flex-start;flex-direction:column}
  .attention-group-toolbar>div{width:100%}.attention-group-toolbar .btn{flex:1}
  .attention-group-summary{align-items:flex-start;padding:13px;gap:10px}
  .attention-group-meta{gap:6px}.attention-group-priority{display:none}
  .attention-group-items{padding:8px}
}

/* V12.17 — Needs Attention desktop layout polish */
#exceptionsSection.attention-section,
#exceptionsSection{
  position:relative;
}
#exceptionsSection .attention-section-head{
  display:block;
  margin-bottom:16px;
  padding:0;
}
#exceptionsSection .attention-section-head>div{
  width:100%;
}
#exceptionsSection .attention-title-row{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:6px;
}
#exceptionsSection .attention-title-row h2{
  margin:0;
}
#exceptionsSection .attention-section-count{
  min-width:34px;
  justify-content:center;
  font-size:12px;
}
#exceptionsSection .attention-section-head p{
  margin:0;
  max-width:820px;
  line-height:1.45;
}

/* Override the legacy desktop two-column exception grid. Group toolbar + groups are one flow. */
.view-today #exceptionsSection .exception-list{
  display:block!important;
  grid-template-columns:none!important;
  width:100%;
  overflow:visible;
}
#exceptionsSection .attention-group-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 12px;
  padding:12px 14px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  background:#f8fafc;
  color:#64748b;
}
#exceptionsSection .attention-group-toolbar-single{
  justify-content:flex-start;
}
#exceptionsSection .attention-type-summary{
  margin:0;
  font-size:12px;
  font-weight:800;
  color:#475569;
}
#exceptionsSection .attention-group-toolbar>div{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
#exceptionsSection .attention-group-toolbar .btn{
  min-height:36px;
  padding:8px 13px;
}
#exceptionsSection .attention-groups{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  width:100%;
}
#exceptionsSection .attention-group{
  width:100%;
  margin:0;
  border-radius:15px;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
#exceptionsSection .attention-group-summary{
  min-height:76px;
  padding:14px 16px;
}
#exceptionsSection .attention-group-copy b{
  font-size:15px;
  line-height:1.25;
}
#exceptionsSection .attention-group-copy span{
  margin-top:1px;
  font-size:12px;
}
#exceptionsSection .attention-group-meta{
  gap:10px;
}
#exceptionsSection .attention-group-priority{
  padding:5px 8px;
  border-radius:999px;
  background:#f1f5f9;
}
#exceptionsSection .attention-group-priority.warn{
  background:#fff7dd;
}
#exceptionsSection .attention-group-priority.bad{
  background:#fff0f0;
}
#exceptionsSection .attention-group-meta>.pill{
  min-width:32px;
  justify-content:center;
  font-weight:900;
}
#exceptionsSection .attention-chevron{
  width:22px;
  text-align:center;
}
#exceptionsSection .attention-group[open]{
  box-shadow:0 5px 18px rgba(15,23,42,.07);
}

@media(min-width:1024px){
  #exceptionsSection{
    padding:20px 22px 22px;
    border:1px solid #e2e8f0;
    border-radius:18px;
    background:#fff;
    box-shadow:0 1px 3px rgba(15,23,42,.04);
  }
}
@media(max-width:700px){
  #exceptionsSection .attention-title-row{
    align-items:center;
  }
  #exceptionsSection .attention-group-toolbar{
    align-items:stretch;
    flex-direction:column;
    padding:10px 11px;
  }
  #exceptionsSection .attention-group-toolbar>div{
    width:100%;
  }
  #exceptionsSection .attention-group-toolbar .btn{
    flex:1;
  }
  #exceptionsSection .attention-group-summary{
    min-height:0;
    padding:13px;
  }
}

/* V12.18 PriceLabs automatic sync */
.pricelabs-auto-sync-card{margin-bottom:18px}
.pricelabs-sync-metrics{margin-top:14px}
.pricelabs-sync-metrics>div{min-width:0}
.pricelabs-sync-date{font-size:1rem!important;line-height:1.25;overflow-wrap:anywhere}
.pricelabs-sync-actions{margin-top:14px;align-items:center;gap:14px;flex-wrap:wrap}
.pricelabs-auto-toggle{display:inline-flex;align-items:center;gap:8px;font-weight:700;cursor:pointer}
.pricelabs-auto-toggle input{width:18px;height:18px}
@media(max-width:760px){
  .pricelabs-sync-actions{align-items:stretch}
  .pricelabs-sync-actions .btn{width:100%}
  .pricelabs-auto-toggle{padding:8px 0}
}
.pricelabs-property-panel{margin:18px 0}
.pricelabs-property-metrics{margin-top:14px}
.pricelabs-property-footer{margin-top:12px;padding-top:10px;border-top:1px solid var(--border,#e5e7eb)}
.comp-benchmark-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.comp-benchmark-grid>div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2,#f8fafc);display:flex;flex-direction:column;gap:4px}
.comp-benchmark-grid span{font-size:12px;color:var(--muted)}
.comp-benchmark-grid b{font-size:15px}
@media(max-width:760px){.comp-benchmark-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* V12.21 PriceLabs property analytics */
.pricelabs-property-head{gap:14px;align-items:flex-start}
.pricelabs-property-head>.row{flex-wrap:wrap;justify-content:flex-end}
.pricelabs-market-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:12px}
.pricelabs-market-strip>div{padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2,#f8fafc);display:flex;flex-direction:column;gap:3px;min-width:0}
.pricelabs-market-strip span,.pricelabs-upcoming-rates span,.pricelabs-upcoming-rates small{font-size:10px;color:var(--muted)}
.pricelabs-market-strip b{font-size:15px}
.pricelabs-upcoming-wrap{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.pricelabs-upcoming-wrap>.row>div{display:grid;gap:2px}
.pricelabs-upcoming-rates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin-top:9px}
.pricelabs-upcoming-rates>div{padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2,#f8fafc);display:grid;gap:2px;min-width:0}
.pricelabs-upcoming-rates b{font-size:14px}
@media(max-width:1050px){.pricelabs-market-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.pricelabs-upcoming-rates{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.pricelabs-property-head{display:block}.pricelabs-property-head>.row{margin-top:10px;justify-content:flex-start}.pricelabs-market-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.pricelabs-upcoming-rates{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V12.22 PriceLabs property analytics UI cleanup */
.pricelabs-analytics-v1222{overflow:hidden}
.pricelabs-analytics-v1222 .pricelabs-property-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.pricelabs-analytics-v1222 .pricelabs-property-head h3{margin:0 0 6px}
.pricelabs-analytics-v1222 .pricelabs-property-head p{margin:0;max-width:760px;line-height:1.45}
.pricelabs-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;flex:0 0 auto}
.pricelabs-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:18px}
.pricelabs-kpi-grid-secondary{margin-top:12px}
.pricelabs-kpi-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;min-height:126px;padding:16px 17px;border:1px solid var(--border,#e2e8f0);border-radius:14px;background:var(--surface-2,#f8fafc)}
.pricelabs-kpi-grid-primary .pricelabs-kpi-card{background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.04)}
.pricelabs-kpi-label{font-size:12px;font-weight:750;line-height:1.3;color:var(--muted,#64748b);letter-spacing:.01em}
.pricelabs-kpi-value{font-size:25px;line-height:1.08;color:var(--text,#0f172a);letter-spacing:-.02em;overflow-wrap:anywhere}
.pricelabs-kpi-detail{font-size:12px;line-height:1.4;color:var(--muted,#64748b);margin-top:auto}
.pricelabs-position{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:800;margin-top:3px}
.pricelabs-position.below{background:#fff7ed;color:#9a3412}
.pricelabs-position.near{background:#eff6ff;color:#1d4ed8}
.pricelabs-position.above{background:#ecfdf5;color:#047857}
.pricelabs-market-section,.pricelabs-forward-section,.pricelabs-upcoming-wrap{margin-top:22px;padding-top:18px;border-top:1px solid var(--border,#e2e8f0)}
.pricelabs-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}
.pricelabs-section-heading h4{font-size:16px;line-height:1.2;margin:0 0 3px}
.pricelabs-section-heading p{margin:0;font-size:12px}
.pricelabs-percentile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:11px}
.pricelabs-percentile-card{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border-radius:12px;background:var(--surface-2,#f8fafc);border:1px solid transparent}
.pricelabs-percentile-card span,.pricelabs-forward-grid span{font-size:11px;color:var(--muted,#64748b)}
.pricelabs-percentile-card strong,.pricelabs-forward-grid strong{font-size:18px;line-height:1.15}
.pricelabs-market-source{margin-top:8px;font-size:11px;color:var(--muted,#64748b)}
.pricelabs-market-notice{padding:12px 14px;border:1px dashed var(--border,#cbd5e1);border-radius:12px;background:var(--surface-2,#f8fafc);color:var(--muted,#64748b);font-size:12px}
.pricelabs-forward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:11px}
.pricelabs-forward-grid>div{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border-radius:12px;background:var(--surface-2,#f8fafc)}
.pricelabs-upcoming-heading{align-items:center}
.pricelabs-upcoming-rates{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:11px}
.pricelabs-day-card{display:flex;flex-direction:column;gap:4px;min-width:0;min-height:88px;padding:11px 12px;border:1px solid var(--border,#e2e8f0);border-radius:12px;background:var(--surface-2,#f8fafc)}
.pricelabs-day-card.booked{background:#f1f5f9}
.pricelabs-day-top{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
.pricelabs-day-top>span:first-child{font-size:10px;color:var(--muted,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pricelabs-day-card strong{font-size:18px;line-height:1.1}
.pricelabs-day-card small{font-size:10px;color:var(--muted,#64748b);line-height:1.35}
.pricelabs-booked-pill{display:inline-flex!important;align-items:center;border-radius:999px;padding:2px 6px;font-size:9px!important;font-weight:800;color:#475569!important;background:#e2e8f0;white-space:nowrap}
.pricelabs-demand{margin-top:auto}
.pricelabs-property-footer{margin-top:16px;padding-top:12px;border-top:1px solid var(--border,#e2e8f0);font-size:11px;line-height:1.45;color:var(--muted,#64748b)}
@media(max-width:1100px){
  .pricelabs-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pricelabs-upcoming-rates{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:700px){
  .pricelabs-analytics-v1222 .pricelabs-property-head{display:block}
  .pricelabs-head-actions{justify-content:flex-start;margin-top:12px}
  .pricelabs-kpi-grid{grid-template-columns:1fr;gap:9px}
  .pricelabs-kpi-card{min-height:112px}
  .pricelabs-percentile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pricelabs-forward-grid{grid-template-columns:1fr}
  .pricelabs-upcoming-rates{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pricelabs-section-heading{align-items:flex-start;flex-direction:column;gap:5px}
  .pricelabs-upcoming-heading>span{align-self:flex-start}
}

/* V12.24 QuickBooks read-only category rules + visible disconnect */
.quickbooks-hero-top{align-items:flex-start;gap:18px}.quickbooks-hero-actions{flex-wrap:wrap;justify-content:flex-end}.danger-outline{border-color:#f0b4b4!important;color:#a51d1d!important;background:#fff!important}.danger-outline:hover{background:#fff5f5!important}.quickbooks-category-rules-card{margin-top:16px}.qb-rule-table{margin-top:14px;border:1px solid #e6eaf0;border-radius:14px;overflow:hidden}.qb-rule-head,.qb-rule-row{display:grid;grid-template-columns:minmax(280px,1.65fr) minmax(120px,.55fr) minmax(220px,1fr) 80px;gap:14px;align-items:center;padding:12px 14px}.qb-rule-head{background:#f7f9fc;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.qb-rule-row{border-top:1px solid #edf0f4}.qb-rule-row:first-of-type{border-top:0}.qb-rule-select{width:100%;min-width:0}
@media(max-width:900px){.quickbooks-hero-top{display:block}.quickbooks-hero-actions{margin-top:14px;justify-content:flex-start}.qb-rule-head{display:none}.qb-rule-row{grid-template-columns:1fr 1fr;padding:14px}.qb-rule-row>div:nth-child(3){grid-column:1/-1}.qb-rule-row>div:nth-child(4){justify-self:end}}
@media(max-width:560px){.qb-rule-row{grid-template-columns:1fr}.qb-rule-row>div:nth-child(3),.qb-rule-row>div:nth-child(4){grid-column:auto}.qb-rule-row>div:nth-child(4){justify-self:start}.quickbooks-hero-actions .btn{width:100%}}

/* V12.26 Clearing management statement breakdown */
.clearing-statement-card{margin-top:16px}.statement-total{text-align:right;min-width:180px}.statement-total span{display:block;font-size:12px;color:var(--muted,#6b7280);text-transform:uppercase;letter-spacing:.05em}.statement-total b{display:block;font-size:30px;line-height:1.1;margin-top:4px}.statement-mini-metrics{margin:18px 0}.statement-category-list{border-top:1px solid rgba(148,163,184,.22)}.statement-category-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 2px;border-bottom:1px solid rgba(148,163,184,.16)}.statement-category-row>div{display:flex;flex-direction:column;gap:3px}.statement-category-row span{font-size:12px;color:var(--muted,#6b7280)}.statement-category-row strong{font-size:15px;white-space:nowrap}.statement-footer{margin-top:14px}@media(max-width:720px){.clearing-statement-card>.row.space{align-items:flex-start}.statement-total{text-align:left;min-width:0}.statement-total b{font-size:25px}.statement-category-row{align-items:flex-start}}
.staff-access-panel .financial-access{grid-column:1/-1;margin-top:0;padding-top:10px;border-top:1px solid var(--border,#e5e7eb);justify-self:start;min-width:0}.staff-access-panel .financial-access b{white-space:normal}.staff-access-panel .financial-access .switch-track{flex-shrink:0}
.user-financial-access-box{margin-top:18px;padding:14px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:rgba(15,23,42,.025)}
.user-financial-access-box>span{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px;opacity:.65}
.user-financial-access-box p{margin:10px 0 0}

/* V12.30 — Devices / UniFi Protect */
.devices-page{max-width:1500px;margin:0 auto}.devices-head{align-items:flex-end}.device-tabs{margin:12px 0 18px}.device-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.device-kpis .card{padding:16px}.device-kpis span,.device-kpis small{display:block;color:var(--muted)}.device-kpis b{display:block;font-size:26px;line-height:1.15;margin:5px 0}.device-section{margin-top:22px}.device-integration-card{margin-bottom:20px}.device-key-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}.device-key-row .field{margin:0}.unifi-console-list{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.unifi-console-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,340px) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f5}.unifi-console-row small{display:block;color:var(--muted);margin-top:3px}.camera-wall{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.camera-wall.compact{grid-template-columns:repeat(4,minmax(0,1fr))}.camera-tile{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;text-align:left;padding:0;box-shadow:0 1px 2px rgba(15,23,42,.04)}button.camera-tile{cursor:pointer;color:inherit}.camera-snapshot{aspect-ratio:16/9;background:#0f172a;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:12px;overflow:hidden}.camera-snapshot img{width:100%;height:100%;object-fit:cover;display:block}.camera-tile-copy{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px}.camera-tile-copy b,.camera-tile-copy span{display:block}.camera-tile-copy>div>span{font-size:11px;color:var(--muted);margin-top:3px}.camera-admin-fields{padding:0 12px 12px;display:grid;gap:8px}.camera-admin-fields label{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center}.device-property-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.device-property-card{position:relative;display:grid;grid-template-columns:6px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;padding:13px;text-align:left;cursor:pointer;color:inherit}.device-property-card:hover{border-color:#b8c3d2;transform:translateY(-1px)}.device-property-accent{width:6px;height:38px;border-radius:99px;display:block}.device-property-card b,.device-property-card small{display:block}.device-property-card small{color:var(--muted);margin-top:3px}.device-property-health{display:flex;gap:10px;align-items:center;font-size:11px;color:var(--muted)}.thermostat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.thermostat-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:16px;text-align:left;color:inherit}.thermostat-card>span,.thermostat-card>small{display:block;color:var(--muted)}button.thermostat-card{cursor:pointer}.thermostat-temp{font-size:42px;font-weight:900;line-height:1;margin:16px 0 8px}.thermostat-standard-card{margin-top:20px}.thermostat-standard-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}.thermostat-standard-grid>div{border:1px solid var(--line);border-radius:11px;padding:12px}.thermostat-standard-grid b,.thermostat-standard-grid span,.thermostat-standard-grid small{display:block}.thermostat-standard-grid span{font-size:11px;font-weight:800;margin:4px 0}.thermostat-standard-grid small{color:var(--muted)}.automation-property-list{display:grid;gap:8px}.automation-property-row{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;text-align:left;color:inherit;cursor:pointer}.automation-property-row b,.automation-property-row small{display:block}.automation-property-row small{color:var(--muted);margin-top:3px}.property-device-title{display:flex;align-items:center;gap:12px;margin:14px 0 18px}.property-device-title .device-property-accent{height:50px}.property-device-title h2{margin:2px 0}.device-automation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.device-empty{display:flex;align-items:center;justify-content:space-between;gap:14px}.device-empty h3{margin-bottom:4px}
@media(max-width:1200px){.camera-wall.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.thermostat-standard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.device-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.camera-wall,.camera-wall.compact,.thermostat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-automation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.unifi-console-row{grid-template-columns:1fr}.device-key-row{grid-template-columns:1fr}}
@media(max-width:640px){.device-kpis,.camera-wall,.camera-wall.compact,.thermostat-grid,.device-property-grid,.thermostat-standard-grid,.device-automation-grid{grid-template-columns:1fr}.devices-head{align-items:flex-start}.device-empty{display:block}.device-empty .btn{margin-top:10px}}

/* V12.34 — Command Center */
.cc-section{margin-top:24px}
.cc-section-head{align-items:flex-end;gap:18px;margin-bottom:12px}
.cc-section-head h2{margin:3px 0 4px}
.cc-summary-pills{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.cc-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.cc-health-card{appearance:none;width:100%;min-width:0;text-align:left;background:var(--card,#fff);color:inherit;border:1px solid var(--border,#e5e7eb);border-left:4px solid #22c55e;border-radius:16px;padding:15px;cursor:pointer;box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease}
.cc-health-card:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(15,23,42,.08)}
.cc-health-card.warn{border-left-color:#f59e0b}.cc-health-card.bad{border-left-color:#ef4444}
.cc-health-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.cc-health-card-head>div{display:flex;align-items:center;gap:8px;min-width:0}.cc-health-card-head b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-health-occupancy{display:block;font-size:12px;color:var(--muted,#6b7280);margin:8px 0 10px}
.cc-health-reasons{display:flex;flex-direction:column;gap:4px;min-height:38px}.cc-health-reasons span{font-size:12px;line-height:1.35}
.cc-health-foot{display:flex;justify-content:space-between;gap:10px;margin-top:11px;padding-top:9px;border-top:1px solid var(--border,#e5e7eb);font-size:11px;color:var(--muted,#6b7280)}.cc-health-foot span:last-child{text-align:right}
.cc-daily-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.cc-daily-column{padding:14px;min-width:0}.cc-daily-column h3{margin:0}.cc-daily-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.cc-daily-row{appearance:none;width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;text-align:left;padding:9px;border:1px solid var(--border,#e5e7eb);border-radius:11px;background:transparent;color:inherit;cursor:pointer}.cc-daily-row:hover{background:rgba(100,116,139,.07)}.cc-daily-row.cc-same-day{border-color:#f59e0b}.cc-daily-row.cc-overdue{border-color:#ef4444}
.cc-daily-row>div:nth-child(2){min-width:0}.cc-daily-row b,.cc-daily-row span{font-size:12px}.cc-daily-row>div:nth-child(2)>b,.cc-daily-row>div:nth-child(2)>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-daily-row>div:nth-child(2)>span{color:var(--muted,#6b7280);margin-top:2px}.cc-daily-meta{text-align:right}.cc-daily-meta b,.cc-daily-meta span{display:block}.cc-daily-meta span{color:var(--muted,#6b7280);margin-top:2px}.cc-empty{padding:18px 8px;color:var(--muted,#6b7280);font-size:12px;text-align:center}
.cc-readiness-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.cc-readiness-card{appearance:none;width:100%;text-align:left;color:inherit;cursor:pointer;border-left:4px solid #f59e0b}.cc-readiness-card.good{border-left-color:#22c55e}.cc-readiness-card.bad{border-left-color:#ef4444}.cc-readiness-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.cc-readiness-head>div{min-width:0}.cc-readiness-head>div>b{margin-left:7px}.cc-readiness-head>div>span:last-child{display:block;margin:5px 0 0 18px;font-size:12px;color:var(--muted,#6b7280)}
.cc-ready-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}.cc-ready-step{display:flex;align-items:center;gap:5px;min-width:0;border:1px solid var(--border,#e5e7eb);border-radius:9px;padding:7px 8px;font-size:11px}.cc-ready-step b{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(245,158,11,.13);flex:0 0 auto}.cc-ready-step.good b{background:rgba(34,197,94,.14)}.cc-ready-step small{color:var(--muted,#6b7280);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-readiness-devices{font-size:11px;color:var(--muted,#6b7280);margin-top:10px}
.cc-search-trigger{appearance:none;border:1px solid var(--border,#e5e7eb);background:var(--card,#fff);color:var(--muted,#6b7280);border-radius:10px;height:38px;min-width:210px;padding:0 9px;display:flex;align-items:center;gap:7px;cursor:pointer}.cc-search-trigger span:nth-child(2){flex:1;text-align:left;font-size:12px}.cc-search-trigger kbd{font:inherit;font-size:10px;border:1px solid var(--border,#e5e7eb);border-radius:5px;padding:2px 5px;background:rgba(100,116,139,.06)}
.cc-search-overlay{position:fixed;inset:0;z-index:10050;background:rgba(15,23,42,.48);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:11vh 18px 18px}.cc-search-dialog{width:min(720px,100%);max-height:70vh;background:var(--card,#fff);color:inherit;border-radius:16px;box-shadow:0 24px 70px rgba(0,0,0,.25);overflow:hidden}.cc-search-input-wrap{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:13px 14px;border-bottom:1px solid var(--border,#e5e7eb)}.cc-search-input-wrap input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;font-size:16px;width:100%;color:inherit}.cc-search-input-wrap button{border:0;background:transparent;color:var(--muted,#6b7280);cursor:pointer}.cc-search-results{overflow:auto;max-height:calc(70vh - 60px);padding:8px}.cc-search-hint{padding:25px;text-align:center;color:var(--muted,#6b7280);font-size:13px}.cc-search-result{appearance:none;width:100%;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left;border-radius:10px;padding:9px;cursor:pointer}.cc-search-result:hover{background:rgba(100,116,139,.08)}.cc-search-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(100,116,139,.1)}.cc-search-result>div{min-width:0}.cc-search-result>div>b,.cc-search-result>div>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-search-result>div>span{font-size:11px;color:var(--muted,#6b7280);margin-top:2px}
@media(max-width:1350px){.cc-health-grid,.cc-daily-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-search-trigger{min-width:150px}.cc-search-trigger kbd{display:none}}
@media(max-width:760px){.cc-section{margin-top:20px}.cc-section-head{align-items:flex-start;flex-direction:column}.cc-summary-pills{justify-content:flex-start}.cc-health-grid,.cc-daily-grid,.cc-readiness-grid{grid-template-columns:1fr}.cc-ready-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.cc-health-foot{flex-direction:column}.cc-health-foot span:last-child{text-align:left}.cc-search-trigger{width:38px;min-width:38px;padding:0;justify-content:center}.cc-search-trigger span:nth-child(2),.cc-search-trigger kbd{display:none}.cc-search-overlay{padding:8vh 10px 10px}.cc-search-dialog{max-height:80vh}.cc-search-results{max-height:calc(80vh - 60px)}}

/* V12.35 Automation Engine */
.automation-center{display:grid;gap:4px}.automation-worker-hero{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:start;overflow:hidden}.automation-worker-hero>div:first-child{max-width:900px}.automation-worker-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.automation-worker-kpis{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:4px}.automation-worker-kpis>div{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fafbfc}.automation-worker-kpis span,.automation-worker-kpis small{display:block;color:var(--muted);font-size:11px}.automation-worker-kpis b{display:block;margin:4px 0;font-size:18px}.automation-rule-group{margin-top:18px}.automation-rule-group>h4{margin:0 0 8px}.automation-rules-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.automation-rule-card{border:1px solid var(--line);border-radius:13px;padding:14px;background:#fff}.automation-rule-card.disabled{background:#fafafa}.automation-rule-title{align-items:flex-start}.automation-rule-title b,.automation-rule-title small{display:block}.automation-rule-title small{color:var(--muted);font-weight:400;margin-top:4px;line-height:1.4;max-width:640px}.automation-rule-controls{display:grid;grid-template-columns:auto auto auto minmax(100px,140px) minmax(130px,160px) auto;gap:8px;align-items:end;margin-top:12px}.automation-rule-threshold{margin:0}.automation-rule-threshold label{font-size:10px}.automation-rule-threshold input,.automation-rule-threshold select{min-height:38px}.automation-two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.automation-condition-list,.automation-log-list{display:grid;gap:8px}.automation-condition-card,.automation-log-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:12px}.automation-condition-card b,.automation-condition-card span,.automation-condition-card small,.automation-log-card b,.automation-log-card span,.automation-log-card small{display:block}.automation-condition-card>span,.automation-log-card>span{margin-top:5px}.automation-condition-card small,.automation-log-card small{color:var(--muted);margin-top:5px}.automation-error{color:#b42318!important;font-weight:700}.automation-safety-note{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;margin-top:18px}.automation-safety-note span{color:var(--muted);line-height:1.45}
@media(max-width:1100px){.automation-rule-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.automation-rule-controls .btn{align-self:end}.automation-worker-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.automation-rules-grid,.automation-two-col{grid-template-columns:1fr}.automation-worker-hero{grid-template-columns:1fr}.automation-worker-actions{justify-content:flex-start}.automation-rule-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.automation-worker-kpis,.automation-rule-controls{grid-template-columns:1fr}.automation-safety-note{grid-template-columns:1fr}}

/* V12.36 Property Operations */
.property-ops-tabs{margin:14px 0 18px;display:flex;flex-wrap:wrap;gap:8px}
.ops-hub-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.ops-hub-metrics>div{background:var(--panel,#fff);border:1px solid var(--line,#dfe5ea);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:4px}
.ops-hub-metrics span{font-size:12px;color:var(--muted,#667085);text-transform:uppercase;letter-spacing:.03em}
.ops-hub-metrics b{font-size:26px}
.ops-board-row{width:100%;border:1px solid var(--line,#dfe5ea);background:var(--panel,#fff);border-radius:12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;cursor:pointer}
.ops-board-row>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.ops-board-row>div:last-child{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.ops-board-row:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(20,35,55,.08)}
.vendor-directory-grid,.vendor-property-grid,.inspection-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vendor-directory-card,.vendor-property-card{border:1px solid var(--line,#dfe5ea);border-radius:14px;padding:14px;background:var(--panel,#fff);text-align:left;display:flex;flex-direction:column;gap:7px}
.vendor-directory-card{cursor:pointer}.vendor-directory-card:hover{box-shadow:0 6px 18px rgba(20,35,55,.08)}
.vendor-mini-stats,.vendor-compliance-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.vendor-mini-stats span{font-size:12px;color:var(--muted,#667085)}
.inspection-template-item-editor{border:1px solid var(--line,#dfe5ea);border-radius:14px;padding:14px;margin:10px 0;background:var(--panel,#fff)}
.inspection-run-page{max-width:1180px;margin:0 auto}.inspection-score{display:inline-flex;align-items:baseline;gap:10px;padding:10px 14px;border-radius:12px;background:rgba(39,174,96,.1);margin:8px 0 16px}.inspection-score b{font-size:28px}.inspection-section{margin:18px 0}.inspection-section>h3{margin-bottom:10px}
.inspection-result-card{border:1px solid var(--line,#dfe5ea);border-left:4px solid var(--line,#dfe5ea);border-radius:12px;padding:13px;margin:9px 0;background:var(--panel,#fff)}
.inspection-result-card.result-pass{border-left-color:#27ae60}.inspection-result-card.result-fail{border-left-color:#c0392b}.inspection-result-card.result-na{border-left-color:#7f8c8d}
.inspection-result-buttons{display:flex;gap:6px;flex-wrap:wrap}.inspection-result-card textarea{margin-top:10px;min-height:70px}.inspection-evidence-strip{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:9px 0}.inspection-evidence-strip img{width:84px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--line,#dfe5ea)}
@media(max-width:800px){.ops-hub-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.vendor-directory-grid,.vendor-property-grid,.inspection-template-grid{grid-template-columns:1fr}.ops-board-row{align-items:flex-start;flex-direction:column}.ops-board-row>div:last-child{justify-content:flex-start}.inspection-result-card>.row{align-items:flex-start;flex-direction:column}.inspection-result-buttons{margin-top:8px}}
/* V12.37 Intelligence & Reporting */
.intelligence-head{align-items:flex-end;gap:16px}.intelligence-tabs{margin:14px 0 18px}.intelligence-metrics{margin-bottom:18px}.intelligence-section-head{margin:22px 0 10px;gap:14px}.intelligence-table-wrap{overflow:auto}.intelligence-table-wrap table{min-width:900px}.intelligence-table-wrap td small,.intelligence-table-wrap th small{display:block;margin-top:4px;color:var(--muted)}.reorder-row{background:rgba(245,158,11,.07)}.bad-text{color:#b42318!important;font-weight:700}.click-row{cursor:pointer}.click-row:hover{background:rgba(15,23,42,.035)}.incident-list{display:grid;gap:12px}.incident-card{width:100%;text-align:left;border-left:5px solid #94a3b8;cursor:pointer}.incident-card.severity-critical{border-left-color:#b42318}.incident-card.severity-high{border-left-color:#d97706}.incident-card.severity-medium{border-left-color:#2563eb}.incident-card.severity-low{border-left-color:#64748b}.incident-card h3{margin:4px 0 6px}.incident-timeline{display:grid;gap:0;margin:10px 0 18px}.incident-timeline>div{display:grid;grid-template-columns:18px 1fr;gap:10px;position:relative}.incident-timeline>div>span{width:10px;height:10px;border-radius:50%;background:var(--accent,#334155);margin-top:7px;position:relative;z-index:2}.incident-timeline>div:not(:last-child)>span:after{content:"";position:absolute;width:2px;background:#e2e8f0;left:4px;top:10px;height:calc(100% + 36px)}.incident-timeline section{padding:0 0 18px}.incident-timeline p{margin:3px 0}.incident-timeline small{color:var(--muted)}.activity-feed-list{display:grid;gap:8px}.activity-feed-row{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;cursor:pointer}.activity-feed-row:hover{background:rgba(15,23,42,.025)}.activity-feed-dot{width:9px;height:9px;border-radius:50%;background:var(--property-color,#64748b)}.activity-feed-row div{min-width:0}.activity-feed-row b,.activity-feed-row span{display:block}.activity-feed-row div span{color:var(--muted);font-size:12px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-feed-row time{font-size:12px;color:var(--muted);white-space:nowrap}.wide-dialog{max-width:980px!important;width:min(980px,calc(100vw - 30px))!important}.wide-dialog table{width:100%}.wide-dialog td input{min-width:90px}
@media(max-width:760px){.intelligence-head{align-items:stretch;flex-direction:column}.intelligence-head .analytics-inline-control{width:100%}.intelligence-tabs{overflow-x:auto;white-space:nowrap}.intelligence-section-head{align-items:stretch;flex-direction:column}.intelligence-section-head select{width:100%}.activity-feed-row{grid-template-columns:10px 1fr}.activity-feed-row time{grid-column:2}.intelligence-table-wrap{margin-left:-14px;margin-right:-14px;border-left:0;border-right:0;border-radius:0}}

/* V12.38 — Dashboard operational drilldowns */
.cc-health-card,.cc-readiness-card{cursor:pointer}
.cc-health-card:hover,.cc-readiness-card:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.09)}
.cc-drilldown-dialog{width:min(860px,100%);max-height:min(88vh,900px)}
.cc-drilldown-subtitle{margin:5px 0 0;font-size:12px}
.cc-drilldown-body{padding:18px 22px 24px}
.cc-drilldown-loading{padding:34px;text-align:center;color:var(--muted,#64748b)}
.cc-drilldown-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:rgba(100,116,139,.05);margin-bottom:16px}
.cc-drilldown-summary>b,.cc-drilldown-summary>div>b{display:block;font-size:15px}
.cc-drilldown-summary>span,.cc-drilldown-summary>div>span{display:block;margin-top:3px;font-size:12px;color:var(--muted,#64748b)}
.cc-drilldown-section{margin-top:18px}
.cc-drilldown-section>h4{margin:0 0 4px;font-size:14px}
.cc-drilldown-section>p{margin:0 0 9px;font-size:12px}
.cc-drilldown-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;border:1px solid var(--border,#e5e7eb);border-radius:13px;background:var(--card,#fff);margin-top:8px}
.cc-drilldown-item.is-overdue{border-color:rgba(220,38,38,.35);background:rgba(254,242,242,.66)}
.cc-drilldown-item-main{min-width:0;flex:1}
.cc-drilldown-item-main>b{display:block;margin-top:6px;font-size:14px}
.cc-drilldown-item-main>p{margin:4px 0 5px;font-size:12px;line-height:1.45;color:var(--muted,#64748b)}
.cc-drilldown-tags{gap:5px;flex-wrap:wrap}
.cc-arrival-action{padding:13px 14px;border:1px solid rgba(220,38,38,.2);border-left:4px solid #dc2626;border-radius:12px;background:rgba(254,242,242,.6);margin-top:8px}
.cc-arrival-action b{display:block;margin:7px 0 2px;font-size:14px}
.cc-arrival-action p{margin:7px 0 0;font-size:12px;line-height:1.45}
.cc-readiness-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}
.cc-readiness-detail-grid .cc-ready-step{min-height:48px}
.cc-tracking-task{padding-top:4px;border-top:1px dashed var(--border,#e5e7eb)}
.cc-arrival-clear{margin-top:16px}
@media(max-width:700px){
  .cc-drilldown-overlay{padding:0;place-items:end center}
  .cc-drilldown-dialog{width:100%;max-height:92vh;border-radius:18px 18px 0 0}
  .cc-drilldown-body{padding:15px 16px 22px}
  .cc-drilldown-summary,.cc-drilldown-item{align-items:flex-start;flex-direction:column}
  .cc-drilldown-item>.btn{width:100%}
  .cc-readiness-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
