﻿:root{--cp-bg:#f4f7fb;--cp-surface:#fff;--cp-text:#132238;--cp-muted:#6b7890;--cp-brand:#008b82;--cp-brand-dark:#05645f;--cp-border:#dfe7f1;--cp-shadow:0 18px 45px rgba(26,45,75,.10)}
html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--cp-bg)!important;color:var(--cp-text)}.fl-main{min-height:calc(100vh - 160px)}
body>main,.manage-property-app,.add-property-app,.category-property-page,.pm-page,.pe-page,.customer-property-detail{width:100%!important;max-width:none!important;margin:0!important;padding-left:clamp(18px,4vw,72px)!important;padding-right:clamp(18px,4vw,72px)!important;box-sizing:border-box}
.manage-property-content,.add-property-form,.category-property-list,.pm-stats,.pm-tabs,.pm-section-title,.pm-unit-list,.property-detail-layout,.pe-page>form,.pe-messages{width:100%!important;max-width:1480px!important;margin-left:auto!important;margin-right:auto!important}
.manage-property-hero,.add-property-hero,.category-property-page>header,.pm-hero,.customer-property-detail>header,.pe-top{margin-left:calc(clamp(18px,4vw,72px)*-1)!important;margin-right:calc(clamp(18px,4vw,72px)*-1)!important;padding-left:clamp(18px,5vw,92px)!important;padding-right:clamp(18px,5vw,92px)!important;border-radius:0!important}
.manage-property-content{padding-top:34px!important}.property-category-cards{display:grid!important;grid-template-columns:repeat(3,minmax(220px,1fr))!important;gap:22px!important}.property-category-cards>a{min-height:190px!important;width:auto!important}.manage-property-add{position:fixed!important;right:28px!important;bottom:28px!important;z-index:20}
.add-property-form{display:grid!important;grid-template-columns:minmax(300px,.72fr) minmax(520px,1.7fr)!important;gap:24px!important;align-items:start!important}.property-upload-card{grid-column:1}.compact-fields{grid-column:2}.property-form-card:not(.compact-fields){grid-column:1/-1}.location-card{grid-column:1}.property-approvals-card{grid-column:2}.floor-units-container,.property-form-errors,.property-submit-bar{grid-column:1/-1}.property-submit-bar{position:static!important;background:transparent!important;padding:16px 0 35px!important}.property-submit-bar button{max-width:460px;margin:auto}
.category-property-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important;padding-top:32px!important}.category-property-list article{width:auto!important;margin:0!important;min-height:190px!important;display:grid!important;grid-template-columns:220px 1fr!important}.property-card-arrow{display:none!important}.property-card-copy{padding:28px!important}.property-card-copy:after{content:'Manage property';display:inline-flex;margin-top:14px;color:var(--cp-brand);font-weight:700}
.pm-page{padding-bottom:60px!important}.pm-hero{min-height:330px!important}.pm-back,.add-property-hero>a,.category-property-page>header>a,.customer-property-detail>header>a,.pe-top>a{font-size:0!important;text-decoration:none!important}.pm-back:after,.add-property-hero>a:after,.category-property-page>header>a:after,.customer-property-detail>header>a:after,.pe-top>a:after{content:'Back';font-size:15px!important;font-weight:700;padding:10px 16px;border-radius:12px;background:rgba(255,255,255,.16);color:inherit}.pm-stats{margin-top:-42px!important;position:relative}.pm-unit-list{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:22px!important}.pm-unit-card{margin:0!important}.pm-unit-footer>a{display:none!important}
.property-detail-layout{grid-template-columns:minmax(360px,.8fr) minmax(520px,1.4fr)!important;gap:28px!important}.detail-card,.property-detail-visual,.pm-unit-card,.property-form-card,.property-upload-card,.location-card,.property-approvals-card{box-shadow:var(--cp-shadow)!important;border:1px solid var(--cp-border)!important}
.pe-page{padding-top:26px!important}.pe-groups{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:20px!important}.pe-group{margin:0!important}.tenant-modal-body{background:var(--cp-bg)!important}.tenant-backdrop{display:none!important}.tenant-sheet{position:relative!important;inset:auto!important;transform:none!important;max-width:1100px!important;margin:36px auto!important;border-radius:24px!important;box-shadow:var(--cp-shadow)!important}.tenant-handle{display:none!important}
.fl-footer{margin-top:70px}.mob-nav{display:none!important}
@media(max-width:1100px){.add-property-form{grid-template-columns:1fr!important}.property-upload-card,.compact-fields,.location-card,.property-approvals-card{grid-column:1!important}.pm-unit-list,.category-property-list,.pe-groups{grid-template-columns:1fr!important}.property-detail-layout{grid-template-columns:1fr!important}}
@media(max-width:760px){body>main,.manage-property-app,.add-property-app,.category-property-page,.pm-page,.pe-page,.customer-property-detail{padding-left:14px!important;padding-right:14px!important}.manage-property-hero,.add-property-hero,.category-property-page>header,.pm-hero,.customer-property-detail>header,.pe-top{margin-left:-14px!important;margin-right:-14px!important;padding-left:18px!important;padding-right:18px!important}.property-category-cards{grid-template-columns:1fr!important}.category-property-list article{grid-template-columns:110px 1fr!important}.pm-stats{grid-template-columns:repeat(3,1fr)!important}.pm-tabs{overflow-x:auto!important}.tenant-sheet{margin:14px!important}.fl-footer{padding-bottom:78px}.mob-nav{display:flex!important}}

