/* Lavender Lotus Studio 9.3.12 — final navigation, reflow, pricing, and contract polish. */
html,body{min-height:100%;width:100%;max-width:100%;overflow-x:hidden!important}
.app-shell{width:100%!important;max-width:100%!important;min-height:100dvh!important;align-items:start!important}
.main-shell{min-width:0!important;width:100%!important;max-width:100%!important;overflow-x:clip!important}
.content{min-width:0!important;width:100%!important;max-width:none!important}
.content>*,.panel,.panel-pad,.stack{min-width:0!important;max-width:100%!important}

/* Keep logo/status fixed and let only the menu body scroll when a short screen needs it. */
@media (min-width:901px){
  body{--lls-sidebar-expanded:226px;--lls-sidebar-collapsed:82px}
  .app-shell{grid-template-columns:var(--lls-sidebar-expanded) minmax(0,1fr)!important}
  body.sidebar-collapsed .app-shell{grid-template-columns:var(--lls-sidebar-collapsed) minmax(0,1fr)!important}
  .sidebar{position:sticky!important;top:0!important;height:100dvh!important;max-height:100dvh!important;min-height:0!important;overflow:hidden!important;display:flex!important;flex-direction:column!important;padding-bottom:12px!important}
  .brand-block{flex:0 0 auto!important}
  .primary-nav{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain;scrollbar-width:none;padding-bottom:10px!important}
  .primary-nav::-webkit-scrollbar{width:0;height:0}
  .sidebar-bottom{flex:0 0 auto!important;margin-top:8px!important;background:inherit!important;position:relative!important;z-index:2}
  body.sidebar-collapsed .sidebar{width:auto!important}
  body.sidebar-collapsed .primary-nav{overflow-y:auto!important}
  .topbar{position:sticky!important;top:0!important;z-index:35!important}
}

/* Settings should use the whole workspace and never look like a narrow floating strip. */
.settings-grid{width:100%!important;max-width:none!important;gap:20px!important;align-items:start!important}
.settings-grid>.stack,.settings-grid>aside.stack{width:100%!important;max-width:none!important}
.settings-grid .panel{width:100%!important}
.settings-grid .form-grid{width:100%!important}
@media (min-width:1400px){.settings-grid{grid-template-columns:minmax(0,1.55fr) minmax(330px,.65fr)!important}}
@media (min-width:901px) and (max-width:1399px){.settings-grid{grid-template-columns:minmax(0,1fr)!important}.settings-grid>aside.stack{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.settings-grid .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media (max-width:900px){.settings-grid,.settings-grid>aside.stack,.settings-grid .form-grid{grid-template-columns:minmax(0,1fr)!important}}

/* Pricing remains a real table on desktop, starts flush-left, and reflows instead of hanging off the side. */
.pricing-desktop-table{width:100%!important;max-width:100%!important;margin:0!important;overflow:hidden!important}
.pricing-desktop-table .data-table-wrap{width:100%!important;max-width:100%!important;overflow-x:auto!important;scrollbar-gutter:stable}
.pricing-table{width:100%!important;max-width:100%!important;min-width:980px!important;margin:0!important}
.pricing-table th,.pricing-table td{vertical-align:middle!important}
.pricing-table .table-primary{min-width:0!important}
.pricing-table .table-primary strong,.pricing-table .table-primary span{overflow-wrap:anywhere}
@media (min-width:1180px){
  .pricing-table{min-width:0!important;table-layout:fixed!important}
  .pricing-table th:nth-child(1){width:27%}.pricing-table th:nth-child(2){width:10%}.pricing-table th:nth-child(3){width:7%}
  .pricing-table th:nth-child(4){width:12%}.pricing-table th:nth-child(5){width:11%}.pricing-table th:nth-child(6){width:10%}
  .pricing-table th:nth-child(7){width:7%}.pricing-table th:nth-child(8){width:7%}.pricing-table th:nth-child(9){width:4%}
  .pricing-table th,.pricing-table td{padding-left:9px!important;padding-right:9px!important;white-space:normal!important}
}

/* Contract / proposal must remain readable at browser zoom and narrow widths. */
.contract-info-grid,.contract-payment-grid,.rental-table,.integrated-contract,.proposal-address-details{min-width:0!important;max-width:100%!important}
.contract-term p,.proposal-notes p,.proposal-terms p,.contract-title-block p{overflow-wrap:anywhere;white-space:pre-line}
.contract-acceptance-certificate{margin:24px 0;padding:22px;border:1px solid rgba(87,62,75,.16);border-radius:18px;background:#f5f8f3}
.contract-acceptance-certificate .certificate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.contract-acceptance-certificate .certificate-grid>div{display:grid;gap:4px;padding:12px;border:1px solid rgba(87,62,75,.10);border-radius:12px;background:rgba(255,255,255,.72)}
.contract-acceptance-certificate span{font-size:.62rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#836f79}
.contract-acceptance-certificate strong{font-size:.82rem;color:#352930;overflow-wrap:anywhere}
.contract-acceptance-certificate .signature-image{display:block;max-width:320px;max-height:110px;margin-top:14px;object-fit:contain;object-position:left center}
@media(max-width:700px){.contract-acceptance-certificate .certificate-grid{grid-template-columns:1fr}.rental-table-head,.rental-table-row{grid-template-columns:52px minmax(0,1fr)!important}.rental-table-head>*:nth-child(n+3),.rental-table-row>*:nth-child(n+3){grid-column:2}}

/* Modal controls remain reachable even at 125–200% browser zoom. */
.dialog-layer{padding:max(10px,2vh) max(10px,2vw)!important;overflow:auto!important}
.modal{max-height:calc(100dvh - 20px)!important;min-width:0!important}
.modal form{min-height:0!important;max-height:inherit!important}
.modal-body{min-height:0!important;overflow:auto!important;overscroll-behavior:contain}
.modal-footer{flex:0 0 auto!important}

/* Customer pages are allowed to zoom/reflow naturally. */
@media(max-width:820px){.proposal-body,.proposal-cover-copy{min-width:0!important}.proposal-sections-grid{grid-template-columns:1fr!important}}
