:root{--contractor-accent:#0b2746;--contractor-bg:#f4f7fb;--contractor-card:#fff;--contractor-border:#dfe6ee;--contractor-muted:#667085}
body.contractor-app{background:var(--contractor-bg);padding-bottom:max(88px,calc(72px + env(safe-area-inset-bottom)))}
body.contractor-app .app-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--contractor-border)}
body.contractor-app .app-shell{width:min(1180px,calc(100% - 28px));margin:0 auto;padding-top:18px}
body.contractor-app .page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
body.contractor-app .page-head h1{margin:.2rem 0 .45rem;font-size:clamp(1.65rem,4vw,2.45rem)}
body.contractor-app .page-head p{max-width:760px}
body.contractor-app .card{box-shadow:0 8px 28px rgba(11,39,70,.055);border-color:var(--contractor-border)}
body.contractor-app input,body.contractor-app textarea,body.contractor-app select{font-size:16px;max-width:100%}
body.contractor-app textarea{resize:vertical}
body.contractor-app .btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
body.contractor-app .chantier-nav{position:sticky;top:68px;z-index:35;padding:8px 0;background:linear-gradient(var(--contractor-bg) 82%,rgba(244,247,251,0));overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none}
body.contractor-app .chantier-nav::-webkit-scrollbar{display:none}
body.contractor-app .chantier-nav a{white-space:nowrap;background:#fff;min-height:42px;display:inline-flex;align-items:center}
body.contractor-app .kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
body.contractor-app .kpi{min-width:0}
body.contractor-app .task-card{scroll-margin-top:128px}
body.contractor-app .task-card label,body.contractor-app .thread-reply label{display:block;margin-top:14px}
body.contractor-app .task-card input[type=range]{width:100%;min-height:40px}
body.contractor-app .task-card input[type=file],body.contractor-app .thread-reply input[type=file]{width:100%;padding:10px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}
body.contractor-app .msg-bubble{overflow-wrap:anywhere}
body.contractor-app .msg-files a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.contractor-app .thread-card{scroll-margin-top:128px}
.contractor-install{display:none}
.contractor-install.is-visible{display:inline-flex}
.contractor-offline-banner{position:fixed;left:12px;right:12px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:120;background:#7c2d12;color:white;border-radius:12px;padding:10px 14px;text-align:center;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.contractor-mobile-nav{display:none}
@media(max-width:900px){
 body.contractor-app .app-shell{width:min(100% - 20px,760px);padding-top:12px}
 body.contractor-app .page-head{align-items:stretch;flex-direction:column}
 body.contractor-app .page-head>.btn{width:100%}
 body.contractor-app .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.contractor-app .kpis .kpi:last-child{grid-column:1/-1}
 body.contractor-app .section-line{gap:10px;align-items:flex-start}
 body.contractor-app .thread-body{padding:12px}
 body.contractor-app .msg-bubble{max-width:94%}
 .contractor-mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;z-index:100;left:0;right:0;bottom:0;padding:7px 6px calc(7px + env(safe-area-inset-bottom));background:rgba(255,255,255,.98);backdrop-filter:blur(14px);border-top:1px solid var(--contractor-border);box-shadow:0 -8px 30px rgba(11,39,70,.09)}
 .contractor-mobile-nav a{min-width:0;color:#344054;text-decoration:none;text-align:center;font-size:11px;line-height:1.1;padding:5px 2px;border-radius:10px}
 .contractor-mobile-nav b{display:block;font-size:20px;line-height:1.2;margin-bottom:3px;color:var(--contractor-accent)}
 .contractor-mobile-nav a:active{background:#eef4f9}
}
@media(max-width:600px){
 body.contractor-app .app-header{padding-left:12px;padding-right:12px}
 body.contractor-app .brand>span:last-child{font-size:.95rem}
 body.contractor-app .card.clean{padding:15px;border-radius:14px}
 body.contractor-app .chantier-nav{top:58px;margin-top:8px;margin-bottom:10px}
 body.contractor-app .kpi{padding:12px}
 body.contractor-app .kpi b{font-size:21px}
 body.contractor-app .section-line{display:flex;flex-direction:column}
 body.contractor-app .section-line>.pill,body.contractor-app .section-line>strong{align-self:flex-start}
 body.contractor-app .task-meta{gap:6px}
 body.contractor-app .thread-head{padding:12px}
 body.contractor-app .thread-body{padding:10px}
 body.contractor-app .msg-row{margin:8px 0}
 body.contractor-app .msg-bubble{max-width:100%;padding:10px 11px}
 body.contractor-app .msg-files{display:grid;grid-template-columns:1fr}
 body.contractor-app .msg-files .btn{width:100%;justify-content:flex-start}
 body.contractor-app .contact-grid{grid-template-columns:1fr}
 body.contractor-app form .btn.primary{width:100%;margin-top:10px}
 body.contractor-app #planning .section-line{padding-right:2px}
}
@media(display-mode:standalone){
 body.contractor-app .app-header{padding-top:env(safe-area-inset-top)}
 .contractor-install{display:none!important}
}


/* V3.10.0 - confort chantier */
@media(max-width:720px){.contractor-shell{padding-left:12px!important;padding-right:12px!important}.contractor-bottom-nav a{min-width:0}.contractor-bottom-nav small{font-size:10px}.thread-card{border-radius:15px}.task-card{scroll-margin-top:84px}.chantier-nav{position:sticky;top:0;z-index:40;background:rgba(248,250,252,.96);backdrop-filter:blur(12px);padding:8px 0;flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none}.chantier-nav::-webkit-scrollbar{display:none}.chantier-nav a{white-space:nowrap}}
