/* Final responsive layer — loaded last so every CRM module follows one system. */
:root{--tap:46px;--mobile-gutter:16px}html{max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{max-width:100%;overflow-x:hidden}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,.primary,.ghost,.nav-item{min-height:42px}:where(button,a,input,select,textarea):focus-visible{outline:3px solid rgba(53,151,98,.28);outline-offset:2px}.page{width:100%;max-width:1680px;margin-inline:auto}.table-wrap{max-width:100%;border-radius:12px;-webkit-overflow-scrolling:touch}.modal{overscroll-behavior:contain}
@media(max-width:760px){:root{--tap:48px}body.menu{overflow:hidden}body.menu::before{content:"";position:fixed;inset:0;background:rgba(5,20,13,.5);backdrop-filter:blur(2px);z-index:19}aside{width:min(86vw,320px);padding:calc(20px + env(safe-area-inset-top)) 14px calc(18px + env(safe-area-inset-bottom));box-shadow:18px 0 50px rgba(0,0,0,.24);overflow-y:auto}.brand{padding:0 8px 18px}.nav-item{min-height:50px;padding:12px 14px;font-size:14px}.user{position:static;margin-top:24px;padding-bottom:8px}main{width:100%;min-width:0;margin-left:0}header{height:auto;min-height:0;padding:calc(10px + env(safe-area-inset-top)) var(--mobile-gutter) 10px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:8px 10px;align-items:center;top:0}header .mobile{display:grid;width:48px;height:48px;place-items:center;border-radius:12px;background:#eef5f0;color:var(--green);font-size:23px}.header-title{min-width:0}.header-title h1{font-size:18px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-title p{display:none}.header-actions{gap:7px;align-items:center}.header-actions .ghost,.line-manager-link{display:none!important}.header-actions .primary,.language-switch{min-width:48px;min-height:48px;padding:0 12px;display:grid;place-items:center;border-radius:12px}.header-actions .primary{font-size:0}.header-actions .primary::before{content:"+";font-size:24px;line-height:1}.division-switch{position:static!important;inset:auto!important;transform:none!important;grid-column:1/-1;width:100%;margin:0!important;display:grid!important;grid-template-columns:1fr 1fr;gap:4px;padding:4px!important;border-radius:13px;background:#edf3ef}.division-switch button,.division-switch a{min-height:44px!important;width:100%;display:grid;place-items:center;border-radius:10px!important;white-space:nowrap}.page{padding:16px var(--mobile-gutter) calc(92px + env(safe-area-inset-bottom))!important}h1{font-size:22px}.panel-title{align-items:flex-start;gap:8px}.panel-title h2{font-size:16px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.stat{min-width:0;padding:15px}.stat strong{font-size:23px}.stat small,.stat em{font-size:10px}.grid2{grid-template-columns:minmax(0,1fr);gap:14px}.panel,.card{min-width:0}.panel{padding:16px}.toolbar{flex-direction:column;align-items:stretch;margin-bottom:12px}.toolbar>*{width:100%!important;min-width:0!important}.search,input,select,textarea{min-height:48px;font-size:16px!important;padding:11px 12px}textarea{min-height:104px}.primary,.ghost,.form-actions button{min-height:48px;padding:11px 14px}.table-wrap{margin-inline:-2px;background:linear-gradient(90deg,#fff 88%,rgba(22,76,53,.08));box-shadow:inset -10px 0 16px -16px rgba(0,0,0,.45)}.data-table{min-width:720px;font-size:12px}.data-table th,.data-table td{padding:12px 10px;white-space:nowrap}.kanban{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 14px}.column{flex:0 0 min(82vw,310px);min-height:380px;scroll-snap-align:start}.deal{padding:14px}.deal select{min-height:38px;font-size:12px!important}.modal{padding:0;align-items:flex-end!important}.modal.open{display:flex;justify-content:center}.modal-box{width:100%;max-width:none;max-height:92dvh;overflow-y:auto;border-radius:22px 22px 0 0;padding:25px var(--mobile-gutter) calc(22px + env(safe-area-inset-bottom))}.close{position:sticky;float:right;top:0;right:0;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:#eef3ef;z-index:3}.modal h2{font-size:21px;padding-right:50px;margin-bottom:18px}.form-grid{grid-template-columns:minmax(0,1fr);gap:12px}.form-grid .full{grid-column:auto}.form-actions{position:sticky;bottom:calc(-22px - env(safe-area-inset-bottom));z-index:2;margin:20px calc(-1 * var(--mobile-gutter)) calc(-22px - env(safe-area-inset-bottom));padding:12px var(--mobile-gutter) calc(12px + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--line)}.form-actions>*{flex:1}.quote-item{grid-template-columns:1fr 1fr;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fafcfb}.quote-item>*:first-child{grid-column:1/-1}.quote-summary{grid-template-columns:1fr 1fr;text-align:left}.calculator-head,.calculator-layout,.calc-layout{grid-template-columns:1fr!important;display:grid!important;gap:14px!important}.calculator-head{align-items:start!important}.calculator-head>*{min-width:0}.calc-main,.calc-side{min-width:0;width:100%!important}.calc-side{position:static!important;top:auto!important}.margin-item{grid-template-columns:1fr 1fr!important;gap:8px!important;padding:12px!important;border:1px solid var(--line);border-radius:12px}.quote-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}.quote-actions>*{width:100%!important;min-height:48px}.document-modal{padding:0!important;overflow:auto!important;align-items:flex-start!important}.document-modal .modal-box{border-radius:0;max-height:none;overflow:visible}.lead-command,.lead-card,.home-lead-card,.home-lead-controls{grid-template-columns:1fr!important;display:grid!important;gap:12px!important}.lead-card button,.home-lead-card button,.home-lead-controls button{min-height:48px;width:100%}.live-lead-alert{left:12px!important;right:12px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;width:auto!important;max-width:none!important}.project-map-layout{grid-template-columns:1fr!important}.map-stage{height:310px!important;min-height:310px!important}.project-map-feed{max-height:none!important}.home-division-hero{padding:20px!important}.home-division-hero h2{font-size:26px!important;line-height:1.2}.home-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px!important}.home-metrics>*{min-width:0;padding:14px!important}.control-hero{padding:20px!important;border-radius:16px}.control-hero-stats{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory}.control-hero-stats>div{flex:0 0 138px;scroll-snap-align:start}.control-actions{display:grid!important;grid-template-columns:1fr!important}.control-actions>*{width:100%;min-height:48px}#toast{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));text-align:center}}
@media(max-width:380px){:root{--mobile-gutter:12px}.stats,.home-metrics{grid-template-columns:1fr 1fr!important}.stat{padding:12px}.stat strong{font-size:20px}.header-actions{gap:4px}.header-actions .primary,.language-switch{min-width:44px;width:44px;padding:0}}
@media(min-width:761px){.header-actions{flex-wrap:wrap;justify-content:flex-end}.page{padding-bottom:48px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Login is intentionally app-like on phones, with no decorative panel blocking the form. */
@media(max-width:720px){
  body:has(.shell>.visual){display:block!important;min-height:100dvh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:#f4f3ef!important}
  .shell:has(>.visual){width:100%!important;min-height:100dvh!important;margin:0;border-radius:0!important;grid-template-columns:1fr!important;box-shadow:none!important}
  .shell>.visual{min-height:150px!important;padding:24px 22px!important}
  .shell>.visual .visual-copy{left:22px!important;right:80px!important;bottom:20px!important}
  .shell>.visual .visual-copy h1{font-size:22px!important;line-height:1.28!important;margin:7px 0 0!important}
  .shell>.visual .visual-copy p,.shell>.visual .roof-lines{display:none!important}
  .shell>.form{padding:30px 22px 40px!important;justify-content:flex-start!important}
  .shell>.form h2{font-size:26px!important}.shell>.form>p{font-size:13px!important;margin-bottom:22px!important}.shell>.form label{font-size:13px!important}
  .shell>.form input{min-height:52px!important;font-size:16px!important}.shell>.form button{min-height:52px!important;font-size:15px!important}
  .login-language-switch{position:absolute!important;top:calc(16px + env(safe-area-inset-top))!important;right:16px!important;min-height:44px!important}
  .shell .secure{font-size:11px!important}
}

/* Sign-in typography and spacing follow the owner workspace. */
body:has(.shell>.visual){min-height:100dvh;background:#edf2ee;color:#20362a;line-height:1.65}
.shell:has(>.visual){box-shadow:0 18px 70px #153b2515;border:1px solid #dfe7e1;background:#fff;min-height:550px}
.shell>.form h2{font-size:28px}.shell>.form>p{font-size:14px;line-height:1.75;color:#617369}.shell>.form label{font-size:14px}.shell>.form button{font-size:15px;min-height:48px}.shell>.form input{min-height:50px;font-size:16px}.shell .secure{font-size:12px;line-height:1.8;color:#617369}.shell .error{height:auto;min-height:24px;font-size:13px;line-height:1.7;margin-top:12px}.shell>.visual .visual-copy h1{line-height:1.5;letter-spacing:0}.shell>.visual .visual-copy p{font-size:14px}.shell>.form button:disabled{opacity:.65;cursor:wait}.login-language-switch{background:#1d6145!important;border:1px solid #3e7b60!important;color:#fff!important;min-height:44px;border-radius:9px!important}
@media(max-width:720px){.shell:has(>.visual){min-height:100dvh!important}.shell>.visual{min-height:205px!important;padding:26px 22px!important}.shell>.visual .visual-copy{left:22px!important;right:22px!important;bottom:22px!important}.shell>.visual .visual-copy h1{font-size:23px!important;line-height:1.5!important;margin-top:8px!important}.shell>.form{padding:30px 22px!important}.shell>.form>p{font-size:14px!important}.shell>.form label{font-size:14px!important}.shell .secure{font-size:12px!important}.shell>.visual .logo{padding-right:60px}.login-language-switch{top:16px!important;right:16px!important}}

@media(max-width:720px){.shell>.visual{min-height:0!important;padding:26px 22px!important}.shell>.visual .visual-copy{position:relative!important;inset:auto!important;margin-top:30px!important}.shell>.visual .visual-copy h1{margin-bottom:0!important}.shell>.visual .visual-copy small{font-size:10px!important}}