/* Shared-layout repair: property pages must never expose hidden drawer markup. */
.fl-main > .manage-property-app,
.fl-main > .add-property-app,
.fl-main > .category-property-page,
.fl-main > .pm-page,
.fl-main > .pe-page,
.fl-main > .customer-property-detail,
.fl-main > .tenant-sheet { min-width: 0; }
.profile-drawer:not(.open),
.mobile-profile-menu:not(.open),
.profile-drawer-overlay:not(.show),
.mobile-profile-menu-overlay:not(.show),
.drawer-overlay:not(.show) { visibility: hidden; pointer-events: none; }

.category-property-list .property-card-link{display:block;min-width:0;color:inherit;text-decoration:none;border-radius:24px;outline:none;transition:transform .22s ease,box-shadow .22s ease}
.category-property-list .property-card-link:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(26,45,75,.14)}
.category-property-list .property-card-link:focus-visible{box-shadow:0 0 0 4px rgba(8,127,121,.22),0 22px 50px rgba(26,45,75,.14)}
.category-property-list .property-card-link article{height:100%;box-sizing:border-box;overflow:hidden}
.property-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.property-card-heading h2{margin:0;min-width:0;overflow-wrap:anywhere}
.property-card-heading>span{flex:0 0 auto;padding:7px 11px;border-radius:999px;background:#e6f6f3;color:#008b82;font-size:12px;font-weight:800}
.property-card-copy:after{display:none!important}

@media(max-width:760px){
  .category-property-list .property-card-link article{grid-template-columns:96px minmax(0,1fr)!important;min-height:150px!important}
  .property-card-copy{padding:20px!important}
  .property-card-heading{display:block}
  .property-card-heading>span{display:inline-flex;margin-top:8px}
}


/* Shared footer and mobile viewport repair v12 */
html, body { min-height: 100%; }
body { min-height: 100dvh; }
.floorlo-app {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.floorlo-app > .fl-main {
  flex: 1 0 auto;
  min-height: 0;
}
.floorlo-app > .fl-footer {
  flex: 0 0 auto;
  width: 100%;
  margin-top: 56px;
  position: relative;
  z-index: 1;
}
.fl-footer .df-inner,
.fl-footer .df-bottom {
  width: 100%;
  box-sizing: border-box;
}

/* Property management detail: the shared desktop shell reserves a 30px
   content gutter above the first child. Pull this edge-to-edge hero mostly
   into that gutter, but not all the way -- pulling the full 30px let the
   hero's top-right action buttons ride up under the site header. */
@media (min-width: 801px) {
  .floorlo-app > .fl-main > .pm-page {
    margin-top: -16px !important;
  }
}

@media (max-width: 800px) {
  .floorlo-app > .fl-main > .pm-page {
    margin-top: -10px !important;
    padding-top: 0 !important;
  }
}

/* Keep the floating action clear of the footer on larger screens. */
.manage-property-app { padding-bottom: 110px !important; }
.manage-property-add { transition: transform .2s ease, box-shadow .2s ease; }
.manage-property-add:hover { transform: translateY(-2px); }

@media (max-width: 768px) {
  body { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
  .floorlo-app > .fl-footer {
    margin-top: 40px;
    padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
  }

  /* The base stylesheet hides the desktop footer on mobile. Show a compact,
     readable footer above the fixed bottom navigation instead. */
  .fl-footer .df-inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 28px 20px;
    padding: 38px 20px 28px;
  }
  .fl-footer .df-brand-col {
    grid-column: 1 / -1;
  }
  .fl-footer .df-brand-col p {
    max-width: 520px;
  }
  .fl-footer .df-links-col:last-child {
    grid-column: 1 / -1;
  }
  .fl-footer .df-bottom {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    padding: 18px 20px 24px;
  }

  /* Do not let the Add Property action cover the footer or mobile nav. */
  .manage-property-app {
    padding-bottom: 24px !important;
  }
  .manage-property-add {
    position: static !important;
    width: min(100%, 420px);
    min-height: 56px;
    margin: 28px auto 0;
    display: flex !important;
    justify-content: center;
  }
  .manage-property-content { padding-bottom: 0 !important; }

  .mob-nav {
    z-index: 300 !important;
  }
}

@media (max-width: 520px) {
  .fl-footer .df-inner {
    grid-template-columns: 1fr;
    gap: 24px;
    padding-inline: 18px;
  }
  .fl-footer .df-brand-col,
  .fl-footer .df-links-col:last-child {
    grid-column: auto;
  }
  .fl-footer .df-links-col h5 { margin-bottom: 10px; }
  .fl-footer .df-links-col a,
  .fl-footer .df-links-col p { margin-top: 7px; }
  .fl-footer .df-bottom { padding-inline: 18px; }
}


/* Footer alignment repair v13 — keep navigation clearance inside the footer. */
html, body {
  min-height: 100%;
  margin: 0;
}
body {
  min-height: 100dvh;
  padding-bottom: 0 !important;
}
.floorlo-app {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
.floorlo-app > .fl-main {
  flex: 1 0 auto;
  width: 100%;
  min-height: 0;
}
.floorlo-app > .fl-footer {
  flex: 0 0 auto;
  width: 100%;
  margin-top: auto !important;
  padding-bottom: 0;
  box-sizing: border-box;
  background: linear-gradient(180deg, #e9f4f3 0%, #dcece9 100%) !important;
}
.fl-footer .df-inner,
.fl-footer .df-bottom {
  max-width: 1480px;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  box-sizing: border-box;
}

@media (max-width: 768px) {
  body {
    padding-bottom: 0 !important;
  }
  .floorlo-app > .fl-footer {
    margin-top: 36px !important;
    /* The fixed mobile navigation occupies this space. Keeping it on the
       footer preserves the dark background instead of producing a white gap. */
    padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .fl-footer .df-inner {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 34px 20px 26px !important;
  }
  .fl-footer .df-brand-col,
  .fl-footer .df-links-col,
  .fl-footer .df-links-col:last-child {
    grid-column: 1 !important;
    min-width: 0;
  }
  .fl-footer .df-brand-col p {
    max-width: 100%;
  }
  .fl-footer .df-bottom {
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 18px 20px 0 !important;
    margin: 0 auto !important;
  }
  .fl-footer .df-bottom p {
    margin: 0;
  }
  .mob-nav {
    display: flex !important;
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: env(safe-area-inset-bottom, 0px) !important;
    transform: translateX(-50%) !important;
    width: min(100%, 430px) !important;
    height: 82px !important;
    margin: 0 !important;
    z-index: 300 !important;
  }
  .mob-nav.hide {
    transform: translateX(-50%) translateY(115%) !important;
  }
}

@media (max-width: 430px) {
  .floorlo-app > .fl-footer {
    padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .fl-footer .df-inner {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  .fl-footer .df-bottom {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
  .mob-nav {
    width: 100% !important;
    border-radius: 24px 24px 0 0 !important;
  }
}
