:root{--ink:#202b36;--muted:#718096;--line:#e4e9ef;--bg:#f4f6f8;--gold:#ba9659;--green:#23704c;--white:#fff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}header{height:70px;background:#1c252d;color:white;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1200px)/2))}.brand{display:flex;align-items:center;gap:11px;font-size:13px;font-weight:700;letter-spacing:.3px}.brand b{height:38px;width:38px;border:1px solid var(--gold);color:var(--gold);display:grid;place-items:center;border-radius:9px}.brand small{display:block;color:#c2cbd4;font-size:11px;font-weight:400}.brand span{line-height:1.25}nav{display:flex;gap:18px}nav a{color:#e4e9ef}main{width:min(1120px,calc(100% - 32px));margin:34px auto}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.eyebrow{font-size:11px;letter-spacing:1.1px;color:var(--gold);font-weight:750;text-transform:uppercase;margin:0}.page-head h1{font-size:27px;margin:4px 0}.muted{color:var(--muted);font-size:13px}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 2px 8px #1c252d05}.card h2{font-size:17px;margin:0 0 13px}.narrow{width:min(520px,100%);margin:6vh auto}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.stats .card strong{display:block;font-size:28px;margin-top:5px}.row-between{display:flex;justify-content:space-between;align-items:center}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;text-align:left}th{font-size:10px;color:#87929e;text-transform:uppercase;letter-spacing:.7px;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #edf0f3;white-space:nowrap}tbody tr:last-child td{border-bottom:0}.client-link{font-weight:700}.badge{display:inline-block;border-radius:99px;padding:3px 9px;background:#f5eddf;color:#735b2e;font-size:12px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:12px 0 16px}.form-grid .full{grid-column:1/-1}label{display:block;font-size:13px;font-weight:600}input,select,textarea{display:block;width:100%;margin-top:5px;border:1px solid #d8dee5;border-radius:8px;background:#fff;padding:10px 11px;font:inherit;color:var(--ink)}input:focus,select:focus,textarea:focus{outline:2px solid #d9c496;border-color:var(--gold)}button,.button-link{border:0;background:var(--ink);color:#fff;border-radius:8px;padding:10px 14px;font:inherit;font-weight:650;cursor:pointer;display:inline-block}a{color:#285f9a;text-decoration:none}a:hover{text-decoration:underline}.button-link{color:white}.success{background:#e7f4eb;color:var(--green);padding:10px 12px;border-radius:8px}.error{background:#fff0ef;color:#9f3434;padding:10px 12px;border-radius:8px}.coming{color:var(--muted)}code{background:#f1f3f5;padding:2px 5px;border-radius:4px}@media(max-width:650px){header{padding:0 16px;height:auto;min-height:68px}nav{gap:10px;font-size:13px}main{margin:20px auto}.form-grid,.stats{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.page-head{align-items:flex-start;flex-direction:column}}

/* Saisie client calquée sur les fiches de référence Particulier / Professionnel */
.client-entry{max-width:1080px;margin:0 auto}.client-entry-title{font-size:17px;font-weight:500;margin:0 0 18px;color:#263441}.client-form-card{width:min(600px,100%);margin:0 auto;background:#fff;border:1px solid #e4e9ef;border-radius:12px;padding:28px 32px;box-shadow:0 2px 10px #1c252d08}.client-form-card form{display:flex;flex-direction:column;gap:16px}.client-form-card label,.field-label,.section-label-row{font-size:12px;font-weight:500;color:#40505f}.client-form-card input,.client-form-card select,.client-form-card textarea{margin-top:5px;border:1px solid #cfd7df;border-radius:4px;min-height:37px;padding:8px 11px;font-size:13px}.client-form-card textarea{resize:vertical}.client-type-switch{display:flex;align-self:flex-start;margin-top:-9px}.type-choice{background:#fff;color:#435160;border:1px solid #cfd7df;border-radius:0;padding:7px 12px;font-size:12px;font-weight:500}.type-choice:first-child{border-radius:4px 0 0 4px}.type-choice:last-child{border-radius:0 4px 4px 0;margin-left:-1px}.type-choice.active{background:#3297e8;border-color:#3297e8;color:#fff}.required{color:#d14a45}.person-fields{display:grid;grid-template-columns:120px minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:end}.professional-only.hidden-field,.hidden-field{display:none!important}.business-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px}.person-fields select{margin-top:5px}.section-label-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:-11px}.checkbox-label{display:flex!important;align-items:center;gap:7px}.checkbox-label input{width:auto;height:auto;min-height:auto;margin:0}.full-field{margin:0}.postcode-city{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px}.inline-add{margin-top:-11px}.text-action,.remove-action{display:inline-block;background:transparent;border:0;padding:0;color:#2786d2;font-size:12px;font-weight:500}.text-action:hover,.remove-action:hover{text-decoration:underline}.contact-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.phone-input{display:grid;grid-template-columns:96px minmax(0,1fr);gap:5px}.phone-input .country-code{padding:7px 4px;font-size:11px}.extra-contact{margin-top:9px}.commercial-field{max-width:280px}.more-toggle{align-self:flex-start;background:#fff;color:#435160;border:1px solid #d5dce3;border-radius:4px;padding:6px 11px;font-size:12px;font-weight:500}.notes-field textarea{min-height:105px}.account-code-field{max-width:280px}.form-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:4px}.form-actions .primary{background:#3198e9;border-radius:4px;padding:9px 15px;font-size:13px}.cancel-action{border:1px solid #d5dce3;border-radius:4px;padding:8px 13px;font-size:13px;color:#435160}.extra-address{border:1px solid #e2e7ec;border-radius:6px;padding:13px;display:grid;gap:9px}.extra-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#40505f}.extra-address .postcode-city{margin:0}
@media(max-width:650px){.client-form-card{padding:20px 16px}.person-fields{grid-template-columns:90px 1fr 1fr;gap:7px}.business-numbers,.contact-row{grid-template-columns:1fr;gap:12px}.postcode-city{grid-template-columns:120px minmax(0,1fr)}.client-entry-title{margin-bottom:12px}}

/* Fiche chantier */
.project-entry{max-width:1050px;margin:0 auto}.project-entry>h1{font-size:22px;font-weight:550;margin:0 0 24px}.project-card{width:min(820px,100%);margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:24px 28px;box-shadow:0 2px 10px #1c252d08}.project-card form{display:flex;flex-direction:column;gap:17px}.project-tabs{display:flex;gap:28px;border-bottom:1px solid var(--line);margin:-2px 0 4px}.project-tab{background:transparent;color:#66778a;border-radius:0;padding:9px 2px 12px;font-size:14px;font-weight:500;border-bottom:2px solid transparent}.project-tab:hover{background:transparent;color:var(--ink)}.project-tab.active{color:#287fc0;border-bottom-color:#3297e8}.project-panel{display:flex;flex-direction:column;gap:15px}.project-panel label{font-size:14px;font-weight:500}.project-panel input,.project-panel select,.project-panel textarea{border-radius:5px}.project-panel select[multiple]{min-height:76px}.project-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-checkbox{display:flex!important;align-items:center;gap:9px;margin:3px 0}.project-checkbox input{width:auto;margin:0}.project-address{display:flex;flex-direction:column;gap:13px;padding:14px;border:1px solid var(--line);border-radius:7px}.project-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:4px}.project-actions .primary{background:#3297e8;border-radius:5px}.project-cta{margin-top:16px}.project-card .required{color:#d14a45}
@media(max-width:650px){.project-card{padding:19px 15px}.project-two{grid-template-columns:1fr;gap:12px}.project-tabs{gap:17px}.project-tab{font-size:12px}}
.project-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.media-item{border:1px solid var(--line);border-radius:8px;overflow:hidden}.media-item img{width:100%;height:120px;object-fit:cover;display:block}.media-item>div{padding:8px}.media-item strong,.media-item small{display:block;overflow-wrap:anywhere}.media-item small{color:var(--muted);margin-top:3px}
.client-actions{display:flex;align-items:center;gap:12px;white-space:nowrap}.client-actions .inline-delete{display:inline;margin:0}.inline-delete .text-danger{background:transparent;color:#a63b3b;border:0;padding:0;font:inherit;font-size:13px;font-weight:500;cursor:pointer}.client-actions .button-link{background:#f2f5f8;color:var(--ink);padding:7px 11px}
.role-options{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:flex;gap:16px;flex-wrap:wrap}.role-options legend{font-size:13px;font-weight:600;padding:0 4px}.role-options label{display:flex;align-items:center;gap:7px}.role-options input{width:auto;margin:0}

/* Paramètres */
.settings-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}.settings-menu{background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;position:sticky;top:14px}.settings-link{padding:9px 11px;border-radius:6px;color:#465665;font-size:13px}.settings-link:hover,.settings-link.active{background:#eef5fb;color:#267ebc;text-decoration:none}.settings-content{min-width:0}.settings-card{padding:23px 26px}.settings-card h2{font-size:20px;font-weight:550;margin:5px 0 20px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 18px}.settings-grid label{font-size:13px;font-weight:500;color:#3f4e5d}.settings-grid input{border-radius:5px}.settings-grid .wide{grid-column:1/-1}.settings-grid h3.settings-subhead{font-size:15px;margin:13px 0 -5px;padding-top:14px;border-top:1px solid var(--line)}.settings-actions{display:flex;justify-content:flex-end;margin-top:22px}.settings-actions .primary{background:#3297e8;border-radius:5px}.check-line{display:flex!important;align-items:center;gap:8px}.check-line input,.title-choice input{width:auto;margin:0}.title-choice{border:0;padding:0;display:flex;gap:20px;align-items:center}.title-choice legend{font-size:13px;color:#3f4e5d;margin-bottom:8px}.title-choice label{display:flex;align-items:center;gap:7px}.personal-phone-row{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:16px;margin:0 0 13px}.personal-phone-row label{min-width:0}.settings-card .phone-input{grid-template-columns:82px minmax(0,1fr)}
@media(max-width:700px){.settings-layout{grid-template-columns:1fr}.settings-menu{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-card{padding:18px 15px}.settings-grid{grid-template-columns:1fr;gap:12px}.settings-grid .wide{grid-column:auto}.personal-phone-row{grid-template-columns:1fr;gap:10px}}

/* Personnalisation interactive des documents */
main:has(.documents-editor){width:min(1800px,calc(100% - 28px));max-width:1800px}.settings-layout:has(.documents-editor){grid-template-columns:200px minmax(0,1fr)}.documents-editor{display:grid;grid-template-columns:minmax(390px,.8fr) minmax(500px,1.2fr);gap:18px;align-items:start}.doc-editor-panel{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.doc-tabs{display:flex;flex-direction:column;border-bottom:1px solid var(--line);background:#f7f8fa}.doc-tab{background:transparent;color:#4d5b6b;border-radius:0;text-align:left;padding:10px 14px;font-size:13px;font-weight:500}.doc-tab:hover{background:#edf3f8;color:#207fc4}.doc-tab.active{background:#eaf3fb;color:#247fc1;border-left:3px solid #3297e8;padding-left:11px}.doc-panel{padding:20px;display:flex;flex-direction:column;gap:14px}.doc-panel[hidden]{display:none}.doc-panel h2{font-size:20px;font-weight:550;margin:0 0 3px}.doc-panel>label,.doc-field{font-size:13px;font-weight:500;color:#40505f}.doc-panel textarea{resize:vertical}.doc-panel .doc-field{border:0;border-bottom:1px solid var(--line);padding:0 0 14px;margin:0;display:flex;flex-direction:column;gap:8px}.doc-field legend{font-size:13px;font-weight:650;padding:0 0 8px}.doc-field label,.doc-panel .check-line{display:flex;align-items:center;gap:8px}.doc-panel input[type=checkbox],.doc-panel input[type=radio]{width:auto;margin:0}.doc-panel input[type=range]{padding:0;accent-color:#3297e8}.doc-control-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.logo-editor{display:flex;align-items:center;gap:14px;margin:10px 0}.doc-logo-image{display:block;max-width:110px;max-height:70px;object-fit:contain}.doc-logo-placeholder{width:90px;height:56px;border:1px solid var(--line);border-radius:4px;display:grid;place-content:center;text-align:center;color:#2789b8;font-size:20px;font-weight:800}.doc-logo-placeholder small{font-size:8px}.file-label{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:5px;padding:7px 10px;cursor:pointer;color:#425161}.file-label input{width:180px;font-size:11px}.order-options{display:flex;gap:7px}.order-options label{display:block}.order-options input{position:absolute;opacity:0}.order-options span{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;cursor:pointer}.order-options input:checked+span{border-color:#3297e8;color:#247fc1;box-shadow:0 0 0 1px #3297e8}.choice-cards{display:flex;gap:8px}.choice-cards label{position:relative}.choice-cards input{position:absolute;opacity:0}.table-choice,.total-choice{width:82px;height:54px;border:1px solid var(--line);border-radius:5px;display:grid;place-items:center;cursor:pointer;color:#657587}.table-choice small{font-size:10px}.choice-cards input:checked+span{border:2px solid #3297e8}.company-preview-settings{background:#f4f5f6;padding:12px;border:1px solid var(--line);border-radius:5px;display:flex;flex-direction:column;gap:5px;font-size:12px}.label-actions{display:flex;gap:8px}.secondary{background:#fff;color:#455363;border:1px solid var(--line);font-size:12px;padding:8px 11px}.warning-box{background:#fff2c8;color:#826509;padding:12px;border-radius:5px;font-size:12px;line-height:1.5}.payment-step{display:grid;grid-template-columns:1fr 1.3fr 28px;gap:7px;align-items:end;margin-bottom:8px}.payment-step label{font-size:11px}.payment-step input{padding:7px}.payment-step label:first-child input{width:70px;display:inline-block}.remove-step{background:transparent;color:#5e6873;padding:5px}.doc-save{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--line);padding:12px 16px;display:flex;justify-content:space-between;align-items:center;z-index:2}.doc-save .primary{background:#3297e8}.document-preview-wrap{position:sticky;top:14px;max-height:calc(100vh - 28px);overflow:auto;background:#e9edf1;padding:14px;border-radius:8px}.document-preview{width:min(100%,650px);min-height:840px;margin:0 auto;background:white;box-shadow:0 2px 12px #1523311c;padding:34px 32px;color:#374151;font:10px/1.45 Arial,sans-serif;position:relative}.preview-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:26px}.preview-logo{flex:1}.preview-client{width:44%;background:#f0f0f0;padding:10px;font-size:9px}.preview-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:22px}.preview-company{font-size:10px;line-height:1.55}.preview-title{text-align:right;white-space:nowrap}.preview-title strong{font-size:22px;color:var(--doc-color);font-weight:500}.preview-title span{font-size:9px}.preview-address{margin-top:22px}.preview-lines{margin-top:10px;font-size:9px}.preview-lines th{background:var(--doc-color);color:#fff;padding:7px 5px}.preview-lines td{padding:6px 5px;white-space:normal;font-size:9px}.preview-lines .group td{background:color-mix(in srgb,var(--doc-color) 25%,white)}.document-preview[data-table=columns] .preview-lines td{border-right:1px solid #d5dbe1}.document-preview[data-table=boxed] .preview-lines td{border:1px solid #d5dbe1}.preview-bottom{display:grid;grid-template-columns:1fr .85fr;gap:15px;margin-top:24px;font-size:9px}.preview-total>div{display:flex;justify-content:space-between;padding:5px;background:#eee}.preview-total .grand-total{background:var(--doc-color);color:white;font-weight:700}.document-preview[data-totals=plain] .preview-total .grand-total{background:#fff;color:#273441;border-top:1px solid #777}.preview-qr{position:absolute;right:34px;bottom:32px;font-size:20px;color:#202830}.preview-qr small{display:block;font-size:8px}.preview-cgv{font-size:8px;white-space:pre-wrap;margin-top:30px}.preview-custom-label{position:absolute;right:32px;top:155px;color:var(--doc-color)}.preview-footer-image{max-width:180px;max-height:60px;object-fit:contain}.preview-signature{max-width:120px;max-height:55px;object-fit:contain;margin-top:15px}
@media(max-width:1150px){.documents-editor{grid-template-columns:1fr}.document-preview-wrap{position:static;max-height:none}.document-preview{width:100%;min-height:700px}.settings-layout:has(.documents-editor){grid-template-columns:1fr}.doc-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.doc-tab{font-size:11px;padding:8px}}
@media(max-width:650px){main:has(.documents-editor){width:calc(100% - 16px)}.doc-panel{padding:15px}.doc-control-row{grid-template-columns:1fr}.document-preview{padding:20px 15px;min-height:650px}.preview-bottom{grid-template-columns:1fr}.preview-client{width:50%}}
.email-settings{max-width:860px}.email-settings h2{margin:5px 0}.email-accordion{border-bottom:1px solid var(--line);background:#fff}.email-accordion summary{list-style:none;cursor:pointer;background:#f0f1f2;padding:14px 16px;color:#536273;display:flex;align-items:center;justify-content:space-between;font-size:14px}.email-accordion summary::-webkit-details-marker{display:none}.email-accordion[open] summary{background:#e3e4e5}.email-plus{font-size:19px;color:#586576}.email-accordion[open] .email-plus{transform:rotate(45deg)}.email-fields{padding:14px 16px;display:flex;flex-direction:column;gap:12px}.email-fields label{font-weight:500;font-size:12px}.email-fields textarea{min-height:150px;font-size:13px;white-space:pre-wrap}.email-settings form>.settings-actions{position:sticky;bottom:0;background:white;padding:12px 0;border-top:1px solid var(--line)}

.preference-card{max-width:930px}.preference-card>form{display:flex;flex-direction:column;gap:14px}.preference-card h3{font-size:15px;margin:8px 0 0}.preference-margins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.preference-margins label{display:flex;align-items:center;gap:10px}.preference-margins input{max-width:190px}.preference-section{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:8px;font-size:13px}.preference-section>strong{margin-bottom:3px}.preference-section label,.preference-check{display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:500}.preference-section input[type=checkbox],.preference-section input[type=radio],.preference-check input{width:auto;margin:3px 0 0}

/* Keep the settings menu beside document controls on medium screens. */
@media (min-width:851px) and (max-width:1150px){.settings-layout:has(.documents-editor){grid-template-columns:190px minmax(0,1fr)}}
@media (max-width:850px){.settings-layout:has(.documents-editor){grid-template-columns:1fr}.settings-layout:has(.documents-editor) .settings-menu{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Devis */
.quote-editor{max-width:1440px;margin:auto}.quote-form{display:flex;flex-direction:column;gap:18px;padding:22px}.quote-header-layout{display:grid;grid-template-columns:1fr minmax(300px,.85fr);gap:30px;padding:4px 0 14px}.quote-document-meta{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.quote-document-meta h2{margin:0 0 2px;color:#293d55;font-size:22px}.quote-document-meta>label{display:flex;align-items:center;gap:8px;color:#465a70;font-weight:500;font-size:13px}.quote-document-meta>label input,.quote-schedule input{border:0;background:transparent;padding:2px 4px;width:auto}.quote-schedule{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:2px}.quote-schedule label{display:flex;align-items:center;gap:6px;font-size:12px;color:#52667a}.quote-client-pickers{display:flex;flex-direction:column;gap:9px;padding-top:4px}.quote-client-pickers label{font-size:12px;font-weight:550}.quote-client-pickers select{margin-top:3px}.quote-description-toggle{align-self:flex-start;background:transparent;color:#3297e8;padding:0;font-weight:550}.quote-description{width:100%}.quote-form>label{font-size:13px;font-weight:600}.quote-toolbar{display:flex;gap:7px;flex-wrap:wrap;border-block:1px solid var(--line);padding:12px 0}.quote-toolbar button{background:#fff;color:#3297e8;border:1px solid #a8d3f3;font-weight:550;font-size:12px;padding:8px 11px}.quote-toolbar button:hover{background:#eaf3fb;color:#267ebc}.quote-line-head,.quote-entry{display:grid;grid-template-columns:30px minmax(170px,2.4fr) 64px 80px minmax(100px,1fr) 72px minmax(100px,1fr) 42px 28px;gap:7px;align-items:center}.quote-line-head{font-size:10px;text-transform:uppercase;color:#fff;letter-spacing:.35px;background:#3297e8;padding:11px 8px}.quote-entry{padding:8px 0;border-bottom:1px solid #edf0f3}.quote-entry input,.quote-entry select{min-width:0;padding:8px;font-size:12px}.quote-line .quote-designation{font-size:11px;color:#657587}.quote-designation textarea{display:block;width:100%;min-height:42px;margin-top:3px;padding:6px;font-size:12px;resize:vertical}.quote-row-number{font-size:12px;text-align:center;color:#68788a}.quote-discount{display:flex;flex-direction:column;align-items:flex-end;gap:3px;min-width:0}.quote-discount input{width:58px;padding:3px 5px;text-align:right;font-size:10px}.quote-discount input::placeholder{color:#999}.quote-row-total{font-size:12px;white-space:nowrap}.quote-photo{position:relative;display:grid;place-items:center;width:38px;height:36px;border:1px solid var(--line);border-radius:5px;cursor:pointer}.quote-photo input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.quote-remove{padding:2px 5px;background:transparent;color:#9b4141;font-size:20px}.quote-special{grid-template-columns:1fr auto}.quote-special strong{font-size:13px}.quote-special input,.quote-special textarea{grid-column:1;max-width:100%;width:100%}.quote-adjustment,.quote-bottom-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quote-adjustment label,.quote-terms-label{font-size:12px;font-weight:550}.quote-adjustment input,.quote-adjustment select{margin-top:4px}.quote-bottom-grid{grid-template-columns:1.2fr .8fr;align-items:start}.quote-bottom-grid fieldset{min-width:0;border:1px solid var(--line);border-radius:8px;padding:14px}.quote-bottom-grid legend{font-size:14px;font-weight:650;padding:0 5px}.quote-methods{display:flex;gap:16px;flex-wrap:wrap}.quote-check{display:flex;align-items:center;gap:6px;font-size:12px}.quote-check input{width:auto}.quote-steps{margin:12px 0}.quote-payment-step{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;margin:7px 0}.quote-payment-step input{padding:7px}.quote-terms-label{display:flex;flex-direction:column;margin-top:14px}.quote-calculation{background:#f6f8fa;border:1px solid var(--line);border-radius:8px;padding:16px}.quote-calculation h2{font-size:15px;margin:0 0 12px}.quote-calculation>div,.quote-totals>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}.quote-calculation .grand,.quote-totals .grand{font-weight:750;border:0;border-top:1px solid #aeb8c2;margin-top:6px;padding-top:12px}.quote-actions{display:flex;justify-content:flex-end;gap:10px}.quote-actions .primary{background:#3297e8}.quote-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.quote-summary span,.quote-summary strong,.quote-total-card span,.quote-total-card strong{display:block}.quote-summary span,.quote-total-card span{font-size:11px;color:var(--muted)}.quote-summary strong{font-size:13px;margin-top:4px}.quote-total-card{background:#edf5fb;border-radius:9px;padding:12px 17px;min-width:160px}.quote-total-card strong{font-size:22px;color:#267ebc}.quote-lines-table td{white-space:normal}.quote-line-photo{display:block;font-size:11px}.quote-section-title{background:#eff3f7;padding:8px 10px;font-size:14px}.quote-free-text{white-space:pre-wrap;font-size:13px}.quote-break{border-top:2px dashed #c2cbd4;color:var(--muted);font-size:11px;margin:16px 0;padding-top:6px}.quote-totals{width:min(360px,100%);margin:14px 0 0 auto}.required{color:#bf3e3e}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.quote-quick-add{padding:0 16px 15px}.quote-quick-add summary{cursor:pointer;list-style:none;padding:16px 4px;color:#287fc0;font-size:14px;font-weight:650}.quote-quick-add summary::-webkit-details-marker{display:none}.quote-quick-add form{display:flex;flex-direction:column;gap:13px;border-top:1px solid var(--line);padding-top:15px}.quote-quick-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.quote-quick-grid label{font-size:12px;font-weight:550}.quote-quick-grid #quick-individual-fields{display:contents}.quote-quick-grid [hidden]{display:none!important}.quote-quick-add .primary{align-self:flex-start;background:#3297e8}
@media(max-width:1050px){.quote-header-layout{grid-template-columns:1fr minmax(270px,.8fr);gap:18px}}
@media(max-width:800px){.quote-header-layout{grid-template-columns:1fr}.quote-line-head{display:none}.quote-entry{grid-template-columns:30px minmax(0,1fr) 28px;gap:7px}.quote-row-number{grid-column:1;grid-row:1}.quote-designation{grid-column:2;grid-row:1}.quote-entry [name^="quantity"]{grid-column:1;grid-row:2}.quote-entry [name^="unit"]{grid-column:2;grid-row:2}.quote-entry [name^="unit_price_ht"]{grid-column:1;grid-row:3}.quote-entry [name^="vat_rate"]{grid-column:2;grid-row:3}.quote-discount{grid-column:1;grid-row:4;flex-direction:row;align-items:center}.quote-photo{grid-column:2;grid-row:4}.quote-entry .quote-remove{grid-column:3;grid-row:1}.quote-special{grid-template-columns:1fr auto}.quote-adjustment{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.quote-bottom-grid{grid-template-columns:1fr}}
@media(max-width:800px){.quote-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.quote-form{padding:16px 12px}.quote-top-grid,.quote-adjustment,.quote-quick-grid{grid-template-columns:1fr}.quote-toolbar button{flex:1 1 42%}.quote-summary{grid-template-columns:1fr 1fr}.quote-total-card{min-width:0}.page-head:has(.quote-total-card){align-items:flex-start;flex-direction:column}}


/* Photos de devis : aperçu, tailles sélectionnées et mise en page imprimable. */
.quote-line-head,.quote-entry{grid-template-columns:30px minmax(170px,2.4fr) 64px 80px minmax(100px,1fr) 72px minmax(100px,1fr) minmax(130px,1.2fr) 28px}.quote-photo-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.quote-photo-tools .quote-photo{flex:0 0 38px}.quote-photo-tools select{flex:1 1 76px;min-width:76px;padding:6px 4px;font-size:11px}.quote-photo-preview{flex:1 0 100%;min-width:0}.quote-photo-img,.quote-line-photo img,.print-photo img{display:block;height:auto;max-width:100%;object-fit:contain;border-radius:5px}.photo-small{width:min(140px,100%)}.photo-medium{width:min(260px,100%)}.photo-large{width:min(420px,100%)}.quote-line-photo{margin:8px 0 2px}.quote-line-photo figcaption{font-size:10px;color:var(--muted);margin-top:3px}.quote-actions-panel{display:flex;flex-direction:column;gap:14px}.quote-action-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quote-action-buttons form{margin:0}.quote-action-buttons .primary{background:#3297e8}.quote-action-buttons .text-danger{background:transparent;color:#9b4141;padding:8px}.quote-status-form{display:flex;align-items:end;gap:9px;border-top:1px solid var(--line);padding-top:12px}.quote-status-form label{display:flex;align-items:center;gap:8px;font-size:12px}.quote-status-form select{width:auto;min-width:140px;margin:0;padding:7px}.quote-status-form button{padding:8px 11px}.print-controls{max-width:900px;margin:0 auto 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.print-controls span{font-size:12px;color:var(--muted)}.print-document{max-width:900px;margin:0 auto;background:white;padding:32px;border:1px solid var(--line);box-shadow:0 3px 16px #1c252d12}.print-document .print-heading{height:auto;min-height:0;background:white;color:var(--ink);display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:0 0 20px;border-bottom:2px solid var(--gold)}.print-heading h1{font-size:21px;margin:0 0 8px}.print-heading p{font-size:11px;color:var(--muted);margin:0}.print-client{text-align:right;font-size:12px}.print-client h3{font-size:11px;text-transform:uppercase;color:var(--muted);margin:0 0 5px}.print-quote-title{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 12px}.print-quote-title h2{font-size:18px;margin:0}.print-quote-title p{font-size:11px;color:var(--muted)}.print-project-meta{display:flex;gap:12px 24px;flex-wrap:wrap;background:#f5f7f9;padding:10px;font-size:11px}.print-description{margin:14px 0;font-size:12px}.print-lines{margin-top:16px;font-size:10px}.print-lines th{background:#edf3f8;color:#40505f;padding:7px 5px}.print-lines td{white-space:normal;padding:7px 5px;vertical-align:top}.print-section-title{font-size:12px;background:#eff3f7;padding:7px;margin:0}.print-text-row td{font-size:11px}.print-page-break td{height:1px;padding:0;break-before:page;page-break-before:always}.print-photo{margin-top:6px}.print-totals{width:min(300px,100%);margin:12px 0 18px auto;font-size:12px}.print-totals div{display:flex;justify-content:space-between;padding:5px;border-bottom:1px solid var(--line)}.print-totals .print-ttc{font-size:15px;font-weight:750;border-top:2px solid var(--ink)}.print-document section,.print-document footer{font-size:11px;margin-top:18px}.print-document footer{border-top:1px solid var(--line);padding-top:10px}
@media(max-width:800px){.quote-line-head,.quote-entry{grid-template-columns:30px minmax(0,1fr) 28px}.quote-entry .quote-photo-tools{grid-column:1/-1;grid-row:5;display:grid;grid-template-columns:44px minmax(100px,150px) minmax(0,1fr)}.quote-photo-tools .quote-photo-preview{grid-column:1/-1}.quote-entry .quote-remove{grid-column:3;grid-row:1}.quote-status-form{align-items:stretch;flex-direction:column}.print-document{padding:16px}.print-document .print-heading{flex-direction:column}.print-client{text-align:left}.print-quote-title{align-items:flex-start;flex-direction:column;gap:3px}}
@media print{body{background:white}.print-controls,body>header,body>main>header,nav{display:none!important}body>main{width:100%;margin:0}.print-document{max-width:none;margin:0;padding:0;border:0;box-shadow:none}.print-document .print-heading{background:white!important;color:black!important}.print-section-row,.print-lines tr{break-inside:avoid;page-break-inside:avoid}.print-photo img{print-color-adjust:exact;-webkit-print-color-adjust:exact}@page{size:A4;margin:15mm}}


/* Mise en page du devis en trois feuilles et espace client. */
.quote-entry .quote-photo-tools{grid-column:2/9;grid-row:2;display:grid;grid-template-columns:40px 135px minmax(0,1fr);grid-template-rows:auto auto;align-items:start;gap:7px;width:100%;padding-top:3px}.quote-entry .quote-photo-tools .quote-photo{grid-column:1;grid-row:1}.quote-entry .quote-photo-tools select{grid-column:2;grid-row:1;width:100%;min-width:110px}.quote-entry .quote-photo-tools .quote-photo-preview{grid-column:1/-1;grid-row:2;display:flex;align-items:flex-start;width:100%;min-height:0}.quote-entry .quote-photo-tools .quote-photo-img{flex:none;max-width:100%;height:auto}.quote-entry .quote-remove{grid-column:9;grid-row:1}.print-inline-photo{margin-top:5px}.print-inline-photo img{width:140px;max-width:100%;height:auto}.print-document{max-width:900px;margin:0 auto;background:#fff;padding:24px;border:1px solid var(--line)}.print-page{background:white;padding:0;margin:0 0 25px;display:flex;flex-direction:column;gap:12px}.print-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;border:0;border-bottom:1px solid #cfd7df;padding:0 0 14px}.print-company{display:flex;gap:18px;align-items:flex-start}.print-company p,.print-recipient p{font-size:10px;color:#4b5662;margin:4px 0}.print-logo{display:block;max-width:180px;max-height:95px;object-fit:contain}.print-recipient{text-align:right;min-width:220px;font-size:12px}.print-quote-title{display:flex;justify-content:space-between;align-items:flex-start;margin:4px 0}.print-quote-title h1{font-size:25px;color:#426eb4;margin:0}.print-quote-title h1 span{display:block;color:var(--ink);font-size:13px}.print-quote-title p{text-align:right;font-size:11px;line-height:1.7;margin:0}.print-project-meta{display:block;background:transparent;padding:0;font-size:12px}.print-project-meta p{margin:4px 0}.print-lines{margin-top:2px;font-size:10px}.print-lines th{background:#6788bd;color:#fff;padding:8px 5px}.print-lines td{white-space:normal;padding:6px 5px;vertical-align:top;border-bottom:1px solid #dce1e6}.print-section-title{background:#c8d6e9;padding:6px;margin:0}.print-page-footer{margin-top:auto;border-top:1px solid #d5dce3;padding-top:8px;text-align:center;color:#596474;font-size:8px;line-height:1.4}.print-page-footer strong{display:block;text-align:right;font-size:9px}.print-page-two{gap:17px}.print-page2-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.print-payment h2,.print-notes h2,.print-page-three h2{font-size:15px;margin:0 0 6px}.print-payment h3{font-size:12px;margin:15px 0 5px;text-decoration:underline}.print-payment p,.print-payment li,.print-notes p{font-size:11px;line-height:1.45;margin:4px 0}.print-payment ul{padding-left:18px}.print-totals{width:auto;margin:0;background:#eff1f3;padding:8px 14px}.print-totals>div{display:flex;justify-content:space-between;gap:12px;padding:6px 3px;border:0;font-size:12px}.print-totals .print-grand{font-weight:700;border-top:1px solid #aaa}.print-totals .print-net-pay{background:#6788bd;color:white;font-size:15px;font-weight:750;padding:10px;margin:4px -14px -8px}.print-signature-blocks{display:grid;grid-template-columns:1fr 1fr;gap:18px}.print-signature-blocks>section{font-size:11px}.print-signature-box{height:100px;border:1px solid #cfd4d9;border-radius:8px;margin-top:7px;padding:12px;display:flex;flex-direction:column;justify-content:space-between;font-size:10px}.print-signature-box p{margin:0}.print-signature-box span{color:#768294}.company-signature{max-width:180px;max-height:60px;object-fit:contain;align-self:center}.print-qr-area{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:auto}.print-qr-area>div:first-child{max-width:280px;text-align:right;font-size:10px}.print-qr-area p{margin:3px 0}.print-qr-area a{font-size:8px;overflow-wrap:anywhere}.print-qr{width:94px;height:94px;flex:none}.print-qr svg{width:100%;height:100%}.print-notes{font-size:10px}.print-page-three{gap:16px}.print-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.print-gallery-item{margin:0;break-inside:avoid;page-break-inside:avoid}.print-gallery-item img{display:block;max-width:100%;max-height:500px;object-fit:contain;object-position:left top}.print-gallery-item figcaption{font-size:10px;margin-top:5px}.print-cgv{break-before:page;page-break-before:always}.print-cgv h2{font-size:16px;text-align:center}.print-cgv>div{font-size:10px;column-count:2;column-gap:20px}.portal-shell{max-width:940px;margin:0 auto}.portal-shell>h1{margin-top:4px}.portal-quote-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.portal-quote-head h2{margin:4px 0}.portal-total{font-size:23px;white-space:nowrap;color:#267ebc}.portal-totals{max-width:320px;margin:14px 0 0 auto;display:grid;gap:6px}.portal-totals span{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px}.portal-quote-photo{display:block;margin-top:7px;max-height:210px;object-fit:contain;object-position:left top}.portal-invoice{padding:12px 0;border-top:1px solid var(--line)}.portal-invoice>div{display:flex;justify-content:space-between;gap:8px}.portal-invoice details{margin:7px 0}.portal-invoice .button-link{margin-top:6px}.portal-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.portal-gallery figure{margin:0}.portal-gallery img{width:100%;height:210px;object-fit:cover;border-radius:8px}.portal-gallery figcaption,.portal-update time{font-size:11px;color:var(--muted)}.portal-update{padding:10px 0;border-top:1px solid var(--line)}.portal-update time{float:right}.portal-consent{display:flex;gap:8px;align-items:flex-start;margin:12px 0}.portal-consent input{width:auto;margin:4px 0 0}.portal-signature canvas{display:block;width:100%;height:190px;border:1px dashed #8997a5;border-radius:8px;background:#fff;touch-action:none;margin:10px 0}.portal-signature .secondary{background:#e8edf1;color:#293d55;margin-bottom:10px}.portal-signature form>button.primary{background:#3297e8}.accepted-signature{display:block;max-width:260px;max-height:110px;object-fit:contain}.portal-contact{font-size:12px;color:var(--muted);text-align:center}
@media(max-width:800px){.quote-entry .quote-photo-tools{grid-column:1/-1;grid-row:5;grid-template-columns:44px minmax(110px,150px) minmax(0,1fr)}.quote-entry .quote-remove{grid-column:3;grid-row:1}.print-document{padding:12px}.print-gallery{grid-template-columns:1fr}.print-company{flex-direction:column;gap:6px}.print-recipient{text-align:left;min-width:0}.print-page2-grid{grid-template-columns:1fr}.portal-quote-head{flex-direction:column}}
@media print{body{background:#fff}.print-controls,body>header,nav{display:none!important}body>main{width:100%;margin:0}.print-document{max-width:none;margin:0;padding:0;border:0}.print-page{min-height:270mm;margin:0;break-after:page;page-break-after:always}.print-page-three{break-after:avoid;page-break-after:auto}.print-page-footer{margin-top:auto}.print-qr{display:block}.print-cgv{break-before:page;page-break-before:always}@page{size:A4;margin:12mm}}

/* Factures, situations multiples et paiements. */
nav{flex-wrap:wrap}.invoice-create{max-width:1180px;margin:0 auto}.invoice-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.invoice-form-grid .wide{grid-column:1/-1}.invoice-mode-options{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0}.invoice-mode-options label{display:flex;align-items:center;gap:8px}.invoice-mode-options input{width:auto}.situation-table{min-width:780px}.situation-table input{min-width:100px}.invoice-estimate{margin:14px 0;font-size:17px}.invoice-document{max-width:1000px;margin:0 auto;background:white;padding:28px;border:1px solid var(--line);border-radius:12px}.invoice-parties{display:flex;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px}.invoice-parties p{white-space:pre-line}.invoice-document>h1{margin:8px 0}.invoice-document table{width:100%;border-collapse:collapse;margin:20px 0}.invoice-document th,.invoice-document td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.invoice-totals{width:min(360px,100%);margin-left:auto}.invoice-totals p{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:7px;margin:0}.invoice-totals .balance{font-size:18px;font-weight:700}.payment-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:12px}.payment-form button{grid-column:1/-1;justify-self:start}.account-balance{font-size:20px}.print-controls{display:flex;justify-content:space-between;align-items:center;margin:12px 0}.print-controls button{padding:9px 14px;border:0;border-radius:8px;background:#3978bd;color:white;font-weight:650;cursor:pointer}
@media(max-width:800px){.invoice-form-grid{grid-template-columns:1fr}.invoice-form-grid .wide{grid-column:auto}.invoice-document{padding:14px}.invoice-parties{flex-direction:column}.payment-form{grid-template-columns:1fr 1fr}.payment-form button{grid-column:1/-1}}
@media print{.no-print,.print-controls,body>header{display:none!important}.invoice-document{border:0;border-radius:0;max-width:none;padding:0}.invoice-parties{break-inside:avoid}.invoice-document table{font-size:10pt}@page{size:A4;margin:15mm}}
.invoice-edit-table input{min-width:130px}.invoice-edit-table td:first-child input{min-width:280px}.invoice-edit-table td{white-space:normal}.invoice-delete{border-color:#efcaca;background:#fffafa}.invoice-delete .danger{background:#a63b3b}.invoice-delete p{color:#7c4b4b;font-size:13px}.invoice-edit .invoice-form-grid{margin:16px 0}.invoice-edit .button-link{background:#eef2f5;color:var(--ink)}@media(max-width:650px){.invoice-edit-table td:first-child input{min-width:220px}.invoice-edit-table input{min-width:110px}}
.brand{min-width:0}.brand span{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-logo{width:42px;height:42px;object-fit:contain;border-radius:7px;background:#fff;padding:2px}.brand b{flex:0 0 38px}@media(max-width:900px){header{gap:14px}.brand span{max-width:190px}nav{flex-wrap:wrap;justify-content:flex-end;gap:8px 12px}}@media(max-width:650px){.brand span{max-width:155px}.brand{font-size:11px}}

/* Application shell: dashboard sidebar, desktop collapse and mobile drawer. */
body.app-body{min-height:100vh;overflow-x:hidden}
.app-shell{min-height:100vh;display:grid;grid-template-columns:252px minmax(0,1fr);transition:grid-template-columns .2s ease}
.app-sidebar{position:sticky;top:0;height:100vh;min-height:100vh;background:#1c252d;color:#e5eaf0;display:flex;flex-direction:column;padding:18px 13px 14px;z-index:30;overflow:hidden}
.sidebar-brand{min-height:56px;display:flex;align-items:center;gap:12px;padding:2px 8px 17px;color:#fff;border-bottom:1px solid #ffffff1c;white-space:nowrap;overflow:hidden}
.sidebar-brand:hover{text-decoration:none}
.sidebar-brand .brand-logo{width:38px;height:38px;flex:0 0 38px}.sidebar-brand .brand b{width:38px;height:38px;flex:0 0 38px}
.sidebar-brand-text{display:block;min-width:0;line-height:1.25}.sidebar-brand-text strong,.sidebar-brand-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-brand-text strong{font-size:13px;color:#fff}.sidebar-brand-text small{font-size:10px;color:#aeb9c4;margin-top:4px;font-weight:400}
.sidebar-nav{display:flex;flex-direction:column;flex-wrap:nowrap;gap:5px;padding:18px 0;overflow-y:auto;flex:1}
.sidebar-nav .sidebar-link,.sidebar-bottom .sidebar-link,.sidebar-collapse{width:100%;min-height:43px;display:flex;align-items:center;gap:13px;padding:9px 11px;border:0;border-radius:8px;background:transparent;color:#c7d0d9;text-align:left;font-size:13px;font-weight:550;white-space:nowrap}
.sidebar-nav .sidebar-link:hover,.sidebar-bottom .sidebar-link:hover,.sidebar-collapse:hover{background:#ffffff12;color:#fff;text-decoration:none}
.sidebar-nav .sidebar-link[aria-current="page"]{background:color-mix(in srgb,var(--gold) 25%,#ffffff0d);color:#fff;box-shadow:inset 3px 0 var(--gold)}
.nav-icon{width:20px;min-width:20px;text-align:center;font-size:18px;line-height:1;color:#d4b678}
.sidebar-bottom{display:flex;flex-direction:column;gap:4px;border-top:1px solid #ffffff1c;padding-top:12px}
.sidebar-collapse{cursor:pointer;font:inherit}
.collapse-glyph{width:20px;min-width:20px;text-align:center;color:#d4b678;font-size:22px;line-height:16px}
.app-main{min-width:0;min-height:100vh}
.app-topbar{height:68px;position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line);color:var(--ink);box-shadow:0 2px 8px #1c252d08}
.menu-toggle{width:38px;height:38px;display:grid;place-items:center;padding:0;border:1px solid var(--line);background:#fff;color:#344354;border-radius:8px;font-size:19px;line-height:1}
.menu-toggle:hover{background:#f3f5f7}
.topbar-title{display:flex;flex-direction:column;line-height:1.2}.topbar-title strong{font-size:15px}.topbar-kicker{font-size:10px;letter-spacing:.7px;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.topbar-title-centered{position:absolute;left:50%;transform:translateX(-50%);align-items:center;text-align:center;width:max-content;max-width:calc(100% - 220px)}
.topbar-company{margin-left:auto;color:#667587;font-size:12px;max-width:32vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-content{width:min(1440px,calc(100% - 48px));margin:28px auto;padding:0;min-height:calc(100vh - 96px)}
.sidebar-backdrop{display:none}
.app-shell.sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}
.sidebar-collapsed .app-sidebar{padding-inline:10px}
.sidebar-collapsed .sidebar-brand{justify-content:center;padding-inline:0}
.sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .nav-label{display:none}
.sidebar-collapsed .sidebar-nav .sidebar-link,.sidebar-collapsed .sidebar-bottom .sidebar-link,.sidebar-collapsed .sidebar-collapse{justify-content:center;padding-inline:0;gap:0}
.sidebar-collapsed .sidebar-nav .sidebar-link[aria-current="page"]{box-shadow:inset 0 -3px var(--gold)}
.sidebar-collapsed .collapse-glyph{transform:rotate(180deg)}
.public-header{height:70px;padding:0 max(20px,calc((100vw - 1200px)/2));background:#1c252d;color:#fff;display:flex;align-items:center}
.public-main{width:min(1120px,calc(100% - 32px));margin:34px auto}
@media(max-width:800px){
  .app-shell,.app-shell.sidebar-collapsed{display:block}
  .app-sidebar{position:fixed;inset:0 auto 0 0;width:min(290px,84vw);height:100dvh;min-height:0;transform:translateX(-102%);transition:transform .22s ease;box-shadow:8px 0 28px #11182724;padding:16px 13px calc(16px + env(safe-area-inset-bottom));}
  .mobile-nav-open .app-sidebar{transform:translateX(0)}
  .sidebar-backdrop{position:fixed;inset:0;z-index:25;display:block;visibility:hidden;opacity:0;border:0;border-radius:0;padding:0;background:#10182080;transition:opacity .2s ease,visibility .2s ease}
  .mobile-nav-open .sidebar-backdrop{visibility:visible;opacity:1}
  .sidebar-collapsed .app-sidebar{padding:16px 13px calc(16px + env(safe-area-inset-bottom))}
  .sidebar-collapsed .sidebar-brand{justify-content:flex-start;padding:2px 8px 17px}
  .sidebar-collapsed .sidebar-brand-text,.sidebar-collapsed .nav-label{display:initial}
  .sidebar-collapsed .sidebar-nav .sidebar-link,.sidebar-collapsed .sidebar-bottom .sidebar-link,.sidebar-collapsed .sidebar-collapse{justify-content:flex-start;padding:9px 11px;gap:13px}
  .sidebar-collapsed .sidebar-nav .sidebar-link[aria-current="page"]{box-shadow:inset 3px 0 var(--gold)}
  .sidebar-collapse{display:none!important}
  .app-topbar{height:60px;padding:0 14px;gap:10px}
  .topbar-company{display:none}
  .topbar-title-centered{max-width:calc(100% - 80px)}
  .app-content{width:calc(100% - 28px);margin:20px auto;min-height:calc(100vh - 80px)}
}
@media(max-width:520px){
  .app-content{width:calc(100% - 22px);margin:14px auto}
  .app-content .card{padding:16px}
  .app-content .page-head h1{font-size:23px}
  .app-content .stats{grid-template-columns:1fr}
  .app-content .form-grid{grid-template-columns:1fr}
  .app-content .form-grid .full{grid-column:auto}
  .app-content .row-between{align-items:flex-start;gap:10px;flex-wrap:wrap}
  .app-content .table-wrap{max-width:100%;overscroll-behavior-x:contain}
  .app-topbar .topbar-title strong{font-size:14px}
  .public-header{padding:0 14px}.public-main{width:calc(100% - 24px);margin:18px auto}
}
@media(prefers-reduced-motion:reduce){.app-shell,.app-sidebar,.sidebar-backdrop{transition:none}}
@media print{.app-sidebar,.app-topbar,.sidebar-backdrop,.public-header{display:none!important}.app-shell{display:block!important;min-height:0}.app-main{min-height:0}.app-content,.public-main{width:100%;margin:0;min-height:0}.app-content .no-print{display:none!important}}

/* Home dashboard with clickable business summaries. */
.app-sidebar{background:var(--menu-bg,#1c252d);color:var(--menu-ink,#f4f6f8)}
.sidebar-brand,.sidebar-brand-text strong,.sidebar-nav .sidebar-link,.sidebar-bottom .sidebar-link,.sidebar-collapse{color:var(--menu-ink,#f4f6f8)}
.sidebar-brand-text small{color:var(--menu-ink,#f4f6f8);opacity:.68}
.sidebar-nav .sidebar-link:hover,.sidebar-bottom .sidebar-link:hover,.sidebar-collapse:hover{background:color-mix(in srgb,var(--menu-ink,#fff) 12%,transparent);color:var(--menu-ink,#fff)}
.sidebar-nav .sidebar-link[aria-current="page"]{background:color-mix(in srgb,var(--gold) 25%,transparent);color:var(--menu-ink,#fff)}
.nav-icon,.collapse-glyph{color:var(--gold)}
.dashboard-hero{position:relative;isolation:isolate;min-height:222px;display:flex;align-items:center;justify-content:space-between;overflow:hidden;padding:28px 34px;margin-bottom:18px;border:1px solid #e4e9ef;border-radius:18px;background:linear-gradient(115deg,#fff 0%,#f6f8fb 62%,#edf4f1 100%);box-shadow:0 8px 24px #1c252d08}
.dashboard-hero h1{margin:3px 0 5px;font-size:30px;letter-spacing:-.7px}.dashboard-hero p:not(.eyebrow){margin:0;color:#69798a;font-size:14px}.dashboard-hero .eyebrow{color:var(--gold)}
.dashboard-hero-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.dashboard-hero-actions a{display:inline-flex;align-items:center;min-height:39px;padding:9px 13px;border-radius:8px;font-size:13px;font-weight:700}.dashboard-hero-primary{background:var(--ink);color:#fff}.dashboard-hero-primary:hover,.dashboard-hero-secondary:hover{text-decoration:none;transform:translateY(-1px)}.dashboard-hero-secondary{border:1px solid #dce2e8;background:#fff;color:#344355}
.dashboard-hero-art{position:absolute;z-index:-1;right:42px;top:50%;width:205px;height:205px;transform:translateY(-50%);display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 45% 42%,#fff 0 24%,#e5eee9 25% 52%,#dce9e2 53% 100%);color:#3f755e}.dashboard-hero-art>.dashboard-icon{width:88px;height:88px;background:#fff;box-shadow:0 12px 28px #1c252d16}.dashboard-hero-art .dashboard-icon svg{width:48px;height:48px}.hero-orbit{position:absolute;border:1px solid #9bb8a677;border-radius:50%;inset:14px}.hero-orbit-two{inset:0;transform:rotate(48deg) scaleX(.75)}
.dashboard-icon{width:48px;height:48px;flex:0 0 48px;display:grid;place-items:center;border-radius:14px;background:#f0f3f6;color:#4c6176}.dashboard-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.dashboard-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.dashboard-kpi{min-width:0;padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 3px 12px #1c252d08;color:var(--ink);transition:transform .16s ease,box-shadow .16s ease}.dashboard-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px #1c252d12;text-decoration:none}.dashboard-kpi-top{display:flex;align-items:center;gap:11px;color:#657588;font-size:13px;font-weight:650}.dashboard-kpi-top .dashboard-icon{width:42px;height:42px;flex-basis:42px;border-radius:12px}.kpi-clients .dashboard-icon{background:#eaf1fb;color:#4874a5}.kpi-projects .dashboard-icon{background:#eaf5ef;color:#438268}.dashboard-kpi-arrow{margin-left:auto;color:#8b98a6;font-size:18px}.dashboard-kpi>strong{display:block;margin:12px 0 1px;color:#1c2935;font-size:32px;line-height:1.15;font-variant-numeric:tabular-nums}.dashboard-kpi small{color:#7a8794;font-size:11px}
.dashboard-overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.dashboard-panel{min-width:0;padding:19px 20px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 3px 12px #1c252d08}.dashboard-panel-heading{display:flex;align-items:center;gap:12px;padding-bottom:13px;border-bottom:1px solid #edf0f3}.dashboard-panel-heading>.dashboard-icon,.dashboard-panel-heading>span:first-child:has(.dashboard-icon){width:43px;height:43px;flex:0 0 43px;display:grid;place-items:center;border-radius:12px;background:#f1f3f5;color:#56708a}.dashboard-panel-heading>.dashboard-icon svg,.dashboard-panel-heading>span:first-child .dashboard-icon svg{width:23px;height:23px}.dashboard-panel-heading>div{min-width:0}.dashboard-panel-heading h2{margin:0;font-size:17px}.dashboard-panel-heading p{margin:2px 0 0;color:#7c8996;font-size:11px}.dashboard-panel-heading>a{margin-left:auto;color:#5879a0;font-size:11px;font-weight:700;white-space:nowrap}.dashboard-status-list{padding-top:4px}.dashboard-status-row{display:grid;grid-template-columns:11px minmax(0,1fr) 35px minmax(78px,auto);align-items:center;gap:9px;min-height:39px;border-bottom:1px solid #f0f2f4;color:#354456;font-size:12px}.dashboard-status-row:last-child{border:0}.dashboard-status-row:hover{color:#1f5f91;text-decoration:none}.dashboard-status-row>strong{text-align:right;font-variant-numeric:tabular-nums}.dashboard-status-amount{text-align:right;color:#758291;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.status-dot{width:9px;height:9px;border-radius:50%;background:#91a0ae}.status-waiting,.status-due,.status-draft{background:#d7a84f}.status-signed{background:#538cc2}.status-progress,.status-partial{background:#8b72c0}.status-finished,.status-paid{background:#55a27c}.status-refused{background:#cc6c6c}
.dashboard-finance{margin-bottom:18px;padding:20px;border:1px solid #e2e9e5;border-radius:15px;background:linear-gradient(115deg,#f7faf8,#fff)}.dashboard-finance-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:13px}.dashboard-finance-heading h2{margin:1px 0;font-size:18px}.dashboard-finance-heading>a{color:#5679a0;font-size:12px;font-weight:700;white-space:nowrap}.dashboard-finance-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.finance-card{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;column-gap:13px;padding:15px 17px;border:1px solid #e6ece8;border-radius:12px;background:#fff;color:var(--ink)}.finance-card:hover{text-decoration:none;border-color:#c8d8cd}.finance-card>.dashboard-icon{grid-row:1/4;width:42px;height:42px;flex-basis:42px;border-radius:12px;background:#e8f3ec;color:#438268}.finance-outstanding>.dashboard-icon{background:#fbf1e4;color:#ba8741}.finance-card>span:not(.dashboard-icon){color:#718090;font-size:12px}.finance-card>strong{font-size:23px;line-height:1.25;font-variant-numeric:tabular-nums}.finance-card>small{color:#87939f;font-size:10px}.dashboard-recent{margin-bottom:6px}.dashboard-recent .table-wrap{margin:8px -4px -4px}.dashboard-project-link{font-weight:700}.dashboard-recent td{white-space:normal}
.dashboard-color-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.dashboard-color-controls input[type=color]{width:76px;height:42px;padding:4px;cursor:pointer}
@media(max-width:980px){.dashboard-hero-art{right:24px;width:170px;height:170px}.dashboard-hero{padding-right:220px}}
@media(max-width:700px){.dashboard-hero{min-height:190px;padding:22px 19px}.dashboard-hero-art{right:-58px;width:150px;height:150px;opacity:.55}.dashboard-hero h1{font-size:25px}.dashboard-hero p:not(.eyebrow){max-width:75%;font-size:12px}.dashboard-overview-grid{grid-template-columns:1fr}.dashboard-panel{padding:16px}.dashboard-finance{padding:16px}.dashboard-finance-heading{align-items:flex-start}.dashboard-status-row{grid-template-columns:10px minmax(0,1fr) 30px minmax(72px,auto)}}
@media(max-width:520px){.dashboard-kpis,.dashboard-finance-cards{grid-template-columns:1fr;gap:10px}.dashboard-kpi{padding:15px 16px}.dashboard-kpi>strong{font-size:29px;margin-top:8px}.dashboard-hero{padding:18px 15px;min-height:205px}.dashboard-hero-art{right:-88px;opacity:.35}.dashboard-hero p:not(.eyebrow){max-width:90%}.dashboard-hero-actions{margin-top:14px}.dashboard-hero-actions a{font-size:11px;padding:8px 10px}.dashboard-color-controls{grid-template-columns:1fr}}

/* Clients submenu, sortable list headers and payment reminders. */
.sidebar-nav-group{display:flex;flex-direction:column;gap:2px}
.sidebar-group-link .sidebar-group-caret{margin-left:auto;color:var(--menu-ink,#fff);opacity:.65;font-size:14px}
.sidebar-nav-group.active-group>.sidebar-group-link{background:color-mix(in srgb,var(--gold) 13%,transparent);color:var(--menu-ink,#fff)}
.sidebar-subnav{display:flex;flex-direction:column;gap:2px;margin:0 0 7px 30px;padding-left:13px;border-left:1px solid color-mix(in srgb,var(--menu-ink,#fff) 24%,transparent)}
.sidebar-subnav a{padding:7px 9px;border-radius:6px;color:var(--menu-ink,#fff);opacity:.76;font-size:11px;line-height:1.3}
.sidebar-subnav a:hover{background:color-mix(in srgb,var(--menu-ink,#fff) 12%,transparent);opacity:1;text-decoration:none}
.sidebar-subnav a[aria-current="page"]{background:color-mix(in srgb,var(--gold) 23%,transparent);opacity:1;font-weight:700}
.sidebar-collapsed .sidebar-subnav,.sidebar-collapsed .sidebar-group-caret{display:none}
.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link{justify-content:center;padding-inline:0;gap:0}
.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link .nav-label{display:none}
.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link[aria-current="page"]{box-shadow:inset 0 -3px var(--gold)}
.sort-header{display:inline-flex;align-items:center;gap:4px;color:inherit;font:inherit}
.sort-header:hover{color:#285f9a;text-decoration:none}
.client-list-table{min-width:680px;font-size:12px}
.client-list-table th,.client-list-table td{padding:7px 9px}
.client-list-table td{vertical-align:middle}
.client-balance{font-weight:750;font-variant-numeric:tabular-nums;color:#344355;white-space:nowrap}
.reminder-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.reminder-summary>div{display:flex;flex-direction:column;gap:4px;padding:15px 18px;border:1px solid var(--line);border-radius:12px;background:#fff}
.reminder-summary span{color:#738193;font-size:12px}.reminder-summary strong{font-size:22px;font-variant-numeric:tabular-nums}
.reminder-table{min-width:1120px}.reminder-table td{vertical-align:middle}
.overdue-badge{display:inline-block;padding:3px 8px;border-radius:20px;background:#fff0eb;color:#ac5737;font-size:11px;font-weight:700;white-space:nowrap}
.reminder-action{padding:7px 10px;font-size:11px;white-space:nowrap}
@media(max-width:800px){.sidebar-collapsed .sidebar-subnav{display:flex;margin-left:30px;padding-left:13px}.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link{justify-content:flex-start;padding:9px 11px;gap:13px}.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link .nav-label{display:inline}.sidebar-collapsed .sidebar-group-caret{display:inline}.sidebar-collapsed .sidebar-nav-group>.sidebar-group-link[aria-current="page"]{box-shadow:none}}
@media(max-width:650px){.reminder-summary{grid-template-columns:1fr}.reminder-summary>div{padding:12px 14px}.reminder-summary strong{font-size:19px}}

/* Ergonomie listes : sous-menu dépliant, actions visibles et chantiers groupés. */
.sidebar-nav-group .sidebar-group-link{width:100%;cursor:pointer}
.sidebar-subnav{display:none}
.sidebar-nav-group.subnav-open .sidebar-subnav{display:flex}
.sidebar-nav-group.subnav-open .sidebar-group-caret{transform:rotate(180deg)}
.sidebar-collapsed .sidebar-nav-group .sidebar-subnav{display:none}
.client-list-table{min-width:680px}
.client-actions{gap:7px}
.client-actions .inline-delete{display:inline-flex;align-items:center}
.icon-action{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid #e0e5eb;border-radius:9px;background:#fff;color:#43566b;font-size:18px;line-height:1;transition:background .15s,border-color .15s,transform .15s}
.icon-action:hover{background:#f1f5f8;border-color:#bfcbd7;text-decoration:none;transform:translateY(-1px)}
.icon-action.icon-delete{color:#a84e4e;background:#fffafa;border-color:#f0dede}
.icon-action.icon-delete:hover{background:#fff0f0;border-color:#e6bcbc}
.create-action{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.create-action>span:first-child{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#ffffff26;font-size:20px;line-height:1}
.project-client-accordion{border:1px solid var(--line);border-radius:10px;margin:10px 0;background:#fff;overflow:hidden}
.project-client-accordion>summary{display:flex;align-items:center;gap:12px;padding:13px 15px;cursor:pointer;list-style:none;font-weight:700;color:#2e4051}
.project-client-accordion>summary::-webkit-details-marker{display:none}
.project-client-accordion>summary:hover{background:#f7f9fb}
.project-client-name{flex:1;min-width:0}
.project-count{border-radius:20px;background:#eef3f7;color:#637487;padding:4px 9px;font-size:11px;font-weight:600;white-space:nowrap}
.project-accordion-caret{color:#748396;transition:transform .15s}
.project-client-accordion[open] .project-accordion-caret{transform:rotate(180deg)}
.project-client-accordion .table-wrap{padding:0 10px 8px}
.project-client-accordion table{min-width:600px}
.project-client-accordion td{vertical-align:middle}
#menu-colors{scroll-margin-top:18px;padding:15px 16px;border:1px solid #e0e7ee;border-radius:10px;background:#f8fafc}
#menu-colors>strong{display:block;margin-bottom:4px;color:#26394c;font-size:15px}
@media(max-width:800px){.sidebar-collapsed .sidebar-nav-group.subnav-open .sidebar-subnav{display:flex}.project-client-accordion>summary{padding:12px}.project-client-accordion .table-wrap{padding-inline:6px}}
@media(max-width:520px){.create-action{font-size:12px;padding:9px 11px}.icon-action{width:32px;height:32px}}

/* Relevé de compte client par chantier et export PDF. */
.account-list-table{min-width:760px;font-size:10px}
.account-list-table th,.account-list-table td{padding:5px 7px}
.account-list-table td{vertical-align:middle}
.account-statement-document{max-width:980px;margin:18px auto;background:#fff;padding:30px 34px;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 22px #202b360c;color:#263545;font-size:10px}
.statement-header{height:auto;min-height:96px;display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:0 0 20px;background:transparent;color:inherit;border-bottom:2px solid var(--gold)}
.statement-company{display:flex;align-items:flex-start;gap:16px;max-width:55%}
.statement-company strong{font-size:15px;color:#223448}
.statement-company p,.statement-recipient p{margin:4px 0;color:#687789;font-size:10px;line-height:1.4}
.statement-logo{max-width:140px;max-height:75px;object-fit:contain}
.statement-recipient{text-align:right;max-width:42%;font-size:11px}
.statement-recipient>span{display:block;margin-bottom:8px;color:#9b804c;font-size:10px;font-weight:800;letter-spacing:1px}
.statement-recipient>strong{font-size:13px;color:#263545}
.statement-title{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin:18px 0 14px}
.statement-title h1{margin:1px 0;font-size:21px;line-height:1.2;color:#263545}
.statement-title>div>p:last-child{margin:5px 0 0;color:#6d7a89;font-size:10px}
.statement-date{color:#718096;font-size:10px;white-space:nowrap}
.statement-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0 18px}
.statement-summary>div{display:flex;flex-direction:column;gap:5px;min-height:68px;padding:9px 11px;border:1px solid #e5eaf0;border-radius:9px;background:#f8fafc}
.statement-summary span{color:#718096;font-size:10px;text-transform:uppercase;letter-spacing:.4px}
.statement-summary strong{font-size:14px;color:#263545;font-variant-numeric:tabular-nums;white-space:nowrap}
.statement-summary .statement-balance{background:#f8f3e8;border-color:#ebdfc6}
.statement-summary .statement-balance strong{color:#755b2d}
.statement-section{margin:15px 0}
.statement-section h2{margin:0 0 8px;padding-bottom:6px;border-bottom:1px solid #e4e9ef;font-size:13px;color:#2d4053}
.account-statement-document table{width:100%;border-collapse:collapse;font-size:10px}
.account-statement-document th{padding:6px 7px;background:#eff3f7;color:#58697a;text-align:left;font-size:8px;letter-spacing:.45px}
.account-statement-document td{padding:6px 7px;border-bottom:1px solid #e8edf2;white-space:normal;vertical-align:top}
.account-statement-document tbody tr:last-child td{border-bottom:0}
.account-statement-document .money{text-align:right;font-weight:700;white-space:nowrap}
.statement-ledger th:nth-child(n+4),.statement-ledger td:nth-child(n+4){text-align:right;white-space:nowrap}
.statement-note{margin:16px 0 0;padding:9px 11px;border-left:3px solid var(--gold);background:#faf8f3;color:#617080;font-size:9px}
.statement-footer{margin-top:18px;padding-top:8px;border-top:1px solid #dfe5eb;color:#7b8794;font-size:8px;text-align:center}
.account-email-form{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.account-email-form .primary{background:#267ebc}
@media(max-width:760px){.account-statement-document{padding:20px 16px}.statement-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.statement-header{flex-direction:column}.statement-company,.statement-recipient{max-width:100%}.statement-recipient{text-align:left}.statement-title{align-items:flex-start;flex-direction:column}.account-statement-document .table-wrap{overflow:auto}.account-statement-document table{min-width:620px}}
@media print{.account-statement-document{max-width:none;margin:0;padding:0;border:0;border-radius:0;box-shadow:none}.statement-summary>div,.statement-note,.account-statement-document th{print-color-adjust:exact;-webkit-print-color-adjust:exact}.account-statement-document table tr{break-inside:avoid;page-break-inside:avoid}.statement-header{break-inside:avoid}.statement-summary,.statement-accepted,.statement-balance{break-inside:avoid;page-break-inside:avoid}@page{size:A4;margin:14mm}}

/* Relevé client : mise en page plus dense à l’écran et dans le PDF joint. */
.account-statement-document{padding:20px 24px;line-height:1.3}
.statement-header{min-height:0;gap:18px;padding-bottom:12px}
.statement-company{gap:12px}
.statement-company p,.statement-recipient p{margin:2px 0;line-height:1.25}
.statement-recipient>span{margin-bottom:4px}
.statement-title{gap:12px;margin:12px 0 8px}
.statement-summary{gap:6px;margin:10px 0 12px}
.statement-summary>div{gap:3px;min-height:0;padding:7px 9px}
.statement-summary strong{font-size:12px}
.statement-section{margin:10px 0}
.statement-section h2{margin-bottom:5px;padding-bottom:4px}
.account-statement-document th{padding:4px 6px}
.account-statement-document td{padding:4px 6px;line-height:1.25}
.statement-note{margin-top:10px;padding:7px 9px}
.statement-footer{margin-top:10px;padding-top:6px}

/* Couleur des documents réglable dans Paramètres > Mes documents > Visuels. */
.print-heading{border-bottom-color:var(--doc-color,#3978bd)}
.print-quote-title h1{color:var(--doc-color,#3978bd)}
.print-lines th,.print-page-two .print-net-pay{background:var(--doc-color,#3978bd)}
.print-section-title{background:#e7eef7}
.invoice-parties{border-bottom:2px solid var(--doc-color,#3978bd)}
.invoice-document>h1{color:var(--doc-color,#3978bd)}
.invoice-document th{background:var(--doc-color,#3978bd);color:#fff;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.invoice-document .balance{color:var(--doc-color,#3978bd)}
.statement-header{border-bottom-color:var(--doc-color,#3978bd)}
.statement-recipient>span,.statement-summary .statement-balance strong{color:var(--doc-color,#3978bd)}
.statement-section h2{border-bottom-color:color-mix(in srgb,var(--doc-color,#3978bd) 32%,white)}
.account-statement-document th{background:color-mix(in srgb,var(--doc-color,#3978bd) 13%,white);color:#364b61;print-color-adjust:exact;-webkit-print-color-adjust:exact}
.statement-note{border-left-color:var(--doc-color,#3978bd)}
.document-qr-area{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:18px 0 0;padding-top:12px;border-top:1px solid #e4e9ef;color:#34465a}
.document-qr-area>div:first-child{max-width:300px;text-align:right;font-size:10px;line-height:1.45}
.document-qr-area p{margin:3px 0}
.document-qr{width:84px;height:84px;flex:none}
.document-qr svg{width:100%;height:100%;display:block}
.invoice-qr-area{break-inside:avoid;page-break-inside:avoid}
.statement-qr-area{break-inside:avoid;page-break-inside:avoid}
@media print{
  .print-page{min-height:0;margin:0;break-after:page;page-break-after:always}
  .print-page-three{break-after:auto;page-break-after:auto}
  .print-page-footer{margin-top:12px}
  .invoice-document table{width:100%;table-layout:auto}
  .invoice-document thead,.account-statement-document thead{display:table-header-group}
  .invoice-document tr,.account-statement-document tbody tr{break-inside:avoid;page-break-inside:avoid}
  .statement-accepted{break-inside:auto;page-break-inside:auto}
  .statement-summary,.statement-header,.statement-qr-area{break-inside:avoid;page-break-inside:avoid}
  .document-qr-area{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
@media print{
  .invoice-document{font-size:9pt}
  .invoice-document table{font-size:8pt;table-layout:fixed}
  .invoice-document th,.invoice-document td{padding:4px 3px;overflow-wrap:anywhere;white-space:normal}
  .invoice-document th:nth-child(1){width:5%}
  .invoice-document th:nth-child(2){width:34%}
  .invoice-document th:nth-child(3){width:12%}
  .invoice-document th:nth-child(4){width:14%}
  .invoice-document th:nth-child(5){width:9%}
  .invoice-document th:nth-child(6){width:14%}
  .invoice-document th:nth-child(7){width:12%}
}

/* Impressions navigateur : mêmes blocs compacts que les PDF joints aux e-mails. */
@media print{
  .print-document{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;box-shadow:none!important}
  .print-page{display:block!important;min-height:0!important;height:auto!important;margin:0 0 8mm!important;padding:0!important;gap:8px!important;break-after:auto!important;page-break-after:auto!important}
  .print-page-three{break-after:auto!important;page-break-after:auto!important}
  .print-page-footer{margin-top:8px!important}
  .print-lines{width:100%;table-layout:fixed}
  .print-lines thead{display:table-header-group}
  .print-lines th,.print-lines td{overflow-wrap:anywhere;white-space:normal}
  .print-lines tr{break-inside:avoid;page-break-inside:avoid}
  .print-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .print-gallery-item,.print-signature-blocks,.print-totals,.document-qr-area{break-inside:avoid;page-break-inside:avoid}
  .invoice-document{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important}
  .invoice-document table{min-width:0!important;width:100%;table-layout:fixed}
  .account-statement-document{width:auto!important;max-width:none!important;margin:0!important;padding:0!important}
  .account-statement-document table{min-width:0!important;width:100%;table-layout:fixed}
  .account-statement-document th,.account-statement-document td{overflow-wrap:anywhere}
  .invoice-document th,.invoice-document td{overflow-wrap:anywhere}
  @page{size:A4;margin:12mm}
}
@media print{.print-page-footer strong{display:none!important}}

@media print{
  .client-list-card{border:0!important;padding:0!important;box-shadow:none!important}
  .client-list-table{min-width:0!important;width:100%!important;table-layout:fixed!important;font-size:9pt!important}
  .client-list-table th,.client-list-table td{padding:5px 4px!important;overflow-wrap:anywhere}
  .client-list-table thead{display:table-header-group}
  .client-list-table tr{break-inside:avoid;page-break-inside:avoid}
  .client-list-table th:last-child,.client-list-table td:last-child{display:none!important}
  .client-list-table a{color:#111!important;text-decoration:none!important}
  @page{size:A4 portrait;margin:12mm}
}


/* Facture : isole l’en-tête du style global du site et aligne les commandes. */
.invoice-print-controls{max-width:1000px;margin:12px auto 14px;display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap}
.invoice-print-controls>*{position:static;flex:0 0 auto;min-width:0}
.invoice-parties{position:static;width:100%;height:auto;min-height:0;margin:0 0 22px;padding:0 0 18px;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;background:#fff;color:#263545;border-bottom:2px solid var(--doc-color,#3978bd);text-align:left}
.invoice-parties>div{flex:1 1 0;min-width:0}
.invoice-parties>div:last-child{text-align:right}
.invoice-parties strong{display:block;color:#263545;font-size:14px;line-height:1.4;overflow-wrap:anywhere}
.invoice-parties p{margin:4px 0;color:#586777;font-size:10pt;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere}
@media(max-width:700px){.invoice-parties{flex-direction:column;gap:10px}.invoice-parties>div:last-child{text-align:left}}
@media print{
  .invoice-print-controls{display:none!important}
  .invoice-parties{height:auto!important;min-height:0!important;margin:0 0 7mm!important;padding:0 0 5mm!important;display:flex!important;flex-direction:row!important;background:#fff!important;color:#263545!important;break-inside:avoid;page-break-inside:avoid}
  .invoice-parties>div:last-child{text-align:right}
  .invoice-parties p{font-size:8.5pt;line-height:1.35}
  .invoice-document>h1{margin:0 0 4mm;font-size:20pt}
  .invoice-document>p{margin:2mm 0;font-size:9pt}
  .invoice-document table{margin:5mm 0}
}

/* Impression A4 : largeur stable et blocs de document indépendants du shell. */
@media print{
  html,body{width:100%!important;min-width:0!important;margin:0!important;padding:0!important;background:#fff!important;overflow:visible!important}
  body{color:#202b36!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .app-shell,.app-main,.app-content,.public-main{display:block!important;width:100%!important;max-width:none!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}
  .app-sidebar,.app-topbar,.sidebar-backdrop,.public-header,.no-print,.print-controls{display:none!important}
  .print-document,.invoice-document,.account-statement-document{box-sizing:border-box!important;width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important}
  .invoice-parties{all:unset;box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:start!important;gap:10mm!important;width:100%!important;height:auto!important;min-height:0!important;margin:0 0 7mm!important;padding:0 0 5mm!important;border-bottom:2px solid var(--doc-color,#3978bd)!important;background:#fff!important;color:#202b36!important;opacity:1!important;transform:none!important;filter:none!important;position:static!important}
  .invoice-parties>div{display:block!important;min-width:0!important;width:auto!important;max-width:none!important;opacity:1!important;color:#202b36!important;overflow-wrap:anywhere!important}
  .invoice-parties>div:last-child{text-align:right!important}
  .invoice-parties strong,.invoice-parties p{color:#202b36!important;opacity:1!important;text-shadow:none!important}
  .invoice-parties strong{font-size:10pt!important;line-height:1.35!important}
  .invoice-parties p{font-size:8.5pt!important;line-height:1.35!important;margin:2mm 0!important}
  .statement-header{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:start!important;gap:8mm!important;width:100%!important;height:auto!important;min-height:0!important;margin:0 0 7mm!important;padding:0 0 5mm!important;background:#fff!important;color:#202b36!important;overflow:visible!important}
  .statement-company,.statement-recipient{min-width:0!important;width:auto!important;max-width:none!important;overflow-wrap:anywhere!important}
  .statement-recipient{text-align:right!important}
  .statement-logo{max-width:35mm!important;max-height:22mm!important}
  .account-statement-document{font-size:9pt!important}
  .account-statement-document table{font-size:8pt!important;table-layout:fixed!important}
  .account-statement-document th,.account-statement-document td{padding:2mm 1.5mm!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .statement-ledger th:nth-child(1){width:12%}.statement-ledger th:nth-child(2){width:14%}.statement-ledger th:nth-child(3){width:30%}.statement-ledger th:nth-child(4),.statement-ledger th:nth-child(5){width:15%}.statement-ledger th:nth-child(6){width:14%}
  .print-page{display:flex!important;flex-direction:column!important;min-height:270mm!important;height:auto!important;margin:0!important;padding:0!important;gap:10px!important;break-after:page!important;page-break-after:always!important}
  .print-page-three{break-after:auto!important;page-break-after:auto!important}
  .print-page-footer{margin-top:auto!important;padding-top:8px!important}
  .print-page-footer strong{display:block!important}
  .print-lines{width:100%!important;table-layout:fixed!important;font-size:8pt!important}
  .print-lines th,.print-lines td{padding:2mm 1mm!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .print-lines thead,.invoice-document thead,.account-statement-document thead{display:table-header-group!important}
  .print-lines tr,.invoice-document tr,.account-statement-document tbody tr{break-inside:avoid!important;page-break-inside:avoid!important}
  .invoice-document{font-size:9pt!important}
  .invoice-document table{width:100%!important;min-width:0!important;table-layout:fixed!important;font-size:8pt!important;margin:5mm 0!important}
  .invoice-document th,.invoice-document td{padding:2mm 1mm!important;white-space:normal!important;overflow-wrap:anywhere!important}
  .print-qr-area,.document-qr-area{break-inside:avoid!important;page-break-inside:avoid!important}
  @page{size:A4 portrait;margin:12mm}
}


/* Bloc société/client de facture : nom distinct pour ne jamais reprendre le bandeau global. */
article.invoice-document > .invoice-parties{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;width:100%;margin:0 0 22px;padding:0 0 18px;border-bottom:2px solid var(--doc-color,#3978bd);background:#fff;color:#263545;opacity:1;position:static;transform:none;filter:none}
article.invoice-document > .invoice-parties>div{display:block;min-width:0;width:auto;max-width:none;color:#263545;opacity:1;overflow-wrap:anywhere}
article.invoice-document > .invoice-parties>div:last-child{text-align:right}
article.invoice-document > .invoice-parties strong{display:block;color:#263545;font-size:14px;line-height:1.4;opacity:1}
article.invoice-document > .invoice-parties p{margin:4px 0;color:#586777;font-size:10pt;line-height:1.45;white-space:pre-line;overflow-wrap:anywhere;opacity:1}
@media(max-width:700px){article.invoice-document > .invoice-parties{grid-template-columns:minmax(0,1fr);gap:10px}article.invoice-document > .invoice-parties>div:last-child{text-align:left}}
@media print{
  article.invoice-document > .invoice-parties{all:unset;box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:start!important;gap:10mm!important;width:100%!important;height:auto!important;min-height:0!important;margin:0 0 7mm!important;padding:0 0 5mm!important;border-bottom:2px solid var(--doc-color,#3978bd)!important;background:#fff!important;color:#202b36!important;opacity:1!important;position:static!important;transform:none!important;filter:none!important;break-inside:avoid!important;page-break-inside:avoid!important}
  article.invoice-document > .invoice-parties>div{display:block!important;min-width:0!important;width:auto!important;max-width:none!important;color:#202b36!important;opacity:1!important;overflow-wrap:anywhere!important}
  article.invoice-document > .invoice-parties>div:last-child{text-align:right!important}
  article.invoice-document > .invoice-parties strong,article.invoice-document > .invoice-parties p{color:#202b36!important;opacity:1!important;text-shadow:none!important}
  article.invoice-document > .invoice-parties strong{font-size:10pt!important;line-height:1.35!important}
  article.invoice-document > .invoice-parties p{font-size:8.5pt!important;line-height:1.35!important;margin:2mm 0!important}
}

/* Compatibilité avec une page facture conservant encore l’ancien nom de classe. */
article.invoice-document > header.invoice-document-head,
article.invoice-document > div.invoice-document-head,
article.invoice-document > .invoice-parties{all:unset;box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:24px;width:100%;height:auto;min-height:0;margin:0 0 22px;padding:0 0 18px;border-bottom:2px solid var(--doc-color,#3978bd);background:#fff;color:#263545;opacity:1;position:static;transform:none;filter:none;overflow:visible}
article.invoice-document > header.invoice-document-head>div,
article.invoice-document > div.invoice-document-head>div,
article.invoice-document > .invoice-parties>div{display:block;min-width:0;width:auto;max-width:none;color:#263545;opacity:1;overflow-wrap:anywhere}
article.invoice-document > header.invoice-document-head>div:last-child,
article.invoice-document > div.invoice-document-head>div:last-child,
article.invoice-document > .invoice-parties>div:last-child{text-align:right}
article.invoice-document > header.invoice-document-head strong,
article.invoice-document > header.invoice-document-head p,
article.invoice-document > div.invoice-document-head strong,
article.invoice-document > div.invoice-document-head p,
article.invoice-document > .invoice-parties strong,
article.invoice-document > .invoice-parties p{color:#263545;opacity:1;text-shadow:none}
@media(max-width:700px){
  article.invoice-document > header.invoice-document-head,
  article.invoice-document > div.invoice-document-head,
  article.invoice-document > .invoice-parties{grid-template-columns:minmax(0,1fr);gap:10px}
  article.invoice-document > header.invoice-document-head>div:last-child,
  article.invoice-document > div.invoice-document-head>div:last-child,
  article.invoice-document > .invoice-parties>div:last-child{text-align:left}
}
@media print{
  article.invoice-document > header.invoice-document-head,
  article.invoice-document > div.invoice-document-head,
  article.invoice-document > .invoice-parties{all:unset;box-sizing:border-box!important;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:start!important;gap:10mm!important;width:100%!important;height:auto!important;min-height:0!important;margin:0 0 7mm!important;padding:0 0 5mm!important;border-bottom:2px solid var(--doc-color,#3978bd)!important;background:#fff!important;color:#202b36!important;opacity:1!important;position:static!important;transform:none!important;filter:none!important;overflow:visible!important;break-inside:avoid!important;page-break-inside:avoid!important}
  article.invoice-document > header.invoice-document-head>div,
  article.invoice-document > div.invoice-document-head>div,
  article.invoice-document > .invoice-parties>div{display:block!important;min-width:0!important;width:auto!important;max-width:none!important;color:#202b36!important;opacity:1!important;overflow-wrap:anywhere!important}
  article.invoice-document > header.invoice-document-head>div:last-child,
  article.invoice-document > div.invoice-document-head>div:last-child,
  article.invoice-document > .invoice-parties>div:last-child{text-align:right!important}
  article.invoice-document > header.invoice-document-head strong,
  article.invoice-document > header.invoice-document-head p,
  article.invoice-document > div.invoice-document-head strong,
  article.invoice-document > div.invoice-document-head p,
  article.invoice-document > .invoice-parties strong,
  article.invoice-document > .invoice-parties p{color:#202b36!important;opacity:1!important;text-shadow:none!important}
}
.quote-designation .quote-service-picker{display:block;width:100%;margin-top:5px;padding:6px 7px;font-size:10px;color:#536577;background:#f8fafc;border:1px solid #d9e0e7;border-radius:5px}
.vat-certification-box{border:1px solid #cbd7e3;background:#f5f8fb;border-radius:7px;padding:10px 12px;margin:8px 0;font-size:12px;line-height:1.45;break-inside:avoid}
.vat-certification-box strong{display:block;margin-bottom:4px;color:#29445f}
.quote-designation .catalog-update-option{display:flex;align-items:center;gap:6px;margin-top:5px;font-size:11px;font-weight:500;color:#506172}
.quote-designation .catalog-update-option[hidden]{display:none}
@media print{.vat-certification-box{color:#111;background:#fff;border-color:#777}}
.quote-form.hide-line-discounts .quote-discount input{display:none}
.print-hide-quantity .print-lines th:nth-child(3),.print-hide-quantity .print-lines td:nth-child(3),.print-hide-unit .print-lines th:nth-child(4),.print-hide-unit .print-lines td:nth-child(4),.print-hide-unit-price .print-lines th:nth-child(5),.print-hide-unit-price .print-lines td:nth-child(5),.print-hide-vat .print-lines th:nth-child(6),.print-hide-vat .print-lines td:nth-child(6){display:none}
.print-hide-signature .print-signature-box{display:none}
.print-mask-prices .print-lines th:nth-child(5),.print-mask-prices .print-lines td:nth-child(5),.print-mask-prices .print-lines th:nth-child(6),.print-mask-prices .print-lines td:nth-child(6),.print-mask-prices .print-lines th:nth-child(7),.print-mask-prices .print-lines td:nth-child(7),.print-mask-prices .print-totals{display:none!important}
.print-section-total td{font-weight:700;border-top:1px solid #aeb9c4;background:#f7f9fb}
.print-mask-prices .print-section-total{display:none!important}

/* Editeur de devis : actions, déplacement des lignes et paiements modifiables */
.quote-editor-actions{display:flex;align-items:center;gap:10px;margin:0 0 14px}.quote-editor-spacer,.quote-toolbar-spacer{flex:1}.quote-options{position:relative;z-index:5}.quote-options>summary,.quote-more-lines>summary{list-style:none;cursor:pointer;border:1px solid #d8dee5;background:#fff;border-radius:5px;padding:8px 13px;color:#33475b;font-size:13px}.quote-options>summary::-webkit-details-marker,.quote-more-lines>summary::-webkit-details-marker{display:none}.quote-options[open]>summary,.quote-more-lines[open]>summary{background:#f3f7fb}.quote-options-menu{position:absolute;top:calc(100% + 5px);left:0;width:min(320px,calc(100vw - 34px));max-height:72vh;overflow:auto;background:#fff;border:1px solid #d9dfe6;border-radius:7px;box-shadow:0 8px 24px #1d2a351f;padding:12px 14px;display:grid;gap:9px}.quote-options-menu strong{margin-top:4px;font-size:12px}.quote-options-menu label{display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:450}.quote-options-menu input,.quote-methods input{width:auto;flex:none;margin:2px 0 0}.quote-more-lines{position:relative}.quote-more-lines>div{position:absolute;z-index:4;top:calc(100% + 4px);left:0;display:grid;min-width:175px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:6px;box-shadow:0 6px 18px #1d2a3517}.quote-more-lines>div button{background:#fff;text-align:left;color:#33475b;border:0}.quote-toolbar{align-items:center}.quote-section-row{display:grid;grid-template-columns:32px minmax(70px,.4fr) minmax(150px,2fr) minmax(140px,1fr) auto;gap:10px;align-items:center;background:#eaf1f8;padding:10px 12px;border-bottom:1px solid #d7e2ed}.quote-section-row[data-depth="1"]{margin-left:28px;background:#f3f6fa;border-left:2px solid #bed3e8}.quote-section-row strong{font-size:13px;color:#29445f}.quote-section-title-input{min-width:0}.quote-section-total{justify-self:end;font-size:12px;color:#435c76;white-space:nowrap}.quote-section-total[hidden]{display:none}.quote-row-menu{position:relative;justify-self:center;z-index:3}.quote-row-menu>summary{cursor:pointer;list-style:none;border:1px solid #d8dee5;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;color:#44596d;font-size:17px;line-height:1}.quote-row-menu>summary::-webkit-details-marker{display:none}.quote-row-menu>div{position:absolute;right:0;top:calc(100% + 3px);display:grid;min-width:130px;background:#fff;border:1px solid var(--line);border-radius:6px;padding:5px;box-shadow:0 5px 16px #1d2a3517}.quote-row-menu button{background:transparent;color:#33475b;text-align:left;padding:7px;font-size:12px}.quote-row-menu .quote-remove{font-size:12px;color:#9b4141}.quote-move-section{grid-column:1/-1;max-width:280px;font-size:11px!important;padding:6px!important}.quote-existing-photo,.quote-new-photo{display:inline-flex;position:relative;max-width:100%;margin:4px 5px 2px 0}.quote-photo-delete{position:absolute;right:-5px;top:-5px;border:1px solid #d6dce3;border-radius:50%;background:#fff;color:#9b4141;width:20px;height:20px;padding:0;font-size:15px;line-height:18px}.quote-entry.hide-photo-preview .quote-photo-preview{display:none!important}.quote-payment-step{grid-template-columns:90px minmax(0,1fr) 32px}.quote-remove-step{align-self:center;background:transparent;color:#9b4141;font-size:19px;padding:3px}.quote-methods{margin:8px 0 12px;padding:10px;background:#f7f9fb;border-radius:6px}.quote-methods::before{content:"Modes de règlement acceptés";display:block;width:100%;flex-basis:100%;font-size:12px;font-weight:650;color:#43566a;margin-bottom:5px}.quote-methods label{display:flex;align-items:center;gap:6px}.quote-line.is-dragging,.quote-section-row.is-dragging{opacity:.45}.quote-entry[draggable="true"]{cursor:grab}.quote-entry[draggable="true"] input,.quote-entry[draggable="true"] textarea,.quote-entry[draggable="true"] select,.quote-entry[draggable="true"] button,.quote-entry[draggable="true"] summary{cursor:auto}.quote-entry.hide-photo-preview .quote-photo-tools{grid-template-rows:auto}.quote-form:not(.show-line-discounts) .quote-discount input{display:none}.quote-form.show-line-discounts .quote-discount input{display:block}
@media(max-width:800px){.quote-editor-actions{position:sticky;top:0;z-index:4;background:#fff;padding:8px 0}.quote-section-row{grid-template-columns:30px minmax(0,1fr) auto}.quote-section-row>strong{grid-column:2}.quote-section-title-input{grid-column:2}.quote-section-total{grid-column:2;justify-self:start}.quote-section-row .quote-row-menu{grid-column:3;grid-row:1}.quote-toolbar-spacer{display:none}.quote-toolbar{justify-content:flex-start}.quote-toolbar button{flex:1 1 30%}.quote-more-lines>summary{padding:8px}.quote-more-lines{flex:1}.quote-move-section{grid-column:1/-1}.quote-photo-tools{gap:5px}}
.print-section-row.print-subsection .print-section-title{margin-left:14px;background:#eef2f6;font-size:11px;border-left:2px solid #a8bed4}
.quote-line .quote-row-number::before{content:"⠿";display:inline-block;margin-right:4px;color:#a0adba;font-size:14px;cursor:grab}
.quote-payment-step{grid-template-columns:90px minmax(0,1fr) minmax(95px,auto) 32px}.quote-step-total{font-size:11px;color:#506174;white-space:nowrap}.quote-section-row.quote-subsection td{padding-left:28px;background:#f3f6fa}.quote-line-photo img{display:inline-block;margin-right:5px;max-width:140px;max-height:110px;object-fit:contain}
.quote-type-label{display:block;padding:5px 7px;font-size:11px;font-weight:600;color:#536577}.quote-type-label select{margin:4px 0 5px;font-size:11px;padding:6px}.quote-row-menu>div .quote-duplicate,.quote-row-menu>div .quote-remove{width:100%}.quote-editor-actions>.primary{background:#3297e8;padding:8px 13px;border-radius:4px;font-size:13px}
.print-section-number{display:inline-block;min-width:28px;color:#385d84;font-weight:750}.print-subsection .print-section-number{min-width:38px}

/* Création rapide depuis les sélecteurs du devis */
.quote-quick-dialog{width:min(720px,calc(100vw - 28px));max-height:calc(100vh - 32px);overflow:auto;border:0;border-radius:12px;padding:0;box-shadow:0 18px 60px #15253855}
.quote-quick-dialog::backdrop{background:#17263888;backdrop-filter:blur(2px)}
.quote-quick-dialog form{display:flex;flex-direction:column;gap:15px;padding:22px}
.quote-quick-dialog h2{margin:0;color:#293d55;font-size:20px}
.quote-quick-dialog .quote-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.quote-quick-dialog .quote-quick-grid #quick-individual-fields{display:contents}
.quote-quick-dialog .quote-quick-grid [hidden]{display:none!important}
.quote-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}
.quote-dialog-actions .primary{background:#3297e8}
@media(max-width:600px){.quote-quick-dialog form{padding:16px}.quote-quick-dialog .quote-quick-grid{grid-template-columns:1fr}}

/* Devis : sections sans préfixe, libellé mis en avant et sous-total à droite */
.quote-section-row{grid-template-columns:minmax(0,1fr) max-content auto;gap:12px}
.quote-section-row.section-main{background:#eaf1f8;padding:12px 14px}
.quote-section-row.section-main>.quote-row-number,.quote-section-row.section-main>strong{display:none}
.quote-section-row .quote-section-title-input{grid-column:1;grid-row:1;min-width:0;width:100%;border:0;background:transparent;box-shadow:none;padding:2px 0;color:#243d59;font-size:18px;font-weight:750;line-height:1.3}
.quote-section-row .quote-section-title-input:focus{outline:1px solid #a8c7e4;outline-offset:3px}
.quote-section-row .quote-section-total{grid-column:2;grid-row:1;justify-self:end;align-self:center;font-size:12px;font-weight:650;white-space:nowrap}
.quote-section-row .quote-row-menu{grid-column:3;grid-row:1}
@media(max-width:800px){.quote-section-row,.quote-section-row.section-main{grid-template-columns:minmax(0,1fr) max-content auto;gap:7px;padding:9px}.quote-section-row.section-main>.quote-row-number,.quote-section-row.section-main>strong{display:none}.quote-section-row .quote-section-title-input{grid-column:1;grid-row:1;font-size:16px}.quote-section-row .quote-section-total{grid-column:2;grid-row:1;justify-self:end;font-size:11px}.quote-section-row .quote-row-menu{grid-column:3;grid-row:1}}
.quote-section-row.section-sub{grid-template-columns:32px minmax(70px,.4fr) minmax(150px,2fr) minmax(140px,1fr) auto}
.quote-section-row.section-sub .quote-section-title-input{grid-column:3;grid-row:1}
.quote-section-row.section-sub .quote-section-total{grid-column:4;grid-row:1}
.quote-section-row.section-sub .quote-row-menu{grid-column:5;grid-row:1}
@media(max-width:800px){.quote-section-row.section-sub{grid-template-columns:30px minmax(0,1fr) auto}.quote-section-row.section-sub .quote-section-title-input{grid-column:2;grid-row:2}.quote-section-row.section-sub .quote-section-total{grid-column:2;grid-row:3;justify-self:start}.quote-section-row.section-sub .quote-row-menu{grid-column:3;grid-row:1}}

/* Devis v10.42 : descriptions longues, tables par type et actions regroupées */
.quote-line-head,.quote-line{grid-template-columns:34px minmax(240px,3fr) 72px 88px minmax(105px,1fr) 72px minmax(110px,1fr) 34px;gap:8px}
.quote-category-heading{margin-top:18px;padding:9px 12px;background:#eef3f8;border:1px solid #dce5ed;border-bottom:0;color:#29445f;font-size:14px}
.quote-category-heading strong{font-weight:750}
.quote-line-head.category-header{display:grid;margin-bottom:0}
.quote-designation{grid-column:2;display:flex;flex-direction:column;gap:5px;min-width:0;margin:0;color:#657587;font-size:11px}
.quote-designation textarea{width:100%;min-height:105px;resize:vertical;line-height:1.45;font-size:13px;color:#26384b;padding:10px}
.quote-designation .quote-service-picker{width:100%;font-size:12px}
.quote-line .quote-photo-preview{grid-column:2/8;grid-row:2;display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.quote-line .quote-photo-preview:empty{display:none}
.quote-line .quote-row-menu{grid-column:8;grid-row:1;align-self:start}
.quote-line .quote-row-menu>div{right:0;top:calc(100% + 3px);max-height:70vh;overflow:auto;min-width:205px}
.quote-line .quote-row-menu>div>button{width:100%;text-align:left;padding:9px 8px}
.quote-type-label select{width:100%;margin-top:5px}
.quote-add-photos{position:relative;display:block;padding:9px 8px;font-size:12px;font-weight:600;color:#287fc0;cursor:pointer;border-bottom:1px solid #edf0f3}
.quote-add-photos input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.quote-line .quote-row-total{font-weight:650;white-space:nowrap}
.quote-entry.quote-special:not(.quote-section-row) textarea{grid-column:1/-1;width:100%;min-height:105px;resize:vertical;line-height:1.45;font-size:13px;padding:10px}
.quote-entry.quote-special:not(.quote-section-row)>strong{font-size:13px}
@media(max-width:800px){.quote-line-head.category-header{display:none}.quote-category-heading{margin-top:14px}.quote-line{grid-template-columns:34px minmax(0,1fr) 38px;gap:7px}.quote-line .quote-designation{grid-column:2;grid-row:1}.quote-line [name^="quantity"]{grid-column:1;grid-row:2}.quote-line [name^="unit"]{grid-column:2;grid-row:2}.quote-line [name^="unit_price_ht"]{grid-column:1;grid-row:3}.quote-line [name^="vat_rate"]{grid-column:2;grid-row:3}.quote-line .quote-discount{grid-column:1;grid-row:4;flex-direction:row;align-items:center}.quote-line .quote-photo-preview{grid-column:2/4;grid-row:5}.quote-line .quote-row-menu{grid-column:3;grid-row:1}.quote-line .quote-section-total{white-space:normal}}
/* Menu d'actions d'une ligne de devis : panneau horizontal comme la maquette utilisateur */
.quote-line .quote-row-menu>div{display:flex;align-items:stretch;gap:6px;width:min(730px,calc(100vw - 32px));min-width:0;max-width:calc(100vw - 32px);padding:10px;background:#fff;border:1px solid #d9e0e8;border-radius:9px;box-shadow:0 7px 24px #1c2c3b1c;overflow-x:auto;overflow-y:hidden}
.quote-line .quote-row-menu>div>.quote-type-label{display:flex;flex:0 0 76px;flex-direction:column;justify-content:space-between;gap:5px;padding:5px 4px;font-size:11px;line-height:1.2;text-align:center;color:#41566b}
.quote-line .quote-row-menu>div>.quote-type-label select{width:100%;min-width:0;margin:0;padding:7px 4px;font-size:12px}
.quote-line .quote-row-menu>div>.quote-add-photos{display:flex;flex:0 0 78px;align-items:center;justify-content:center;margin:0;padding:6px;border:0;border-right:1px solid #e7ebef;color:#287fc0;font-size:12px;line-height:1.25;text-align:center}
.quote-line .quote-row-menu>div>.quote-add-photos input{position:absolute;inset:0}
.quote-line .quote-row-menu>div>button{display:flex;flex:0 0 76px;align-items:center;justify-content:center;width:auto;min-height:62px;margin:0;padding:6px;border:0;border-radius:5px;background:transparent;color:#33475b;font-size:12px;font-weight:650;line-height:1.25;text-align:center;white-space:normal}
.quote-line .quote-row-menu>div>.quote-insert-before,.quote-line .quote-row-menu>div>.quote-insert-after{flex-basis:78px}
.quote-line .quote-row-menu>div>.quote-duplicate{flex-basis:88px}
.quote-line .quote-row-menu>div>.quote-remove{flex-basis:82px;color:#a03e3e}
.quote-line .quote-row-menu>div>button:hover,.quote-line .quote-row-menu>div>.quote-add-photos:hover{background:#f3f7fb}
@media(max-width:800px){.quote-line .quote-row-menu>div{width:calc(100vw - 28px);max-width:calc(100vw - 28px);right:-4px;gap:4px;padding:8px}.quote-line .quote-row-menu>div>.quote-type-label{flex-basis:68px}.quote-line .quote-row-menu>div>.quote-add-photos{flex-basis:70px}.quote-line .quote-row-menu>div>button{flex-basis:70px;min-height:58px}.quote-line .quote-row-menu>div>.quote-duplicate{flex-basis:78px}.quote-line .quote-row-menu>div>.quote-remove{flex-basis:72px}}

/* Devis v10.44 : bandeau compact, colonnes rééquilibrées et saisie assistée */
.quote-editor{max-width:1500px}.quote-back-link{margin:0 0 7px}.quote-form{gap:10px;padding:14px 18px}.quote-editor-actions{margin:0;min-height:36px;padding:0 0 8px;border-bottom:1px solid #e5ebf1}.quote-header-layout{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:18px;padding:2px 0 8px;align-items:start}.quote-document-meta{gap:7px}.quote-document-meta h2{font-size:17px;margin:0;color:#293d55}.quote-date-row{display:flex;flex-wrap:wrap;gap:7px 18px}.quote-date-row label,.quote-schedule label{display:flex;align-items:center;gap:5px;font-size:11px;white-space:nowrap;color:#52667a}.quote-date-row input,.quote-schedule input{font-size:12px;padding:3px 5px;max-width:145px}.quote-schedule{gap:7px 15px;margin-top:0}.quote-client-pickers{gap:6px;padding:0}.quote-client-pickers label{display:grid;grid-template-columns:65px minmax(0,1fr);align-items:center;gap:7px;font-size:12px}.quote-client-pickers select{margin:0;padding:7px;font-size:12px}.quote-description-toggle{font-size:12px}.quote-description textarea{min-height:52px}.quote-line-head,.quote-line{grid-template-columns:34px minmax(340px,5fr) minmax(54px,.62fr) minmax(70px,.72fr) minmax(76px,.78fr) minmax(56px,.58fr) minmax(67px,.68fr) minmax(83px,.82fr) 32px;gap:6px}.quote-line-head{padding:9px 7px;font-size:9px}.quote-line-head.category-header{grid-template-columns:34px minmax(340px,5fr) minmax(54px,.62fr) minmax(70px,.72fr) minmax(76px,.78fr) minmax(56px,.58fr) minmax(67px,.68fr) minmax(83px,.82fr) 32px}.quote-designation{position:relative;grid-column:2;display:flex;flex-direction:column;gap:4px;min-width:0;margin:0}.quote-designation textarea{width:100%;min-height:112px;margin:0;padding:9px;font-size:13px;line-height:1.42;resize:vertical}.quote-line>input[name^="quantity"],.quote-line>input[name^="unit"],.quote-line>input[name^="unit_price_ht"],.quote-line>input[name^="vat_rate"]{width:100%;min-width:0;padding:6px 5px;font-size:11px}.quote-line>input[name^="unit_price_ht"]{max-width:100px;justify-self:center}.quote-line-discount{display:block;min-width:0}.quote-line-discount input{width:100%;max-width:72px;padding:6px 4px;text-align:right;font-size:11px}.quote-line .quote-row-total{font-size:11px;font-weight:700;white-space:nowrap;text-align:right}.quote-line .quote-photo-preview{grid-column:2/9;grid-row:2;display:flex;align-items:center;flex-wrap:wrap;gap:7px;min-width:0}.quote-photo-preview select{width:auto;padding:5px 7px;font-size:10px}.quote-photo-preview select[hidden]{display:none}.quote-line .quote-row-menu{grid-column:9;grid-row:1;align-self:start}.quote-line .quote-row-menu>div{display:grid;right:0;top:calc(100% + 4px);width:190px;min-width:190px;max-width:calc(100vw - 28px);max-height:70vh;overflow:auto;gap:2px;padding:6px;background:#fff;border:1px solid #d9e0e8;border-radius:8px;box-shadow:0 7px 24px #1c2c3b1c}.quote-line .quote-row-menu>div>button,.quote-line .quote-row-menu>div>.quote-add-photos{display:block;width:100%;min-height:0;margin:0;padding:9px 8px;border:0;border-radius:5px;background:#fff;color:#33475b;font-size:12px;font-weight:550;text-align:left;line-height:1.25;cursor:pointer}.quote-line .quote-row-menu>div>.quote-remove{color:#a03e3e}.quote-line .quote-row-menu>div>button:hover,.quote-line .quote-row-menu>div>.quote-add-photos:hover{background:#f3f7fb}.quote-line .quote-row-menu>div>.quote-add-photos{position:relative;color:#287fc0}.quote-line .quote-row-menu>div>.quote-add-photos input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.quote-line-subtools{display:flex;align-items:center;gap:8px;min-height:0}.quote-move-wrap{display:flex;align-items:center;gap:6px;font-size:10px;color:#66778a}.quote-move-wrap[hidden]{display:none}.quote-move-section{max-width:260px;padding:5px 7px!important;font-size:10px!important}.catalog-update-option{font-size:10px!important;margin:0!important}.quote-service-picker{display:none!important}.catalog-suggestions{position:absolute;z-index:8;top:calc(100% - 4px);left:0;right:0;max-height:230px;overflow:auto;background:#fff;border:1px solid #cfd9e3;border-radius:7px;box-shadow:0 8px 20px #1c2c3b22;padding:4px}.catalog-suggestions[hidden]{display:none}.catalog-suggestion{display:flex!important;width:100%;flex-direction:column;gap:2px;padding:7px 9px!important;border:0!important;border-radius:4px;background:#fff!important;color:#293d55!important;text-align:left!important}.catalog-suggestion:hover{background:#eef5fb!important}.catalog-suggestion strong{font-size:12px}.catalog-suggestion span{font-size:10px;color:#647589}.quote-form.hide-line-discounts .quote-line-discount input,.quote-form:not(.show-line-discounts) .quote-line-discount input{display:none}.quote-form.show-line-discounts .quote-line-discount input{display:block}.quote-form.hide-line-discounts .quote-line-head.category-header span:nth-child(7),.quote-form:not(.show-line-discounts) .quote-line-head.category-header span:nth-child(7){visibility:hidden}
@media(max-width:800px){.quote-form{padding:12px}.quote-editor-actions{position:sticky;top:0;z-index:6;background:#fff;padding:6px 0}.quote-header-layout{grid-template-columns:1fr;gap:8px}.quote-document-meta{gap:6px}.quote-date-row{gap:5px 11px}.quote-schedule{gap:5px 10px}.quote-date-row label,.quote-schedule label{font-size:10px}.quote-date-row input,.quote-schedule input{max-width:132px;font-size:11px}.quote-client-pickers{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quote-client-pickers label{display:block;font-size:11px}.quote-client-pickers select{display:block;width:100%;margin-top:3px}.quote-line-head.category-header{display:none}.quote-line{grid-template-columns:34px minmax(0,1fr) 34px;gap:7px}.quote-line .quote-designation{grid-column:2;grid-row:1}.quote-line .quote-designation textarea{min-height:100px}.quote-line [name^="quantity"]{grid-column:1;grid-row:2}.quote-line [name^="unit"]{grid-column:2;grid-row:2}.quote-line [name^="unit_price_ht"]{grid-column:1;grid-row:3}.quote-line [name^="vat_rate"]{grid-column:2;grid-row:3}.quote-line .quote-line-discount{grid-column:1;grid-row:4}.quote-line .quote-row-total{grid-column:2;grid-row:4}.quote-line .quote-line-discount input{display:block;width:100%}.quote-line .quote-photo-preview{grid-column:2/4;grid-row:5}.quote-line .quote-row-menu{grid-column:3;grid-row:1}.quote-line .quote-row-menu>div{right:-3px}.quote-line .quote-move-wrap{flex-wrap:wrap}.quote-line .quote-move-section{max-width:190px}.quote-category-heading{margin-top:12px}.quote-line-head{display:none}}


/* Devis v10.45 : dates compactes, libellés auto-ajustés et actions simplifiées */
.quote-editor-actions .quote-options{display:none}
.app-topbar .quote-options{display:block;position:relative;z-index:30;flex:none}
.app-topbar .quote-options>summary{padding:7px 12px;border:1px solid #d8dee5;border-radius:6px;background:#fff;color:#33475b;font-size:12px;font-weight:600}
.app-topbar .quote-options-menu{left:0;right:auto;width:min(310px,calc(100vw - 28px))}
.quote-date-row,.quote-schedule{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0}
.quote-date-row label,.quote-schedule label{display:flex;align-items:center;gap:7px;min-height:23px;font-size:12px;white-space:nowrap}
.quote-date-row input,.quote-schedule input{width:132px;max-width:132px;padding:1px 3px;font-size:12px}
.quote-header-layout{grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:28px}
.quote-client-pickers{width:100%;min-width:0;align-self:start}
.quote-client-pickers label{display:grid;grid-template-columns:70px minmax(0,1fr);width:100%;align-items:center;gap:7px}
.quote-client-pickers select{display:block;width:100%;min-width:0;max-width:100%;box-sizing:border-box;margin:0;padding:8px 10px;font-size:12px}
.quote-line{align-items:start}
.quote-line .quote-row-number,.quote-line>input,.quote-line>.quote-line-discount,.quote-line>.quote-row-total,.quote-line>.quote-row-menu{align-self:start;margin-top:0}
.quote-line .quote-designation textarea{height:auto;min-height:42px;max-height:none;overflow:hidden;resize:none;line-height:1.42}
.quote-line .quote-photo-preview select{display:none!important}
.quote-line .quote-photo-preview .quote-photo-img{width:68px!important;height:52px!important;max-width:68px!important;max-height:52px!important;object-fit:cover!important;border-radius:4px}
.quote-line .quote-photo-preview .quote-existing-photo,.quote-line .quote-photo-preview .quote-new-photo{display:inline-flex;position:relative;width:68px;height:52px;margin:2px;border:1px solid #dbe2e9;border-radius:4px;overflow:hidden}
.quote-line .quote-photo-preview .quote-photo-delete{right:1px;top:1px;width:17px;height:17px;background:#fff;font-size:13px;line-height:14px}
.quote-line .quote-row-menu>div{display:grid;grid-auto-flow:row;align-items:stretch;gap:0;width:230px;min-width:230px;max-width:calc(100vw - 26px);padding:5px;background:#fff;border:1px solid #cfd7df;border-radius:6px;box-shadow:0 8px 24px #1c2c3b22;overflow:visible}
.quote-line .quote-row-menu>div>button,.quote-line .quote-row-menu>div>.quote-add-photos{display:block;width:100%;min-height:0;margin:0;padding:12px 14px;border:0;border-bottom:1px solid #e7ebef;border-radius:0;background:#fff;color:#34404c;font-size:14px;font-weight:500;line-height:1.3;text-align:left;white-space:normal}
.quote-line .quote-row-menu>div>.quote-remove{color:#a43e3e;border-bottom:0}
.quote-line .quote-row-menu>div>button:hover,.quote-line .quote-row-menu>div>.quote-add-photos:hover{background:#f2f5f8}
.quote-line .quote-row-menu>div>.quote-add-photos{position:relative;color:#34404c;cursor:pointer}
.quote-line .quote-row-menu>div>.quote-add-photos input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.quote-toolbar{justify-content:flex-start;gap:8px;padding:8px 0}
.quote-toolbar button{flex:0 0 auto}
@media(max-width:800px){.app-topbar .quote-options>summary{padding:6px 9px;font-size:11px}.quote-header-layout{grid-template-columns:minmax(0,1fr);gap:10px}.quote-date-row label,.quote-schedule label{font-size:11px}.quote-client-pickers{display:flex;flex-direction:column;gap:6px}.quote-client-pickers label{display:grid;grid-template-columns:70px minmax(0,1fr)}.quote-line{align-items:start}.quote-line .quote-designation textarea{min-height:42px}.quote-toolbar{gap:6px}.quote-toolbar button{flex:0 1 auto}.quote-line .quote-row-menu>div{right:-3px}}

/* Devis v10.46 : sélecteurs client/chantier pleine largeur et remise lisible. */
.quote-header-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:24px}
.quote-client-pickers{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;width:100%;min-width:0}
.quote-client-pickers label{display:grid!important;grid-template-columns:70px minmax(0,1fr)!important;align-items:center;width:100%;min-width:0;font-size:14px!important;font-weight:650}
.quote-client-pickers select{width:100%!important;min-width:0!important;max-width:none!important;box-sizing:border-box!important;padding:10px 12px!important;font-size:15px!important}
.quote-global-discount>div{display:flex;gap:6px;align-items:center}
.quote-global-discount>div input{flex:1;min-width:0}
.quote-global-discount>div select{width:64px;flex:none}
.quote-section-row{order:0}
@media(max-width:800px){.quote-header-layout{grid-template-columns:minmax(0,1fr)}.quote-client-pickers{grid-column:1;grid-template-columns:minmax(0,1fr);gap:8px}.quote-client-pickers label{font-size:13px!important}.quote-client-pickers select{font-size:14px!important}}

/* Devis v10.47 : menus Client/Chantier réellement pleine largeur et sections distinctes des lignes. */
.quote-client-pickers label{grid-template-columns:auto minmax(0,1fr)!important}
.quote-client-pickers select{grid-column:1/-1!important}
.quote-section-row.section-main{grid-template-columns:32px minmax(0,1fr) max-content auto!important;gap:12px}
.quote-section-row.section-main>.quote-row-number{display:block!important;grid-column:1;grid-row:1;align-self:center;font-size:13px;font-weight:750;color:#29445f;text-align:center}
.quote-section-row.section-main .quote-section-title-input{grid-column:2!important;grid-row:1!important}
.quote-section-row.section-main .quote-section-total{grid-column:3!important;grid-row:1!important}
.quote-section-row.section-main .quote-row-menu{grid-column:4!important;grid-row:1!important}
@media(max-width:800px){.quote-section-row.section-main{grid-template-columns:28px minmax(0,1fr) max-content auto!important;gap:7px}.quote-section-row.section-main>.quote-row-number{grid-column:1;grid-row:1}.quote-section-row.section-main .quote-section-title-input{grid-column:2!important;grid-row:1!important}.quote-section-row.section-main .quote-section-total{grid-column:3!important;grid-row:1!important}.quote-section-row.section-main .quote-row-menu{grid-column:4!important;grid-row:1!important}}

/* Devis v10.48 : numéro du devis face aux dates, dates compactes, unités usuelles suggérées. */
.quote-header-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.quote-document-meta{grid-column:1/-1;display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);gap:8px 20px;align-items:center}
.quote-document-meta h2{grid-column:1;grid-row:1;font-size:22px!important;align-self:center}
.quote-date-row{grid-column:2;grid-row:1;display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px;margin:0}
.quote-date-row label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:10px!important;white-space:normal}
.quote-date-row input{width:130px;max-width:100%;padding:3px 5px;font-size:11px}
.quote-schedule{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;margin:0}
.quote-schedule label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:10px!important;white-space:normal}
.quote-schedule input{width:130px;max-width:100%;padding:3px 5px;font-size:11px}
@media(max-width:800px){.quote-document-meta{grid-template-columns:minmax(0,1fr);gap:7px}.quote-document-meta h2{grid-column:1;grid-row:1;font-size:19px!important}.quote-date-row{grid-column:1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.quote-date-row input{width:100%}.quote-schedule{grid-column:1;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.quote-schedule input{width:100%}}

/* Devis v10.50 : en-tête de saisie organisé comme le devis imprimé. */
.quote-header-layout{grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:22px;align-items:start}
.quote-document-meta{grid-column:auto;display:flex;flex-direction:column;align-items:stretch;gap:7px;padding:2px 0}
.quote-document-meta h2{grid-column:auto;grid-row:auto;align-self:flex-start;font-size:22px!important;margin:0 0 3px}
.quote-date-row{grid-column:auto;grid-row:auto;display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0}
.quote-date-row label,.quote-schedule label{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;min-height:26px;font-size:11px!important;white-space:nowrap}
.quote-date-row input,.quote-schedule input{width:132px;max-width:132px;padding:3px 5px;font-size:11px}
.quote-schedule{grid-column:auto;grid-row:auto;display:flex;flex-direction:column;align-items:stretch;gap:3px;margin:0}
.quote-client-pickers{grid-column:auto;display:flex;flex-direction:column;align-items:stretch;gap:9px;width:100%;padding:2px 0}
.quote-client-pickers label{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;align-items:center;gap:5px 8px;width:100%;min-width:0;padding:11px 12px;background:#f5f6f7;border:1px solid #eceff2;border-radius:7px;font-size:12px!important;font-weight:650!important}
.quote-client-pickers select{grid-column:1/-1!important;width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:9px 10px!important;background:#fff;font-size:13px!important}
@media(max-width:800px){.quote-header-layout{grid-template-columns:minmax(0,1fr);gap:10px}.quote-document-meta{grid-column:1;grid-row:auto}.quote-document-meta h2{font-size:19px!important}.quote-date-row,.quote-schedule{grid-column:1;grid-row:auto}.quote-client-pickers{grid-column:1;grid-row:auto}.quote-date-row label,.quote-schedule label{font-size:11px!important}.quote-date-row input,.quote-schedule input{width:132px;max-width:46vw}.quote-client-pickers label{font-size:12px!important}}

/* Devis v10.51 : mise en page imprimée alignée sur la maquette fournie. */
.print-document .print-heading{display:block!important;align-items:initial!important;border:0!important;border-bottom:2px solid #c9232b!important;padding:0 0 8mm!important;margin:0 0 7mm!important}
.print-document .print-company{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:0!important}
.print-document .print-logo{max-width:26mm!important;max-height:30mm!important;margin:0 0 2mm!important;object-position:left center!important}
.print-document .print-company p{font-size:8.5pt!important;line-height:1.35!important;margin:1mm 0!important;text-align:left!important}
.print-document .print-recipient{min-width:0!important;margin:8mm 0 0!important;text-align:left!important;font-size:9pt!important}
.print-document .print-recipient p{font-size:8.5pt!important;line-height:1.35!important;margin:1mm 0!important;text-align:left!important}
.print-document .print-quote-title{display:block!important;margin:0 0 5mm!important}
.print-document .print-quote-title h1{font-size:19pt!important;line-height:1.2!important;margin:0 0 1mm!important}
.print-document .print-quote-title h1 span{display:block!important;font-size:10pt!important;font-weight:700!important;margin-top:1mm!important}
.print-document .print-quote-title p{margin:0 0 0 7mm!important;text-align:left!important;font-size:8.5pt!important;line-height:1.5!important;color:#62758b!important}
.print-document .print-project-meta{font-size:9pt!important;line-height:1.4!important;margin:0 0 4mm!important}
.print-document .print-project-meta strong{display:block!important;font-size:9pt!important;margin-bottom:1mm!important}
.print-document .print-project-meta p{font-size:9pt!important;line-height:1.4!important;margin:2mm 0 0!important}
.print-document .print-lines{margin-top:0!important}
@media print{
  .print-document .print-heading{border-bottom:2px solid #c9232b!important;padding-bottom:8mm!important;margin-bottom:7mm!important}
  .print-document .print-page{min-height:270mm!important}
  .print-document .print-page-footer{margin-top:auto!important}
}

/* En-tête du devis : le client est placé à droite, en regard du titre et des dates. */
.print-document .print-quote-title{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(60mm,82mm)!important;align-items:end!important;column-gap:8mm!important}
.print-document .print-quote-left{min-width:0!important}
.print-document .print-quote-left p{margin:0!important;text-align:left!important}
.print-document .print-quote-title .print-recipient{box-sizing:border-box!important;min-width:0!important;margin:0 0 0 auto!important;text-align:right!important;overflow-wrap:anywhere!important}
.print-document .print-quote-title .print-recipient strong{display:block!important;margin:0 0 1mm!important}

/* Logo et coordonnées restent côte à côte dans un même bandeau. */
.print-document .print-company{display:grid!important;grid-template-columns:28mm minmax(0,1fr)!important;align-items:center!important;gap:6mm!important;flex-direction:initial!important}
.print-document .print-company>div{min-width:0!important}
.print-document .print-company>div{align-self:center!important}
.print-document .print-company strong{display:block!important;font-size:12pt!important;line-height:1.25!important}
.print-document .print-logo{width:26mm!important;max-width:26mm!important;max-height:30mm!important;margin:0!important;object-position:left center!important}
.print-document .print-heading{border-bottom:0!important;padding-bottom:0!important;margin-bottom:5mm!important}
@media print{.print-document .print-heading{border-bottom:0!important;padding-bottom:0!important;margin-bottom:5mm!important}}

/* MR BTP v10.62 — présentation unique de l'en-tête, écran/impression/PDF.
   Ces règles finalisent les essais antérieurs de v10.51–v10.61. */
.print-document .print-heading,
.print-document .print-page .print-heading{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:0!important;
  margin:0 0 5mm!important;
  background:#fff!important;
  border:0!important;
  border-bottom:0!important;
  box-shadow:none!important;
}
.print-document .print-heading .print-company{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:6mm!important;
  width:100%!important;
  min-width:0!important;
}
.print-document .print-company .print-logo{
  display:block!important;
  flex:0 0 auto!important;
  width:auto!important;
  height:auto!important;
  max-width:34mm!important;
  max-height:21mm!important;
  margin:0!important;
  object-fit:contain!important;
  object-position:left center!important;
}
.print-document .print-company>div{flex:1 1 auto!important;min-width:0!important;align-self:center!important}
.print-document .print-company strong{display:block!important;margin:0!important;font-size:12pt!important;line-height:1.25!important;color:#202b36!important}
.print-document .print-quote-title{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(55mm,78mm)!important;
  column-gap:8mm!important;
  align-items:start!important;
  margin:0 0 5mm!important;
}
.print-document .print-quote-left{min-width:0!important}
.print-document .print-quote-title .print-quote-left p{margin:2mm 0 0!important;text-align:left!important}
.print-document .print-quote-title .print-recipient{
  display:block!important;
  min-width:0!important;
  max-width:78mm!important;
  width:100%!important;
  margin:0 0 0 auto!important;
  text-align:right!important;
  overflow-wrap:anywhere!important;
}
.print-document .print-quote-title .print-recipient p{text-align:right!important}
@media print{
  .print-document .print-heading,
  .print-document .print-page .print-heading{border:0!important;margin-bottom:5mm!important;padding:0!important}
  .print-document .print-company{flex-direction:row!important}
  .print-document .print-quote-title{display:grid!important}
}

/* Version 10.65 : en-tête et pied de page imprimables de la liste clients */
.client-print-header,.client-print-footer{display:none}
@media print{
 .client-print-header{display:flex!important;align-items:center;gap:18px;border-bottom:2px solid #555;padding-bottom:12px;margin-bottom:16px}
 .client-print-header img{max-height:70px;max-width:150px;object-fit:contain}
 .client-print-header strong{display:block;font-size:17pt}
 .client-print-header span{font-size:11pt}
 .client-print-footer{display:block!important;position:fixed;bottom:0;left:0;right:0;text-align:center;font-size:8pt;border-top:1px solid #aaa;padding-top:6px;background:white}
 .client-list-card{padding-bottom:26px!important}
 @page{size:A4 portrait;margin:15mm 12mm 23mm}
}

/* 10.66 : petit logo uniquement à l'impression et avertissement doublon */
.client-duplicate-warning{padding:10px 12px;border:1px solid #d9ae5c;border-radius:6px;background:#fff7e8;color:#634615;font-size:12px}
.client-duplicate-warning[hidden]{display:none!important}
@media print{
 .client-print-header img{max-height:30px!important;max-width:58px!important;width:auto!important;height:auto!important}
 .client-print-header{gap:9px!important;padding-bottom:7px!important;margin-bottom:10px!important}
 .client-print-header strong{font-size:11pt!important}
 .client-print-header span{font-size:8.5pt!important}
 .client-print-footer{font-size:7pt!important}
}

/* v10.67 : consignes de tri masquées à l'impression */
@media print {.page-head .no-print{display:none!important}}

/* v10.69 — boutons d'action harmonisés avec la couleur personnalisée du menu. */
.app-body .app-content :is(.primary,.button-link,button[type="submit"]:not(.secondary):not(.danger):not(.text-danger):not(.menu-toggle)){
  background:var(--menu-bg,#202b36);
  color:var(--menu-ink,#fff);
}
.app-body .app-content :is(.primary,.button-link,button[type="submit"]:not(.secondary):not(.danger):not(.text-danger)):hover{
  filter:brightness(1.12);
}
/* Ne pas recolorer les choix d'interface, boutons d'annulation ni les actions destructives. */
.app-body .app-content :is(.project-tab,.doc-tab,.secondary,.danger,.text-danger,.quote-row-menu button,.quote-dialog-close,.invoice-delete button,.inline-delete button){
  filter:none;
}
@media print{
  .app-body .app-content :is(.primary,.button-link,button[type="submit"]){print-color-adjust:exact}
}

/* v10.71 : lisibilité des montants et accès cliquable au portail client dans le relevé. */
.account-statement-document .statement-summary>div span,.account-statement-document .statement-summary>div strong{display:block!important}
.account-statement-document .statement-summary>div strong{margin-top:7px!important}
.account-statement-document .statement-qr-area a{color:#2467a6;text-decoration:underline;font-weight:700}

/* v10.75 : présenter les devis acceptés avant le journal et éviter les coupures. */
.statement-accepted-quotes h2{break-after:avoid;page-break-after:avoid}
.statement-accepted-quotes thead{display:table-header-group}
.statement-accepted-quotes tr{break-inside:avoid;page-break-inside:avoid}
@media print{
 .statement-accepted-quotes{break-inside:avoid;page-break-inside:avoid}
 .account-statement-document{height:auto!important;max-height:none!important;overflow:visible!important}
}

/* v10.76 : en-tête du relevé : titre et nom client sur deux lignes (écran/impression). */
.account-statement-document .statement-recipient>span,.account-statement-document .statement-recipient>strong{display:block!important;clear:both!important;line-height:1.4!important}
.account-statement-document .statement-recipient>span{margin:0 0 8px!important}
.account-statement-document .statement-recipient>strong{margin:0 0 6px!important}

/* v10.78 : un menu ferme perd son surlignage, meme sur sa page active. */
.sidebar-nav-group.active-group:not(.subnav-open)>.sidebar-group-link{background:transparent;color:var(--menu-ink,#fff)}
/* Coordonnees de l'entreprise dans le pied des releves uniquement. */
.account-statement-document .statement-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;line-height:1.45;text-align:center}
@media print{
  .account-statement-document .statement-footer{position:fixed;bottom:0;left:0;right:0;background:#fff;margin:0!important;padding:3mm 0 0!important;border-top:1px solid #dfe5eb;font-size:7.5pt!important;z-index:2}
  @page{margin:14mm 14mm 25mm}
}

/* v10.79 — pied de relevé dans le flux, sans recouvrir les tableaux sur A4. */
@media print {
  .account-statement-document .statement-footer {
    position:static!important;
    display:flex!important;
    clear:both!important;
    flex-wrap:wrap!important;
    justify-content:center!important;
    bottom:auto!important;
    left:auto!important;
    right:auto!important;
    z-index:auto!important;
    margin:10mm 0 0!important;
    padding:3mm 0 0!important;
    border-top:1px solid #dfe5eb!important;
    background:#fff!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  .account-statement-document .statement-section {break-inside:auto!important;page-break-inside:auto!important}
  .account-statement-document .statement-ledger {break-inside:auto!important;page-break-inside:auto!important}
  .account-statement-document .statement-ledger tbody tr {break-inside:avoid!important;page-break-inside:avoid!important}
  .account-statement-document .statement-section h2 {break-after:avoid!important;page-break-after:avoid!important}
  .account-statement-document .statement-note {break-inside:avoid!important;page-break-inside:avoid!important}
  @page {size:A4 portrait;margin:14mm 14mm 16mm}
}

/* v10.80 : relevé global - démarrer le journal sur une nouvelle page,
   afin de ne pas couper les premières lignes en pied de page A4. */
@media print {
  .account-statement-document.statement-global .statement-ledger-section {
    break-before:page!important; page-break-before:always!important;
  }
  .account-statement-document .statement-ledger thead {display:table-header-group!important}
  .account-statement-document .statement-ledger tbody tr {break-inside:avoid!important;page-break-inside:avoid!important}
  .account-statement-document .statement-footer {position:static!important;break-inside:avoid!important}
}

/* v10.81 : pagination naturelle pour les relevés de compte.
   La coupure obligatoire avant le journal introduite en 10.80 est supprimée.
   Pas de pied fixe, qui masquerait les écritures en fin de page. */
@media print {
  .account-statement-document.statement-global .statement-ledger-section {
    break-before:auto!important;
    page-break-before:auto!important;
  }
  .account-statement-document .statement-ledger-section,
  .account-statement-document .statement-ledger {break-inside:auto!important;page-break-inside:auto!important;overflow:visible!important}
  .account-statement-document .statement-ledger tbody tr,
  .account-statement-document .statement-ledger thead {break-inside:avoid!important;page-break-inside:avoid!important}
  .account-statement-document .statement-footer{position:static!important;clear:both!important;break-inside:avoid!important;page-break-inside:avoid!important}
}

/* Gestion MR 10.85 : statuts chantier et chronologie */
.project-status{display:inline-block;border-radius:999px;padding:5px 11px;font-weight:700}
.project-status.status-prospect{background:#edf1f5;color:#48596d}
.project-status.status-en_cours{background:#e2f0ff;color:#075caa}
.project-status.status-termine{background:#ddf5e7;color:#197347}
.project-status.status-litige{background:#fee7e4;color:#a32b23}
.project-timeline-day{border-left:3px solid #0874aa;padding:0 0 10px 17px;margin:17px 0}
.project-timeline-day>h3{margin:0 0 10px;color:#125a87}
.project-timeline-entry{background:#f7f9fb;border:1px solid #e4eaf0;border-radius:9px;padding:12px;margin:9px 0}
.project-timeline-entry p{margin:8px 0;white-space:normal}
.project-timeline-entry small{display:block;color:#607080;margin:8px 0}
.project-timeline-photo{display:inline-block;width:155px;max-width:100%;height:115px;object-fit:cover;border-radius:7px;margin:7px 8px 0 0}

/* v10.86 : édition du suivi sur la fiche, sans onglet */
.timeline-editor{margin:8px 0 14px;padding:8px;border:1px solid #dce2e9;border-radius:7px}
.timeline-editor summary{cursor:pointer;color:#146391;font-weight:600}
.timeline-editor form{margin:10px 0;display:grid;gap:8px}
.timeline-photo-unit{display:inline-flex;vertical-align:top;flex-direction:column;gap:4px;margin:6px}
.timeline-photo-unit button{font-size:12px;padding:5px 7px}

/* v10.88 : espace client, en-tête fixe et suivi chronologique */
.public-header{position:sticky;top:0;z-index:1000;box-shadow:0 2px 9px rgba(0,0,0,.12)}
.portal-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0 18px;border-bottom:1px solid var(--line)}
.portal-tab{display:inline-block;padding:13px 18px;text-decoration:none;color:var(--ink);border-radius:9px 9px 0 0;font-weight:650}
.portal-tab:hover{background:#e9f0f7}.portal-tab.active{background:#116b9d;color:#fff}
.portal-timeline-entry{border-left:3px solid #1782b4;padding:15px 12px 18px 19px;margin:14px 0;border-top:0;background:#f8fafc;border-radius:0 8px 8px 0}
.portal-update-head{display:flex;flex-direction:column;gap:7px;margin-bottom:10px}.portal-update-head time{float:none;font-weight:700;color:#28658c;font-size:13px}.portal-update-head strong{font-size:17px}
.portal-update-photos{margin:12px 0 16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.portal-update-photos img{height:170px}
@media print{.public-header{position:static}}

/* v10.89 : navigation client claire et visible */
.portal-shell .portal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:26px 0 24px;padding:0;border:0}
.portal-shell .portal-choice,.portal-shell .portal-choice:visited{box-sizing:border-box;display:flex;align-items:center;gap:15px;min-height:126px;padding:22px 20px;border:2px solid #cad9e6;border-radius:16px;background:#fff;color:#172e46;text-decoration:none;box-shadow:0 4px 16px rgba(24,62,92,.10);transition:background .16s,border-color .16s,transform .16s}
.portal-shell .portal-choice:hover{transform:translateY(-2px);border-color:#1679ae;background:#f2f8fd;box-shadow:0 7px 22px rgba(24,62,92,.16)}
.portal-shell .portal-choice.active,.portal-shell .portal-choice.active:visited{border-color:#126d9f;background:#e7f4fc;color:#103d60;box-shadow:inset 0 0 0 1px #126d9f,0 4px 16px rgba(24,62,92,.12)}
.portal-shell .portal-choice:focus-visible{outline:3px solid #e5a333;outline-offset:3px}
.portal-shell .portal-choice-icon{display:grid;place-items:center;flex:0 0 56px;width:56px;height:56px;border-radius:14px;background:#e4f1f9;font-size:30px;line-height:1}
.portal-shell .portal-choice.active .portal-choice-icon{background:#cce5f5}
.portal-shell .portal-choice-copy{display:flex;flex:1;flex-direction:column;gap:7px;min-width:0}
.portal-shell .portal-choice-copy strong{font-size:20px;line-height:1.2;font-weight:750;color:inherit}
.portal-shell .portal-choice-copy small{font-size:13px;line-height:1.4;color:#50677a}
.portal-shell .portal-choice-arrow{font-size:34px;color:#1679ae;font-weight:bold;line-height:1}
@media(max-width:700px){.portal-shell .portal-choices{grid-template-columns:1fr;gap:12px}.portal-shell .portal-choice{min-height:102px;padding:16px}.portal-shell .portal-choice-copy strong{font-size:18px}}
@media print{.portal-shell .portal-choices{display:none}}

.public-header{position:sticky;top:0;z-index:1000;box-shadow:0 2px 9px rgba(0,0,0,.12)}
.public-main{padding-top:22px}
.portal-intro{font-size:18px;line-height:1.55;color:#536b80;margin-bottom:8px}
.portal-nav-panel{background:linear-gradient(180deg,#f8fbfe 0%,#eef6fc 100%);border:1px solid #d4e4ef;border-radius:18px;padding:18px 18px 10px;margin:18px 0 24px}
.portal-nav-title{margin:0 0 14px;font-size:15px;font-weight:700;color:#24506b}
.portal-section-label{margin:4px 0 14px}
.portal-section-label h2{margin:0 0 6px;font-size:26px}
.portal-section-label p{margin:0;color:#5a6d7f}
.portal-shell .portal-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:0;padding:0;border:0}
.portal-shell .portal-choice,.portal-shell .portal-choice:visited{box-sizing:border-box;display:flex!important;align-items:center;gap:16px;min-height:134px;padding:22px;border:2px solid #c5d8e7;border-radius:18px;background:#fff;color:#13324e!important;text-decoration:none;box-shadow:0 6px 20px rgba(24,62,92,.12)}
.portal-shell .portal-choice:hover{transform:translateY(-2px);border-color:#0f79ad;background:#f1f8fd;box-shadow:0 10px 24px rgba(24,62,92,.18)}
.portal-shell .portal-choice.active,.portal-shell .portal-choice.active:visited,.portal-shell .portal-choice[aria-current="page"]{border-color:#0f79ad;background:#dff1fb;color:#10324f!important;box-shadow:inset 0 0 0 1px #0f79ad,0 8px 22px rgba(24,62,92,.14)}
.portal-shell .portal-choice-icon{display:grid;place-items:center;flex:0 0 66px;width:66px;height:66px;border-radius:16px;background:#dceefa;font-size:34px;line-height:1}
.portal-shell .portal-choice-copy strong{font-size:23px;line-height:1.2;font-weight:800;color:inherit}
.portal-shell .portal-choice-copy small{font-size:14px;line-height:1.45;color:#4f667a}
.portal-shell .portal-choice-arrow{font-size:38px;color:#0f79ad;font-weight:700;line-height:1}
.portal-day-group{border-top:1px solid var(--line);padding-top:18px;margin-top:18px}
.portal-day-group:first-of-type{border-top:0;padding-top:6px;margin-top:2px}
.portal-day-title{margin:0 0 12px;font-size:24px;color:#1d6da1}
.portal-update{border:1px solid #e3e9ef;border-radius:14px;padding:16px 18px;background:#fff;box-shadow:0 2px 10px rgba(17,42,63,.05)}
.portal-update + .portal-update{margin-top:12px}
.portal-update-head strong{font-size:22px}
.portal-comment-form{margin-top:14px;padding-top:14px;border-top:1px dashed #d5dee7}
.portal-update-photos{margin:14px 0 10px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}
.portal-update-photos img{height:190px;border:1px solid #dbe4ec;box-shadow:0 3px 12px rgba(17,42,63,.08)}
.portal-photo-entry{padding:14px}
.portal-photo-entry .portal-update-photos{margin:0}
@media(max-width:700px){.portal-nav-panel{padding:14px}.portal-section-label h2{font-size:22px}.portal-day-title{font-size:21px}.portal-shell .portal-choices{grid-template-columns:1fr;gap:14px}.portal-shell .portal-choice{min-height:110px;padding:18px}.portal-shell .portal-choice-copy strong{font-size:19px}.portal-shell .portal-choice-icon{width:58px;height:58px;font-size:30px}}

.portal-share-shell{max-width:980px}
.portal-share-hero{background:linear-gradient(135deg,#f7fbfe 0%,#eaf4fb 100%);border:1px solid #d5e4ef;border-radius:22px;padding:26px 24px;margin:6px 0 24px;box-shadow:0 8px 24px rgba(22,66,95,.08)}
.portal-share-hero h1{margin:6px 0 10px;font-size:38px;line-height:1.15}
.portal-share-hero p{margin:0;color:#587084;font-size:18px;line-height:1.55;max-width:760px}
.portal-share-shell .portal-day-group{margin-bottom:18px}
.portal-share-shell .portal-update{margin-bottom:12px}
@media(max-width:700px){.portal-share-hero{padding:20px 16px;border-radius:18px}.portal-share-hero h1{font-size:30px}.portal-share-hero p{font-size:16px}}

.share-like-form{display:flex;align-items:center;gap:14px;margin:18px 0 0;padding-top:14px;border-top:1px solid #e1e8ee}.share-like-button{background:#fff0f1;border:1px solid #e7bac1;color:#a02743;font-size:15px;font-weight:800;padding:11px 18px;border-radius:24px;cursor:pointer}.share-like-button:hover{background:#ffe2e7}.share-like-count{color:#526779;font-size:13px}.share-google-panel{padding:26px;margin:28px 0;border-radius:20px;border:1px solid #d7e5ee;background:linear-gradient(135deg,#f3f9fd,#fff)}.share-google-panel h2{margin:0 0 8px}.share-google-panel p{color:#4f6578}.share-google-link{display:inline-flex;padding:13px 20px;background:#126d9f;color:#fff!important;border-radius:12px;text-decoration:none;font-weight:700}.share-google-note{font-size:12px}.portal-share-shell .portal-update{scroll-margin-top:115px}

/* v10.94 : partage chantier lisible et compact */
.portal-share-shell .portal-share-hero{padding:18px 20px;margin-bottom:16px;border-radius:15px}
.portal-share-shell .portal-share-hero h1{font-size:26px;line-height:1.25;margin:4px 0 7px}
.portal-share-shell .portal-share-hero p:not(.eyebrow){font-size:15px;line-height:1.5}
.portal-share-shell .portal-day-title{font-size:19px;line-height:1.3;margin-bottom:9px}
.portal-share-shell .portal-update-head strong{font-size:17px;line-height:1.35}
.portal-share-shell .portal-update{padding:13px 16px}
.portal-share-shell .portal-update p{font-size:14px;line-height:1.5}
.portal-share-shell .share-google-panel{margin:0 0 20px;padding:17px 20px;border-radius:15px}
.portal-share-shell .share-google-panel h2{font-size:18px;margin-bottom:5px}
.portal-share-shell .share-google-panel p{font-size:13px;margin:6px 0 12px}
.portal-share-shell .share-google-link{font-size:14px;padding:11px 15px}
.portal-share-shell .share-google-note{font-size:11px}
@media(max-width:700px){.portal-share-shell .portal-share-hero{padding:16px}.portal-share-shell .portal-share-hero h1{font-size:23px}.portal-share-shell .portal-day-title{font-size:18px}.portal-share-shell .portal-update-head strong{font-size:16px}}

.share-sort{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:14px 0 22px;padding:14px 16px;background:#fff;border:1px solid #d9e3ed;border-radius:14px}.share-sort>span{font-size:14px;font-weight:700;color:#334b62;margin-right:4px}.share-sort-option,.share-sort-option:visited{padding:10px 14px;border-radius:10px;background:#f3f7fb;border:1px solid #ccdbe7;color:#285476;text-decoration:none;font-size:13px;font-weight:700}.share-sort-option:hover{background:#e2f2fb;border-color:#2080b3;color:#175a83}.share-sort-option.active,.share-sort-option.active:visited{background:#176d9c;border-color:#176d9c;color:#fff}.share-sort-option:focus-visible{outline:3px solid #e9a83c;outline-offset:2px}
@media(max-width:650px){.share-sort{align-items:stretch;flex-direction:column}.share-sort-option{text-align:center}}

.portal-share-shell .portal-update-photos figure{min-width:0;background:#fff;padding:8px;border:1px solid #e0e8ef;border-radius:12px}
.portal-share-shell .portal-update-photos .share-like-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:9px 0 3px}
.portal-share-shell .portal-update-photos .share-like-button{font-size:13px;padding:9px 13px}
.portal-share-shell .portal-update-photos .share-like-count{font-size:12px}
.share-google-pending{background:#f6f8fa;color:#526579}
.portal-share-shell figure[id^="photo-"]{scroll-margin-top:100px}

/* Gestion MR 10.97 : statuts des devis et filtre de liste */
.quote-list-filter{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0 18px;padding:13px 16px;background:#fff;border:1px solid #dfe6ed;border-radius:10px}
.quote-list-filter label{font-weight:650;color:#33475b}
.quote-list-filter select{width:230px;max-width:100%;margin:0}
.quote-status-badge{display:inline-block;font-weight:700;border-radius:7px;padding:6px 10px}
.quote-status-draft{background:#eef0f3;color:#505b69}
.quote-status-sent{background:#eaf3ff;color:#2460aa}
.quote-status-accepted{background:#e5f6ed;color:#167047}
.quote-status-progress{background:#e2f0ff;color:#165da0}
.quote-status-finished{background:#d8f4e3;color:#11613d}
.quote-status-refused{background:#fde8e8;color:#a22b35}
.quote-status-cancelled{background:#e8e8ec;color:#65616d}

.quote-calculation > div[hidden]{display:none!important}

/* Gestion MR v11.02 — devis fluides, pied légal seulement en fin de document. */
.print-document .print-page,.print-document .print-page.print-page-one,.print-document .print-page.print-page-two,.print-document .print-page.print-page-three{
 display:block!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;gap:0!important;break-after:auto!important;page-break-after:auto!important;break-before:auto!important;page-break-before:auto!important;
}
.print-document .print-page-two{margin-top:9mm!important}
.print-document .print-page-three{margin-top:9mm!important}
.print-document .print-page-footer{margin-top:10mm!important;position:static!important;break-inside:avoid!important;page-break-inside:avoid!important}
.print-document .print-lines thead{display:table-header-group}
.print-document .print-lines tr,.print-document .print-totals,.print-document .print-signature-blocks,.print-document .print-qr-area{break-inside:avoid!important;page-break-inside:avoid!important}
@media print {
 .print-document .print-page,.print-document .print-page.print-page-one,.print-document .print-page.print-page-two,.print-document .print-page.print-page-three{display:block!important;min-height:0!important;height:auto!important;margin:0!important;padding:0!important;gap:0!important;break-after:auto!important;page-break-after:auto!important}
 .print-document .print-page-two{margin-top:9mm!important}
 .print-document .print-page-three{margin-top:9mm!important}
 .print-document .print-page-footer{margin-top:10mm!important;position:static!important;break-inside:avoid!important;page-break-inside:avoid!important}
}

/* v11.03 : récapitulatif financier des factures */
.invoice-market-summary{margin:22px 0 12px;padding:18px;border:1px solid #dce4ec;border-radius:10px;break-inside:avoid-page;background:#fafcfe}
.invoice-market-summary h2{font-size:17px;margin:0 0 7px;color:#20364b}
.invoice-market-hint{font-size:11px;color:#526479;line-height:1.5;margin:8px 0 12px}
.invoice-market-grid{display:grid;gap:0}
.invoice-market-grid>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;border-bottom:1px solid #e4ebf0;font-size:12px}
.invoice-market-grid>div strong{white-space:nowrap;text-align:right}
.invoice-market-grid>div.invoice-market-emphasis{background:#edf4fa;padding:9px 10px;margin:1px -10px;font-weight:700}
@media print{.invoice-market-summary{break-inside:avoid;page-break-inside:avoid;background:#fff}.invoice-market-grid>div.invoice-market-emphasis{background:#f2f2f2!important}}

/* v11.04 : tableau financier lisible à l'écran comme sur PDF */
.invoice-market-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-top:10px;font-size:12px}
.invoice-market-table th,.invoice-market-table td{padding:9px 12px;border-bottom:1px solid #e2e8ef;vertical-align:top;line-height:1.45}
.invoice-market-table th{width:72%;font-weight:500;text-align:left;overflow-wrap:anywhere}
.invoice-market-table td{width:28%;font-weight:700;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.invoice-market-table tr.invoice-market-emphasis th,.invoice-market-table tr.invoice-market-emphasis td{font-weight:750;background:#edf4fa}
.invoice-market-table tr.invoice-market-section th{font-weight:700;padding-top:14px;background:#f6f8fa;color:#23394c}
@media print{.invoice-market-table{font-size:10px}.invoice-market-table tr{break-inside:avoid;page-break-inside:avoid}.invoice-market-table th,.invoice-market-table td{padding:6px 8px}.invoice-market-table tr.invoice-market-emphasis th,.invoice-market-table tr.invoice-market-emphasis td{background:#f2f2f2!important}}

/* 11.05 : récapitulatif financier neutre et lisible, sans aplats bleus */
.invoice-market-summary{background:#fff!important;border-color:#dde4ea!important}
.invoice-market-table{background:transparent!important}
.invoice-market-table th,.invoice-market-table td{background:transparent!important;color:#253649!important;border-bottom:1px solid #dfe5eb!important}
.invoice-market-table tr.invoice-market-emphasis th,.invoice-market-table tr.invoice-market-emphasis td{background:transparent!important;color:#182b3b!important;font-weight:750}
.invoice-market-table tr.invoice-market-section th{background:#f4f6f8!important;color:#253649!important;font-weight:700}
.invoice-market-table td{padding-left:22px!important;text-align:right!important}
@media print{.invoice-market-summary,.invoice-market-table th,.invoice-market-table td,.invoice-market-table tr.invoice-market-emphasis th,.invoice-market-table tr.invoice-market-emphasis td,.invoice-market-table tr.invoice-market-section th{background:#fff!important;color:#222!important}}

/* v11.06 — financial ledger: isolated from invoice's table styles */
.invoice-market-summary{background:#fff!important;border:1px solid #dfe5eb!important;padding:18px!important;break-inside:auto!important;page-break-inside:auto!important}
.invoice-market-lines{display:block!important;width:100%!important;min-width:0!important}
.invoice-market-line{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;gap:24px!important;align-items:start!important;padding:9px 2px!important;border-bottom:1px solid #e2e7ec!important;break-inside:avoid!important;page-break-inside:avoid!important;background:#fff!important;color:#22313f!important;font-size:13px!important;line-height:1.45!important}
.invoice-market-label{display:block!important;min-width:0!important;overflow-wrap:normal!important;word-break:normal!important;white-space:normal!important;font-weight:400!important}
.invoice-market-value{display:block!important;text-align:right!important;white-space:nowrap!important;font-weight:650!important;font-variant-numeric:tabular-nums!important}
.invoice-market-line.invoice-market-emphasis{font-weight:700!important}
.invoice-market-line.invoice-market-emphasis .invoice-market-label,.invoice-market-line.invoice-market-emphasis .invoice-market-value{font-weight:750!important}
.invoice-market-section{font-size:13px!important;font-weight:700!important;margin:18px 0 4px!important;padding:8px 2px!important;border-bottom:1px solid #ccd5de!important;background:#fff!important;color:#243547!important;break-after:avoid!important}
@media print{.invoice-market-summary{border:0!important;padding:8px 0!important;margin:10px 0!important}.invoice-market-line{font-size:10pt!important;padding:6px 0!important;gap:12mm!important}.invoice-market-section{font-size:11pt!important}}

.invoice-document{position:relative}.invoice-paid-watermark{position:absolute;z-index:3;top:140px;left:50%;transform:translateX(-50%) rotate(-20deg);font-size:72px;font-weight:800;letter-spacing:.08em;color:rgba(22,115,69,.2);border:7px solid rgba(22,115,69,.18);padding:12px 25px;pointer-events:none;white-space:nowrap}.invoice-options summary{cursor:pointer}.invoice-options label{display:flex;gap:10px;align-items:center}.invoice-options input[type=checkbox]{width:auto}@media print{.invoice-paid-watermark{position:fixed;top:35%;left:50%;font-size:75px;color:rgba(20,109,68,.22)!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}}

/* v11.09 - barre d'actions et options des factures */
.invoice-top-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.invoice-email-direct{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0}
.invoice-email-direct button{white-space:normal}
.invoice-top-options{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:12px 16px;border:1px solid #dce4ec;border-radius:10px;background:#fff;margin-bottom:16px}
.invoice-top-options form{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0}
.invoice-top-options label{display:inline-flex;align-items:center;gap:8px;margin:0;font-weight:500}
.invoice-top-options input[type=checkbox]{width:auto;margin:0}
@media print{.invoice-top-options,.invoice-top-actions,.invoice-email-direct{display:none!important}}

.invoice-company-logo{display:block;max-width:145px;max-height:85px;width:auto;height:auto;object-fit:contain;margin-bottom:12px}

.invoice-top-options input[type=radio]{width:auto;margin:0;accent-color:#16628a}
@media(max-width:800px){.invoice-top-options form{align-items:flex-start;flex-direction:column}}

/* 11.15 - invoice branding and coordinates */
.invoice-brand-top{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.invoice-brand-top .invoice-company-logo{margin:0;max-width:150px;max-height:85px}
.invoice-brand-top strong{font-size:17px}
.invoice-company-footer{border-top:1px solid #cbd5df;margin-top:28px;padding:11px 0 2px;text-align:center;color:#506071;font-size:10px;line-height:1.5;display:flex;flex-direction:column;gap:2px;break-inside:avoid;page-break-inside:avoid}
@media print{.invoice-company-footer{margin-top:16mm;font-size:8pt;color:#4f5b68!important}.invoice-brand-top{display:flex!important;align-items:center!important;gap:10mm!important}.invoice-brand-top .invoice-company-logo{max-height:23mm!important;max-width:46mm!important}}

@media print{.credit-print-actions,.app-sidebar,.app-topbar{display:none!important}.app-content{padding:0!important}.credit-document{border:0;box-shadow:none;padding:15mm}.credit-document table{width:100%}}
.credit-totals{text-align:right;margin-top:25px}.credit-document{max-width:960px;margin:auto}

.credit-print-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.credit-print-actions form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.credit-document{max-width:960px;margin:0 auto;padding:28px 32px;background:#fff}.credit-document-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:2px solid #d5dfe9;padding-bottom:22px}.credit-company{display:flex;align-items:center;gap:12px}.credit-company strong{font-size:17px}.credit-logo{width:85px;max-height:75px;object-fit:contain}.credit-recipient{text-align:right;font-size:13px;max-width:44%}.credit-recipient p{margin:5px 0}.credit-document>h1{margin:26px 0 16px;color:#2869a0;font-size:26px}.credit-meta{margin-bottom:23px;font-size:13px}.credit-meta p{margin:6px 0}.credit-document table{width:100%;border-collapse:collapse;font-size:12px}.credit-document th{background:#eaf1f7;color:#234969;text-align:left}.credit-document td,.credit-document th{padding:10px;border-bottom:1px solid #dfe7ef;vertical-align:top}.credit-totals{max-width:420px;margin:24px 0 30px auto;text-align:left}.credit-totals>div{display:flex;justify-content:space-between;gap:20px;padding:9px 8px;border-bottom:1px solid #dce3eb}.credit-totals .credit-grand-total{font-size:16px;font-weight:700;border-top:2px solid #8fa7bd;color:#1e4666}.credit-document-footer{clear:both;margin-top:46px;border-top:1px solid #c9d6e1;padding:12px 8px 0;text-align:center;font-size:10px;line-height:1.5;color:#506171}@media print{.credit-print-actions,.app-sidebar,.app-topbar{display:none!important}.credit-document{border:0!important;box-shadow:none!important;padding:0!important;max-width:none!important}.credit-document-head,.credit-totals,.credit-document-footer{break-inside:avoid;page-break-inside:avoid}.credit-document tr{break-inside:avoid}}

/* v11.21: sécurisation de la taille du logo dans les avoirs, écran et PDF */
.credit-document{background:#fff!important;background-image:none!important;overflow:hidden}
.credit-document .credit-document-head{display:flex!important;align-items:center;justify-content:space-between;gap:20px;min-height:76px}
.credit-document .credit-company{display:flex!important;align-items:center;gap:12px;min-width:0;flex:1}
.credit-document img.credit-logo{display:block!important;width:78px!important;height:68px!important;max-width:78px!important;max-height:68px!important;min-width:0!important;min-height:0!important;object-fit:contain!important;object-position:left center!important;flex:0 0 78px!important;position:static!important;float:none!important;margin:0!important}
.credit-document .credit-recipient{max-width:45%;flex:0 1 45%}
.credit-document .credit-totals>div{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:baseline}
.credit-document .credit-totals>div strong{white-space:nowrap;text-align:right}
.credit-document .credit-totals>div span{text-align:left}
@media print{.credit-document{overflow:visible!important}.credit-document img.credit-logo{width:78px!important;height:68px!important;max-width:78px!important;max-height:68px!important}}

/* v11.22 : en-tête avoir strictement blanc, indépendant du thème général */
.credit-document,.credit-document .credit-document-head,.credit-document .credit-company,.credit-document .credit-recipient{background:#ffffff!important;background-color:#ffffff!important;background-image:none!important;color:#1c2d3d!important}
.credit-document .credit-company strong,.credit-document .credit-recipient strong,.credit-document .credit-recipient p{color:#1c2d3d!important}
.credit-document .credit-document-head{border-bottom:1px solid #dce4ed!important;box-shadow:none!important}

/* MR v11.29 — visites 3D Matterport */
.matterport-gallery,.matterport-visit{min-width:0}.matterport-visit{margin:0 0 28px}.matterport-frame{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:#edf1f5}.matterport-frame iframe{display:block;width:100%;height:100%;border:0}.matterport-visit h3{margin:10px 0 12px}.matterport-visit p{margin:10px 0 0}.project-panel#project-matterport{scroll-margin-top:24px}
.matterport-admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 22px}.matterport-admin-tabs a{display:inline-block;border:1px solid #d7dce5;border-radius:10px;padding:9px 13px;text-decoration:none;font-weight:600}.matterport-admin-tabs a:hover,.matterport-admin-tabs a:focus{background:#edf3ff}.project-panel{scroll-margin-top:20px}

/* v11.34 bank and logo preview */
.mr-bank-credit{color:#147d3c!important;font-weight:700;font-variant-numeric:tabular-nums}.mr-bank-debit{color:#bc3030!important;font-weight:700;font-variant-numeric:tabular-nums}.preview-logo .doc-logo-image{width:var(--mr-logo-size,110px);max-width:100%;max-height:110px;display:inline-block;object-fit:contain}.preview-logo{text-align:left;min-width:0}

/* v11.34 printed logo dimensions override old forced mm sizing */
.print-document .print-company .print-logo{width:var(--mr-logo-print-size,110px)!important;max-width:var(--mr-logo-print-size,110px)!important;height:auto!important;max-height:110px!important}
.print-heading[style*="--mr-logo-print-align:center"] .print-company{justify-content:center!important}
.print-heading[style*="--mr-logo-print-align:right"] .print-company{justify-content:flex-end!important}
.invoice-document .invoice-company-logo{width:var(--mr-logo-print-size,110px)!important;max-width:var(--mr-logo-print-size,110px)!important;height:auto!important;max-height:110px!important}

/* Gestion MR v11.37 : centre d'aide */
.help-hero{text-align:center;padding:30px 20px}.help-hero h1{font-size:27px;margin:8px 0}.help-search{display:flex;gap:10px;max-width:730px;margin:22px auto 0}.help-search input{margin:0;flex:1}.help-search button{white-space:nowrap}.help-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin:14px 0 26px}.help-tile{display:flex;flex-direction:column;gap:8px;min-height:125px;padding:18px;background:#fff;border:1px solid #dbe2e9;border-radius:12px;color:var(--ink);transition:box-shadow .15s,border-color .15s}.help-tile:hover{border-color:#ba9659;box-shadow:0 3px 13px #17253112;text-decoration:none}.help-tile>strong{font-size:16px}.help-tile>span:not(.help-tile-icon){font-size:13px;color:#657486}.help-tile small{margin-top:auto;color:#286a9b;font-weight:600}.help-tile-icon{font-size:22px;color:#ba9659}.help-article ol{padding-left:28px}.help-article li{margin:12px 0;line-height:1.6}.help-article .button-link{margin-top:12px}@media(max-width:620px){.help-search{flex-direction:column}.help-grid{grid-template-columns:1fr}.help-hero h1{font-size:21px}}

/* v11.39 — projet de procès-verbal de réception */
.mr-reception-signatures{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin:3rem 0 1rem}.mr-sign-line{height:85px;border-bottom:1px solid #64748b}
@media print{.sidebar,.topbar,.mr-reception-editor,.mr-reception-print-action,nav,header,.menu-toggle{display:none!important}.mr-reception-print{display:block!important;box-shadow:none!important;border:0!important}.mr-reception-signatures{break-inside:avoid}body{background:white!important}}
@media(max-width:650px){.mr-reception-signatures{grid-template-columns:1fr}}

.mr-reception-tracking form{margin:1rem 0}.mr-reception-tracking td{vertical-align:top}.mr-reception-tracking td form{margin:0}.mr-reception-tracking textarea{width:100%}
@media print{.mr-reception-tracking{display:none!important}.mr-reception-followup-print{break-before:page;box-shadow:none!important;border:0!important}}

/* PV réception : présentation identique au reste des documents administratifs */
.mr-reception-actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin:1rem 0}.mr-reception-mail{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;margin:0}
.mr-reception-print{background:white;color:#202d3a;max-width:900px;margin:1rem auto;padding:32px!important}
.mr-reception-doc-header{display:flex!important;justify-content:space-between;align-items:center;gap:24px;padding:0 0 18px;margin:0 0 25px;border-bottom:2px solid #ba9659}
.mr-reception-doc-header div{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}.mr-reception-doc-header span{font-size:13px;letter-spacing:.08em;font-weight:700}
.mr-reception-logo{display:block;max-height:85px;max-width:210px;object-fit:contain}
.mr-reception-company-footer{border-top:1px solid #c9d2dd;padding-top:13px;margin:32px 0 0;text-align:center;color:#526172;font-size:10px;line-height:1.6}
@media print{.mr-reception-actions,.mr-reception-mail,.mr-reception-editor,.mr-reception-tracking{display:none!important}.mr-reception-print{padding:0!important;max-width:none!important}.mr-reception-doc-header{display:flex!important}}

/* v11.42 - safety overrides for help cards and PV logo */
.help-grid{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:16px!important}
.help-grid>.help-tile{display:flex!important;flex-direction:column!important;gap:10px!important;padding:22px!important;border-radius:14px!important;border:1px solid #dbe2e9!important;background:#fff!important;text-decoration:none!important}
.mr-reception-doc-header>.mr-reception-logo{display:block!important;width:auto!important;height:auto!important;max-width:210px!important;max-height:85px!important;object-fit:contain!important}
@media(max-width:700px){.help-grid{grid-template-columns:1fr!important}}

/* v11.43: PV header stays white (no global header black banner) */
.mr-reception-print .mr-reception-doc-header{background:#fff!important;color:#202d3a!important;height:auto!important;min-height:85px!important;padding:0 0 18px!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
.mr-reception-print .mr-reception-doc-header strong,.mr-reception-print .mr-reception-doc-header span{color:#202d3a!important}
@media print{.mr-reception-print .mr-reception-doc-header{display:flex!important;background:#fff!important;color:#202d3a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* v11.48 - Bibliothèque de labels et administration */
.mr-label-row{display:flex;gap:8px;margin:8px 0;align-items:center}.mr-label-row input{flex:1;min-width:0}.mr-label-remove{border:1px solid #ccd5de;background:#fff;border-radius:6px;padding:6px 12px;cursor:pointer}.mr-password-reset{display:grid;gap:9px;min-width:240px;padding:12px;background:#f6f8fa;border-radius:8px}.mr-password-reset input{width:100%}.mr-password-reset label{display:block}

/* v11.49 — barre de navigation unique ordinateur / mobile */
.app-topbar{position:sticky;top:0;isolation:isolate}
.app-topbar .topbar-title-centered{position:static;transform:none;flex:1 1 auto;min-width:0;max-width:none;align-items:center;text-align:center;width:auto;margin:0}
.app-topbar .topbar-title strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:15px}
.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex:0 0 auto;margin-left:0}
.topbar-icon-action{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;box-sizing:border-box;border:1px solid #dce3eb;border-radius:11px;background:#fff;color:#344658;text-decoration:none;transition:background .15s,border-color .15s}
.topbar-icon-action:hover{background:#eff4f8;border-color:#b9c9d6;color:#162e46}
.topbar-icon-action:focus-visible{outline:3px solid #5d9cec;outline-offset:2px}
.topbar-icon-action svg{height:21px;width:21px;display:block}
@media(max-width:800px){.app-topbar{padding:0 10px;gap:8px}.app-topbar .topbar-title strong{font-size:12px}.app-topbar .topbar-kicker{font-size:9px}.topbar-actions{gap:5px}.topbar-icon-action{width:42px;height:42px}.menu-toggle{flex:0 0 42px;width:42px;height:42px}}
@media(max-width:360px){.app-topbar .topbar-title strong{font-size:11px}.topbar-actions{gap:3px}}
@media print{.topbar-actions{display:none!important}}

/* v11.50 : bandeau haut de l'accueil et choix des dates */
.mr-home-periodbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;background:#fff;border:1px solid #dfe5eb;border-radius:12px;padding:14px 18px}.mr-home-period-title h1{margin:0;font-size:22px;line-height:1.25}.mr-home-period-title p{font-size:12px;color:#697788;margin:5px 0 0}.mr-home-period-form{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.mr-home-period-form>label{margin:0;font-weight:650;font-size:13px}.mr-period-calendar{display:inline-flex;align-items:center;color:#3c657d}.mr-home-period-form select,.mr-home-period-form input[type=date]{width:auto;min-height:38px;border:1px solid #ccd5df;border-radius:8px;padding:6px 9px;background:#fff;color:#233448;font-size:13px;margin:0}.mr-home-dates{display:flex;gap:7px}.mr-home-dates[hidden]{display:none!important}.mr-home-dates label{font-size:12px;display:flex;align-items:center;gap:5px;margin:0}.mr-home-period-apply{min-height:38px;padding:7px 12px;border-radius:8px;margin:0}.mr-home-period-form :focus-visible{outline:2px solid #287ba2;outline-offset:2px}@media(max-width:960px){.mr-home-periodbar{align-items:flex-start;flex-direction:column}.mr-home-period-form{width:100%;justify-content:flex-start}}@media(max-width:540px){.mr-home-periodbar{padding:12px}.mr-home-period-form{display:grid;grid-template-columns:auto 1fr;gap:9px}.mr-home-period-form select{grid-column:1/-1;width:100%}.mr-home-dates{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.mr-home-dates label{display:flex;flex-direction:column;align-items:stretch}.mr-home-dates input[type=date]{width:100%;min-width:0}.mr-home-period-apply{grid-column:1/-1;width:100%}}

/* v11.51: sélection d'exercice depuis le bandeau commun */
.mr-dashboard-title{margin:0 0 20px}.mr-dashboard-title h1{font-size:24px;margin:0}.mr-dashboard-title p{color:#697888;margin:4px 0 0;font-size:13px}
.mr-exercise-overlay:not([hidden]){position:fixed;inset:0;background:rgba(20,32,45,.3);z-index:2000}
.mr-exercise-popover:not([hidden]){display:block;position:fixed;z-index:2001;top:76px;right:22px;width:min(660px,calc(100vw - 30px));max-height:calc(100dvh - 95px);overflow:auto;background:#fff;border:1px solid #d9e2e8;border-radius:15px;box-shadow:0 18px 55px rgba(22,35,50,.22);padding:22px;color:#1d2c3a}
.mr-exercise-popover [hidden]{display:none!important}.mr-exercise-popover h2{text-align:center;font-size:20px;margin:0 0 16px}
.mr-exercise-years{display:flex;gap:12px;justify-content:space-between;align-items:center}.mr-exercise-years select{flex:1;min-width:0;max-width:280px}.mr-exercise-popover button{cursor:pointer}.mr-exercise-years button{border:0;background:#edf2f6;padding:10px 12px;border-radius:9px;color:#163c52}.mr-exercise-years button:disabled{opacity:.35;cursor:default}
.mr-exercise-tabs{display:grid;grid-template-columns:1fr 1fr;margin:22px 0;border-bottom:1px solid #dce4eb}.mr-exercise-tabs button{border:0;background:transparent;padding:12px;font-size:15px;color:#617181}.mr-exercise-tabs button.active{color:#09577b;border-bottom:3px solid #09577b;background:#f1f7fa}
.mr-exercise-calendar{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-height:110px}.mr-exercise-calendar label{display:flex;flex-direction:column;gap:8px}.mr-exercise-calendar input{width:100%;min-width:0}
.mr-exercise-periods p{font-size:14px}.mr-exercise-granularity{display:flex;gap:8px;margin:12px 0}.mr-exercise-granularity button{border:0;background:#f4f5f6;padding:10px 12px;border-radius:20px;color:#64717c}.mr-exercise-granularity button.active{background:#deeff8;color:#09577b;font-weight:700}
.mr-exercise-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:8px 0;min-height:130px}.mr-exercise-choices label{display:flex;align-items:center;gap:8px;font-size:14px}.mr-exercise-choices input{accent-color:#0c6d98;width:18px;height:18px}
.mr-exercise-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;padding-top:16px;border-top:1px solid #e4e9ed}.mr-exercise-footer button{border:1px solid #d6e1e8;background:#fff;border-radius:9px;padding:10px 15px}.mr-exercise-footer #mr-exercise-apply{background:#073e5b;color:white;border-color:#073e5b}.mr-exercise-trigger svg{width:22px;height:22px}
@media(max-width:620px){.mr-exercise-popover:not([hidden]){top:55px;right:8px;width:calc(100vw - 16px);max-height:calc(100dvh - 65px);padding:14px}.mr-exercise-years{gap:5px}.mr-exercise-years button{font-size:12px;padding:10px 6px}.mr-exercise-years select{font-size:12px;padding:7px 4px}.mr-exercise-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.mr-exercise-footer{justify-content:space-between}.mr-exercise-footer button{font-size:12px;padding:9px}}

/* v11.52 — Sélecteur calendrier plus compact et choix toutes les périodes */
.mr-exercise-popover:not([hidden]){width:min(500px,calc(100vw - 30px));padding:15px 18px;max-height:calc(100dvh - 85px)}
.mr-exercise-popover h2{font-size:18px;margin-bottom:10px}
.mr-exercise-years{gap:7px}.mr-exercise-years button{padding:8px 9px}
.mr-exercise-tabs{margin:13px 0}.mr-exercise-tabs button{padding:9px}
.mr-exercise-calendar{gap:10px;min-height:78px}
.mr-exercise-periods p{margin:6px 0;font-size:13px}
.mr-exercise-granularity{margin:8px 0}.mr-exercise-granularity button{padding:7px 11px}
.mr-exercise-choices{gap:8px 10px;min-height:0;padding:7px 0}
.mr-exercise-choices label{font-size:13px}
.mr-exercise-select-all{display:flex;align-items:center;gap:9px;font-size:13px;font-weight:650;padding:7px 3px;border-bottom:1px solid #e4e9ed;cursor:pointer}
.mr-exercise-select-all input{width:18px;height:18px;accent-color:#0c6d98}
.mr-exercise-footer{margin-top:13px;padding-top:11px}
.mr-exercise-footer button{padding:8px 12px}
@media(max-width:620px){.mr-exercise-popover:not([hidden]){top:55px;right:8px;width:calc(100vw - 16px);max-height:calc(100dvh - 65px);padding:12px}.mr-exercise-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* v11.53 : actions de calendrier lisibles malgré les styles globaux des boutons */
.mr-exercise-popover .mr-exercise-footer #mr-exercise-cancel{background:#fff!important;color:#263443!important;border:1px solid #b7c4ce!important;opacity:1!important}
.mr-exercise-popover .mr-exercise-footer #mr-exercise-reset{background:#e9eef2!important;color:#263443!important;border:1px solid #cdd7df!important;opacity:1!important}
.mr-exercise-popover .mr-exercise-footer #mr-exercise-reset:disabled{color:#84919a!important;opacity:.65!important}
.mr-exercise-popover .mr-exercise-footer #mr-exercise-apply{background:#073e5b!important;color:#fff!important;border-color:#073e5b!important}
.mr-exercise-popover .mr-exercise-years select{min-width:0}

/* v11.54 : identité en première ligne, période choisie sous le nom (toutes les pages). */
.app-topbar .topbar-title-centered{gap:4px;justify-content:center}
.app-topbar .topbar-title-centered strong{display:block;font-size:16px;line-height:1.15}
.app-topbar .topbar-period{display:block;font-size:11px;font-weight:500;color:#667587;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:800px){.app-topbar .topbar-title-centered strong{font-size:12px}.app-topbar .topbar-period{font-size:10px}}
@media(max-width:420px){.app-topbar .topbar-period{font-size:9px}}

/* v11.56 — en-tête commun compact : titre de page au centre, période sous les actions. */
.app-topbar .topbar-title-centered{align-items:center;justify-content:center;min-width:0}
.app-topbar .topbar-page-label{font-family:inherit;font-size:15px;font-weight:700;line-height:1.2;letter-spacing:0;color:var(--ink,#1c252d);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-topbar .topbar-actions-area{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:3px;flex:0 0 auto;min-width:0;max-width:46%}
.app-topbar .topbar-actions-area .topbar-actions{margin:0;display:flex;align-items:center;gap:8px}
.app-topbar .topbar-actions-area>.topbar-period{font-size:10px;line-height:1.2;color:#657587;font-weight:500;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;text-align:right;display:block}
@media(max-width:800px){.app-topbar .topbar-page-label{font-size:13px}.app-topbar .topbar-actions-area{max-width:57%}.app-topbar .topbar-actions-area>.topbar-period{font-size:9px}.app-topbar .topbar-actions-area .topbar-actions{gap:5px}}
@media(max-width:420px){.app-topbar .topbar-page-label{font-size:12px}.app-topbar .topbar-actions-area>.topbar-period{font-size:8px}.app-topbar .topbar-actions-area{max-width:61%}}
@media print{.app-topbar .topbar-actions-area{display:none!important}}

/* v11.57 — Accueil : cartes de facturation et chantiers */
.dashboard-finance{padding:0;border:0;background:transparent;box-shadow:none;margin-bottom:16px}
.dashboard-finance-cards{gap:14px}
.finance-card{grid-template-columns:48px minmax(0,1fr);padding:16px 18px;min-height:102px;border:1px solid #dae5f3;box-shadow:0 2px 10px #1a3d6d0a}
.finance-card>.dashboard-icon{width:46px;height:46px;border-radius:13px;grid-row:1/4}
.finance-card>.dashboard-icon svg{width:26px;height:26px;stroke-width:1.8}
.finance-card.finance-collected{border-color:#cfe0f8}
.finance-card.finance-collected>.dashboard-icon{background:#e9f2ff;color:#1d66b5}
.finance-card.finance-collected>strong{color:#1b67b3}
.finance-card.finance-outstanding{border-color:#f2d3d8}
.finance-card.finance-outstanding>.dashboard-icon{background:#fff0f1;color:#c53945}
.finance-card.finance-outstanding>strong{color:#bd2b3c}
.finance-card>span:not(.dashboard-icon){font-size:14px;font-weight:750;color:#344054}
.finance-card>small{font-size:11px;color:#6b7280}
.finance-card:focus-visible,.dashboard-status-row:focus-visible{outline:3px solid #3479c6;outline-offset:2px}
.dashboard-project-status-list .dashboard-status-row{grid-template-columns:11px minmax(0,1fr) 46px}
.status-project-en_cours{background:#3b82f6}.status-project-termine{background:#10a775}.status-project-litige{background:#d64b54}.status-project-all{background:#8091a6}
@media(max-width:520px){.dashboard-finance-cards{grid-template-columns:1fr}.finance-card{padding:14px;min-height:94px}.finance-card>strong{font-size:clamp(19px,6vw,24px)}.dashboard-panel-heading h2{font-size:16px}}

/* v11.58 — bandeau responsive + charte couleur unique des statuts */
:root{--mr-status-wait:#d79e34;--mr-status-progress:#3b82f6;--mr-status-success:#22a06b;--mr-status-error:#d74b4b;--mr-status-cancel:#8b95a5;--mr-status-partial:#9063c7;--mr-finance-blue:#2563bc;--mr-finance-red:#d12f43}
.app-topbar .topbar-title-centered{gap:2px;max-width:100%;min-width:0}
.app-topbar .topbar-company-label{display:block;color:var(--ink,#1c252d);font-size:15px;font-weight:800;line-height:1.12;letter-spacing:.01em;text-transform:uppercase;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-topbar .topbar-page-label{display:block;font-weight:750;font-size:12px;color:var(--menu-bg,#1c252d);line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.finance-card>span:not(.dashboard-icon){font-size:clamp(14px,1.3vw,17px);font-weight:800;color:var(--ink,#1c252d);line-height:1.3}
.finance-card.finance-collected>strong{color:var(--mr-finance-blue)}
.finance-card.finance-outstanding>strong{color:var(--mr-finance-red)}
.finance-card.finance-collected>.dashboard-icon{color:var(--mr-finance-blue);background:#e9f2ff}
.finance-card.finance-outstanding>.dashboard-icon{color:var(--mr-finance-red);background:#ffedf0}
.finance-card>.dashboard-icon svg{width:27px;height:27px}
.status-dot.status-waiting,.status-dot.status-due,.status-dot.status-draft,.status-dot.status-project-waiting{background:var(--mr-status-wait)}
.status-dot.status-progress,.status-dot.status-project-en_cours,.status-dot.status-project-en-cours{background:var(--mr-status-progress)}
.status-dot.status-signed,.status-dot.status-finished,.status-dot.status-paid,.status-dot.status-project-termine,.status-dot.status-project-fini{background:var(--mr-status-success)}
.status-dot.status-refused,.status-dot.status-project-litige,.status-dot.status-unpaid{background:var(--mr-status-error)}
.status-dot.status-cancelled,.status-dot.status-annule,.status-dot.status-project-all{background:var(--mr-status-cancel)}
.status-dot.status-partial{background:var(--mr-status-partial)}
/* Couleurs appliquées aux pastilles des panneaux Devis/Chantiers et aux badges réutilisés dans les listes. */
.dashboard-status-row .status-dot{flex:none;width:10px;height:10px}
@media(max-width:800px){.app-topbar .topbar-company-label{font-size:clamp(10px,2.4vw,14px)}.app-topbar .topbar-page-label{font-size:11px}.app-topbar .topbar-title-centered{gap:3px}}
@media(max-width:420px){.app-topbar .topbar-company-label{font-size:10px}.app-topbar .topbar-page-label{font-size:10px}.finance-card>span:not(.dashboard-icon){font-size:15px}}

/* v11.59 — fiche client professionnel : forme juridique avant la société. */

/* 11.60 - Liste unifiée des chantiers, accessible sur petit écran */
.project-status-filter{display:flex;align-items:center;flex-wrap:wrap;gap:16px;margin:0 0 20px;padding:20px 24px;background:#fff;border:1px solid #dfe5ec;border-radius:18px}
.project-status-filter label{font-weight:700;color:#172b42}
.project-status-filter select{width:min(340px,100%);max-width:100%;margin:0;min-height:46px}
.projects-sort-table .project-sort-link{display:inline-flex;align-items:center;gap:4px;color:inherit;text-decoration:none;white-space:nowrap;font-weight:700}
.projects-sort-table .project-sort-link:hover,.projects-sort-table .project-sort-link:focus-visible{color:#205f9e;text-decoration:underline}
.projects-sort-table .project-sort-link span{font-size:1.1em;color:#47749e}
@media(max-width:640px){.project-status-filter{padding:14px;gap:9px}.project-status-filter label,.project-status-filter select{width:100%}.projects-sort-table{min-width:620px}.project-client-list{padding:14px}}

/* v11.61 - actions d'impression des listes */
.mr-list-print-bar{display:flex;justify-content:flex-end;margin:0 0 14px;gap:10px}.mr-list-print-btn{border:1px solid #0a405f;border-radius:10px;background:#073c5b;color:#fff;font-weight:700;padding:12px 18px;cursor:pointer}.mr-list-print-btn:hover{background:#165d82}@media(max-width:700px){.mr-list-print-bar{justify-content:stretch}.mr-list-print-btn{width:100%}}

/* v11.62 Paiements - filtres, tri, impression */
.mr-payment-filters{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin:12px 0}.mr-payment-filters label{flex:1 1 200px}.mr-payment-filters select{width:100%}.mr-payment-total{font-size:17px;font-weight:700}.mr-payments-sort{border:0;background:transparent;color:inherit;font:inherit;font-weight:700;padding:5px;cursor:pointer;white-space:nowrap}#mr-pay-table tr[hidden],#payment-stripe-info[hidden],#payment-manual-action[hidden]{display:none!important}@media(max-width:700px){.mr-payment-filters button{width:100%}}
