/* Responsive 2CN — surcharge dédiée */
.brand>div{min-width:0}.brand b,.brand small{display:block}.brand small{margin-top:3px;color:#dfc39a}
.top{gap:16px}.top .btn{flex-shrink:0}.row{min-height:72px}.row button{flex-shrink:0}
.doc{width:210mm;max-width:100%;min-height:297mm;margin:0 auto;color:#2d160e}
.doc footer{margin-top:55px;padding-top:18px;border-top:1px solid var(--line)}
.doc h2{margin:0}.doc-head{align-items:flex-start}
.document-actions{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-bottom:18px}
.document-actions label{flex:1;max-width:310px;margin:0}.document-actions .btn{white-space:nowrap}
.pdf-actions{display:flex;gap:9px}.btn.secondary{background:#fff;color:var(--brown);border:1px solid var(--brown)}
.pdf-actions{flex-wrap:wrap;justify-content:flex-end}.btn.danger{background:#9d2d20;color:#fff}.danger-text{color:#a3291e}
.row-actions{display:flex;align-items:center;gap:4px}.row-actions .icon{width:40px;height:40px;border-radius:10px;background:#fbf5ed;color:var(--brown)}
.service-description{white-space:pre-line;line-height:1.45;min-width:220px}
.line-grid textarea{min-height:78px;resize:vertical}
.shell{min-height:100vh;display:flex;flex-direction:column}.main{flex:1}.app-footer{margin-left:245px;padding:18px 30px;text-align:center;color:var(--muted);font-size:13px;border-top:1px solid var(--line)}.app-footer a{color:var(--brown);font-weight:700;text-decoration:none}.app-footer a:hover{text-decoration:underline}
.top-actions,.qr-actions,.project-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.btn.compact{min-height:auto;padding:10px 14px}.btn.full{width:100%;margin-top:12px}.toolbar{display:flex;gap:10px;margin:0 0 18px}.toolbar .search{flex:1;max-width:none}.toolbar select{max-width:230px}.row[data-doc]{width:100%;background:#fff;border-width:0 0 1px;text-align:left;color:inherit}.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.kpi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;box-shadow:0 8px 28px rgba(73,31,16,.05)}.kpi span,.kpi small{display:block;color:var(--muted)}.kpi strong{display:block;font-size:25px;margin:8px 0;color:var(--brown)}.alert-kpi strong{color:#a3291e}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.mini-project{display:grid;grid-template-columns:1fr auto;gap:7px;width:100%;padding:13px 0;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;color:inherit}.mini-project i{grid-column:1/-1;height:6px;background:#eee1d5;border-radius:9px;overflow:hidden}.mini-project em{display:block;height:100%;background:var(--brown)}.qr-layout,.settings-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:18px}.qr-card{text-align:center}.qr-card>img{display:block;width:min(100%,320px);margin:0 auto 18px;border-radius:18px}.contact-preview{width:100%;height:540px;border:1px solid var(--line);border-radius:16px;margin:12px 0;background:#fff}.public-url{word-break:break-all}.hint{color:var(--muted);font-size:13px}.settings-save{grid-column:1/-1;justify-self:start}.password-panel{max-width:720px;margin-top:18px}.payment-history{margin-top:16px}.payment-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.paid-line{font-size:15px;color:var(--muted)}.project-actions{justify-content:flex-end;margin-bottom:12px}.project-update-form{margin-top:14px}.timeline{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.update-card{position:relative}.update-card>.icon{position:absolute;right:9px;top:9px}.check{display:flex;align-items:center;gap:9px}.check input{width:auto;min-height:auto}

@media(max-width:900px){
 body{font-size:16px;overflow-x:hidden}
 .mobile-head{box-shadow:0 4px 18px rgba(63,28,16,.08)}
 .mobile-head .brand b{font-size:13px;letter-spacing:.08em}
 .main{width:100%;overflow:hidden}
 .top{align-items:flex-start;margin-bottom:18px}
 .top h1{font-size:25px;line-height:1.15}
 .top p{font-size:14px;line-height:1.4}
 .top .btn{padding:11px 13px;font-size:14px}
 .grid{grid-template-columns:1fr 1fr;gap:10px}
 .kpi-grid{grid-template-columns:1fr 1fr}.dashboard-grid,.qr-layout,.settings-grid{grid-template-columns:1fr}.timeline{grid-template-columns:1fr 1fr}.settings-save{grid-column:auto}
 .card{padding:15px;border-radius:15px}.card strong{font-size:23px}
 .panel{padding:16px;border-radius:16px}
 .toolbar{flex-direction:column}.search{max-width:none}
 .row{padding:13px 14px;align-items:flex-start;flex-wrap:wrap}
 .row .grow{flex:1 1 calc(100% - 70px)}
 .row>.price{margin-left:auto}
 .project-grid{grid-template-columns:1fr}
 .two{grid-template-columns:1fr}
 .modal{align-items:flex-end;padding:0}
 .modal-box{width:100%;max-height:94dvh;border-radius:22px 22px 0 0;padding:18px 15px 28px}
 .modal-head{position:sticky;top:-18px;z-index:3;margin:-18px -15px 12px;padding:16px 15px 12px;background:var(--bg);border-bottom:1px solid var(--line)}
 .modal-head h2{font-size:20px;margin:0}
 .document-actions{align-items:stretch}.document-actions label{max-width:none}.document-actions .btn{align-self:flex-end}
 .app-footer{margin-left:0;padding:18px 15px 28px}
 .line{padding:12px}
 .line-grid{grid-template-columns:1fr 1fr;gap:9px}
 .line-grid>:first-child{grid-column:1/-1}
 .line-grid .remove{align-self:end;min-height:43px}
 input,select,textarea{font-size:16px;min-height:46px}
 .btn{min-height:45px}
 .doc{width:100%;min-height:auto;padding:18px;border-radius:12px;overflow:hidden}
 .doc-head img{width:64px;height:64px}
 .doc-head h2{font-size:21px}
 .doc .two{grid-template-columns:1fr 1fr;font-size:13px}
 .doc table{font-size:12px;display:block;overflow-x:auto}
 .doc td,.doc th{padding:9px 6px;white-space:nowrap}
 .doc td:first-child,.doc th:first-child{min-width:170px;white-space:normal}
 .doc h2.right{font-size:18px;margin-top:22px}
 .doc footer{margin-top:35px;font-size:12px}
}

@media(max-width:520px){
 .main{padding:17px 12px 35px!important}
 .top{display:block}.top .btn{width:100%;margin-top:14px}
 .grid{grid-template-columns:1fr 1fr}
 .kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:14px}.kpi strong{font-size:19px}.kpi span,.kpi small{font-size:12px}.toolbar,.document-toolbar{display:grid;grid-template-columns:1fr}.toolbar select{max-width:none}.timeline{grid-template-columns:1fr}.top-actions{width:100%;margin-top:12px}.top-actions .btn{width:100%}
 .grid .card{font-size:13px}
 .row>.price{font-size:14px}
 .doc .two{grid-template-columns:1fr;gap:18px}
 .document-actions{display:grid;grid-template-columns:1fr}.document-actions .btn{width:100%}.pdf-actions{display:grid;grid-template-columns:1fr;width:100%}
 .row-actions{width:100%;justify-content:flex-end;border-top:1px solid var(--line);padding-top:8px}
}

@media print{
 @page{size:A4;margin:12mm}
 html,body{width:210mm;background:#fff}
 .doc{width:auto;min-height:auto;padding:0}
 .doc table{display:table;font-size:10pt}
 .doc td,.doc th{white-space:normal}
}
