:root{--g:#073b37;--g2:#0d5c54;--g3:#e8f3f1;--gold:#d6a32d;--bg:#f3f7f6;--ink:#182422;--muted:#667774;--line:#dce7e4;--danger:#9a3038;font-family:Inter,Aptos,Segoe UI,Arial,sans-serif;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}.hidden{display:none!important}
.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 22px;background:linear-gradient(110deg,#052f2c,#0c4d47,#073a36);color:#fff;box-shadow:0 8px 24px #00231f2a}.brand{display:flex;align-items:center;gap:11px;white-space:nowrap}.brand small{display:block;color:#c9ddda;font-size:.75rem}.brandmark{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:linear-gradient(145deg,#efc156,#b88318);color:#17342f;font-weight:950}
.nav{display:flex;gap:5px;overflow:auto}.nav button{border:0;border-radius:9px;padding:10px 11px;background:#ffffff0d;color:#edf8f6;cursor:pointer;white-space:nowrap}.nav button:hover,.nav button.active{background:#ffffff20}.nav .logout{background:#8a3036}
.auth-screen{min-height:calc(100vh - 70px);max-width:1240px;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:45px 26px}.auth-intro h1{font-size:clamp(2.5rem,5vw,4.8rem);line-height:1.02;margin:12px 0}.auth-intro p{max-width:650px;color:var(--muted);font-size:1.08rem}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chips span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:9px 12px}.auth-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:29px;box-shadow:0 24px 70px #123d3817}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#eef4f2;border-radius:12px;padding:5px;gap:5px}.tab{border:0;background:transparent;padding:10px;border-radius:9px;font-weight:800;color:#5d6f6c}.tab.active{background:#fff;color:var(--g);box-shadow:0 3px 12px #163c3715}
label{display:block;font-size:.88rem;font-weight:750;margin:14px 0}input,select,textarea{width:100%;margin-top:6px;padding:11px 12px;border:1px solid #cad8d5;border-radius:10px;background:#fff}.pw{display:flex;gap:6px}.pw input{flex:1}.pw button{margin-top:6px;border:1px solid var(--line);border-radius:10px;background:#f6f9f8;padding:0 10px}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--g2);color:#fff}.gold{background:var(--gold);color:#1e2e2a}.secondary{background:#e8efed;color:#21413c}.danger{background:#f9e7e9;color:var(--danger)}.full{width:100%}.link{border:0;background:none;color:var(--g2);font-weight:750;padding:12px 0;cursor:pointer}.notice{background:#fff6de;border:1px solid #ead59b;padding:11px;border-radius:10px;margin:12px 0;color:#71571b}.message{color:var(--danger);min-height:20px;margin-top:9px}
.app{max-width:1540px;margin:auto;padding:24px}.pagehead{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.pagehead h1{margin:5px 0 3px}.pagehead p{margin:0;color:var(--muted)}.identity{display:flex;gap:7px;flex-wrap:wrap}.badge{display:inline-flex;padding:8px 11px;border-radius:999px;background:#fff0c7;color:#6e4e06;font-weight:850;font-size:.78rem}.badge.soft{background:#e6efed;color:#284640}.eyebrow{color:var(--g2);font-size:.72rem;font-weight:900;letter-spacing:1.5px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi,.panel{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 25px #153c3708}.kpi{padding:17px}.kpi small{display:block;color:var(--muted)}.kpi strong{display:block;font-size:1.35rem;margin-top:8px}.panel{padding:17px;margin-top:14px}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px}.panel h2,.panel h3{margin:0}.toolbar{display:flex;gap:7px;flex-wrap:wrap}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-bottom:12px}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:11px}table{border-collapse:collapse;width:100%;min-width:720px}th,td{padding:10px;border-bottom:1px solid #e9eeee;text-align:left;font-size:.86rem}th{background:#0a403b;color:#fff}td.money{text-align:right}.status{padding:5px 8px;border-radius:999px;background:#e8f0ee;font-size:.73rem;font-weight:800}.status.disabled,.status.deleted,.status.expired{background:#fae6e8;color:#8c2931}.actions{display:flex;gap:5px;flex-wrap:wrap}.small{font-size:.78rem;padding:7px 9px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.span2{grid-column:1/-1}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.modal{position:fixed;inset:0;background:#001a187c;z-index:100;display:grid;place-items:center;padding:18px}.modalbox{position:relative;width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:20px;padding:24px;box-shadow:0 35px 90px #0017144d}.x{position:absolute;right:12px;top:8px;border:0;background:none;font-size:2rem;cursor:pointer}.toast{position:fixed;right:17px;bottom:17px;background:#16433e;color:#fff;padding:12px 14px;border-radius:10px;z-index:120}.promo{border-top:6px solid var(--gold)}.promoactions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
@media(max-width:900px){.auth-screen{grid-template-columns:1fr}.auth-intro{display:none}.topbar{align-items:flex-start;flex-direction:column}.nav{width:100%}.app{padding:14px}.pagehead{flex-direction:column}.grid2{grid-template-columns:1fr}}@media(max-width:620px){.formgrid{grid-template-columns:1fr}.span2{grid-column:auto}.auth-card{padding:23px}}
@media print{.topbar,.toolbar,.filters,.btn{display:none!important}.app{max-width:none;padding:0}.panel{box-shadow:none}}

.version-mark{margin:12px 0 0;text-align:center;color:#91a29f;font-size:.72rem;font-weight:700}

/* ===== TABLEAU DE BORD PROFESSIONNEL V22 ===== */
.dash-hero{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:22px 24px;margin-bottom:15px;border-radius:20px;background:linear-gradient(120deg,#073b37,#0d5c54 70%,#196c62);color:#fff;box-shadow:0 14px 35px #063b3724}
.dash-hero h2{margin:5px 0 7px;font-size:1.65rem}.dash-hero p{margin:0;max-width:760px;color:#d8e8e5}.dash-hero .eyebrow{color:#f0c968}.dash-hero-badge{background:#ffffff14;border:1px solid #ffffff22;padding:11px 14px;border-radius:12px;text-transform:capitalize;font-weight:700}
.performance-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.performance-card{display:flex;align-items:center;gap:13px;min-height:118px;transition:.2s transform,.2s box-shadow}.performance-card:hover{transform:translateY(-2px);box-shadow:0 14px 32px #153c3712}.performance-card small{font-size:.78rem}.performance-card strong{font-size:1.18rem}.performance-card em{display:block;margin-top:5px;font-style:normal;font-size:.72rem;color:var(--muted)}
.kpi-icon{display:grid;place-items:center;min-width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,#e8f3f1,#d6ebe7);color:var(--g2);font-size:1.25rem;font-weight:900}
.warn-card{border-color:#ead7a2;background:#fffdf5}.danger-card{border-color:#e7bfc3;background:#fff8f8}.danger-card strong{color:#9a3038}
.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dashboard-panel{min-height:230px}.dashboard-panel .panelhead p{margin:4px 0 0}.metric-big{font-size:1.8rem;color:var(--g2)}
.budget-meter,.mini-meter,.rank-meter,.table-progress{overflow:hidden;background:#e7eeec;border-radius:999px}.budget-meter{height:14px;margin:22px 0}.budget-meter span{display:block;height:100%;background:linear-gradient(90deg,#0c5b53,#d5a32d);border-radius:999px}.budget-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px}.budget-summary span{background:#f7faf9;border:1px solid var(--line);padding:12px;border-radius:12px}.budget-summary b,.budget-summary small{display:block}.budget-summary small{margin-top:4px;color:var(--muted)}
.split-metrics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.split-box{padding:15px;border:1px solid var(--line);border-radius:13px;background:#f9fbfa}.split-box strong,.split-box span{display:block}.split-box span{color:var(--muted);font-size:.78rem;margin:4px 0 11px}.mini-meter{height:8px}.mini-meter i,.rank-meter i,.table-progress span{display:block;height:100%;background:linear-gradient(90deg,#0d5c54,#d6a32d)}
.bar-chart-pro{display:flex;align-items:flex-end;gap:13px;height:210px;padding:22px 4px 4px}.bar-item{flex:1;min-width:58px;text-align:center}.bar-value{font-size:.68rem;font-weight:750;margin-bottom:7px;white-space:nowrap}.bar-track{height:155px;display:flex;align-items:flex-end;justify-content:center}.bar-track span{width:55%;min-width:18px;border-radius:8px 8px 3px 3px;background:linear-gradient(180deg,#0d665c,#0c4842)}.bar-item small{display:block;margin-top:7px;color:var(--muted)}
.trade-ranking{display:flex;flex-direction:column;gap:15px;margin-top:16px}.trade-name{display:flex;justify-content:space-between;gap:12px;margin-bottom:6px;font-size:.82rem}.trade-name span{color:var(--muted)}.rank-meter{height:8px}.table-progress{height:7px;min-width:95px;margin-bottom:4px}.negative{color:#a42f38!important;font-weight:800}.alert-panel{border-left:5px solid #d5a32d;background:#fffaf0}.muted{color:var(--muted)}.empty{padding:28px;text-align:center;color:var(--muted)}
@media(max-width:980px){.dashboard-grid{grid-template-columns:1fr}.dash-hero{align-items:flex-start;flex-direction:column}.split-metrics{grid-template-columns:1fr}.bar-chart-pro{overflow-x:auto}}

/* ===== V24 ANTI DOUBLE-CLIC + MOTS DE PASSE ===== */
button:disabled,.btn:disabled{cursor:not-allowed;opacity:.68;transform:none!important}
.is-busy{pointer-events:none;user-select:none}
.btn-spinner{display:inline-block;width:13px;height:13px;margin-right:7px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;vertical-align:-2px;animation:gbt-spin .7s linear infinite}
@keyframes gbt-spin{to{transform:rotate(360deg)}}
.password-field-wrap,.pw{position:relative;display:flex;align-items:center;gap:6px}
.password-field-wrap input,.pw input{flex:1;padding-right:72px}
.password-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:#eef4f2;color:#174b45;border-radius:8px;padding:6px 9px;font-size:.75rem;font-weight:800;cursor:pointer;z-index:2}
.password-toggle:hover{background:#dfece9}
label>.password-field-wrap{margin-top:6px}
label>.password-field-wrap input{margin-top:0}

/* ===== V25 BIBLIOTHÈQUE DES MÉTIERS ===== */
.trade-picker{border:1px solid var(--line);border-radius:15px;padding:14px;background:#f9fbfa}
.trade-picker-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}
.trade-picker-head strong,.trade-picker-head small{display:block}.trade-picker-head small{margin-top:3px;color:var(--muted)}
.trade-count{background:#e6f0ed;color:#164b45;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:850;white-space:nowrap}
.trade-search{margin:0 0 10px!important}
.trade-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:7px;max-height:290px;overflow:auto;padding:4px}
.trade-option{display:flex;align-items:center;gap:8px;margin:0;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:.82rem;font-weight:650}
.trade-option:hover{border-color:#aacbc5;background:#f3faf8}.trade-option input{width:auto;margin:0}
.custom-trade-box{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.custom-trade-box input{margin:0}
.custom-trade-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.custom-trade-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 9px;border-radius:999px;background:#0d5c54;color:#fff;font-size:.76rem;font-weight:750}
.custom-trade-chip button{border:0;background:#ffffff22;color:#fff;width:20px;height:20px;border-radius:50%;cursor:pointer}
.single-trade-library{display:flex;flex-wrap:wrap;gap:6px;max-height:230px;overflow:auto;padding:8px 2px 12px}
.single-trade-choice{border:1px solid var(--line);background:#fff;color:#294943;border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:750;cursor:pointer}
.single-trade-choice:hover,.single-trade-choice.selected{background:#0d5c54;color:#fff;border-color:#0d5c54}
@media(max-width:620px){.trade-picker-head{flex-direction:column}.custom-trade-box{grid-template-columns:1fr}.trade-library{grid-template-columns:1fr}}

/* V26 : métiers hiérarchiques + lignes cliquables + A4 */
.phase-selector{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;margin-bottom:10px}.hierarchical-list .trade-option span{display:flex;flex-direction:column;gap:2px}.hierarchical-list .trade-option small{color:var(--muted);font-size:.68rem}.custom-trade-box{grid-template-columns:minmax(150px,.7fr) 1fr auto}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f0f8f6}.phase-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#e7f1ef;color:#174e47;font-size:.7rem;font-weight:800}.current-trades{display:flex;flex-wrap:wrap;gap:7px;border:1px solid var(--line);padding:12px;border-radius:12px;background:#f8fbfa}.current-trades>strong{width:100%}.current-trades span{display:inline-flex;gap:5px;align-items:center;padding:7px 9px;border-radius:999px;background:#e9f1ef;font-size:.76rem}.current-trades span small{color:#58706b}@media(max-width:720px){.phase-selector,.custom-trade-box{grid-template-columns:1fr}}@media print{@page{size:A4 landscape;margin:12mm}.topbar,.toolbar,.btn,.actions,.modal,.toast{display:none!important}.panel,.tablewrap{border:0!important;box-shadow:none!important}table{font-size:9pt!important}th,td{padding:5px!important}tr{break-inside:avoid}}

/* V27 */
.project-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center;min-width:570px}.project-actions .btn{white-space:nowrap}@media(max-width:900px){.project-actions{min-width:0}.project-actions .btn{flex:1 1 auto}}@media print{@page{size:A4 landscape;margin:12mm}.project-actions,.toolbar,.topbar,.actions{display:none!important}}

.v28-actions{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;min-width:390px}.v28-actions .btn{white-space:nowrap}.v28-project-row{cursor:pointer}.v28-project-row:hover td{background:#eef7f5!important}.project-hub-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding-bottom:16px;border-bottom:1px solid var(--line)}.project-hub-head h2{margin:5px 0}.project-hub-head p{margin:0;color:var(--muted)}.project-hub-kpis{display:flex;gap:8px;flex-wrap:wrap}.project-hub-kpis span{min-width:120px;background:#f5f9f8;border:1px solid var(--line);padding:10px;border-radius:12px}.project-hub-kpis small,.project-hub-kpis strong{display:block}.project-hub-kpis small{color:var(--muted);font-size:.68rem}.project-hub-menu{display:flex;gap:7px;overflow:auto;padding:14px 0;border-bottom:1px solid var(--line)}.project-hub-tab{border:1px solid var(--line);background:#f7faf9;color:#34534e;border-radius:10px;padding:10px 14px;font-weight:800;cursor:pointer;white-space:nowrap}.project-hub-tab.active{background:#0d5c54;color:#fff;border-color:#0d5c54}.project-hub-content{padding-top:14px}.project-hub-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.project-hub-toolbar h3{margin:0}.project-hub-toolbar p{margin:4px 0 0;color:var(--muted);font-size:.8rem}@media(max-width:850px){.v28-actions{flex-wrap:wrap;min-width:0}.project-hub-head,.project-hub-toolbar{flex-direction:column}}

/* ===== V29 POPUP PROJET PREMIUM ===== */
#modal{backdrop-filter:blur(8px);background:rgba(4,35,32,.38)}
#modal .modalbox:has(.project-premium-modal){width:min(1380px,96vw);max-width:none;padding:0;overflow:hidden;border-radius:24px;background:#fff;box-shadow:0 28px 70px rgba(5,38,34,.28);border:1px solid rgba(255,255,255,.7)}
.project-premium-modal{font-family:Inter,Poppins,Manrope,system-ui,sans-serif;color:#172320}
.ppm-top{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:#fff}
.ppm-label{font-weight:900;letter-spacing:.18em;color:#0b4e47;font-size:.9rem}.ppm-label-icon{margin-right:9px}
.ppm-close{width:46px;height:46px;border-radius:50%;border:1px solid #d9e4e1;background:#fff;color:#13211f;font-size:30px;line-height:1;cursor:pointer}
.ppm-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:30px 42px;background:linear-gradient(120deg,#064d45 0%,#006359 65%,#0a7568 100%);position:relative;overflow:hidden;color:#fff}
.ppm-hero:after{content:"";position:absolute;right:-90px;top:-120px;width:330px;height:330px;background:linear-gradient(45deg,transparent,#ffffff10);transform:rotate(45deg)}
.ppm-project{display:flex;align-items:center;gap:24px;z-index:1}.ppm-building{width:112px;height:112px;border-radius:50%;border:3px solid #e8ba4a;display:grid;place-items:center;font-size:54px;background:#06433d}.ppm-project h2{font-size:2.3rem;margin:0 0 8px}.ppm-project p{font-size:1.05rem;margin:0;color:#e4efed}
.ppm-kpis{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:18px;z-index:1}.ppm-kpi{display:flex;align-items:center;gap:14px;background:#fff;color:#283a36;padding:18px 22px;border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.08);min-height:92px}.ppm-kpi small,.ppm-kpi strong{display:block}.ppm-kpi small{color:#65736f;margin-bottom:6px}.ppm-kpi strong{font-size:1.12rem}.ppm-kpi-icon{font-size:30px}.ppm-budget strong,.ppm-budget .ppm-kpi-icon{color:#087363}.ppm-expense strong,.ppm-expense .ppm-kpi-icon{color:#d39a20}.ppm-labor strong,.ppm-labor .ppm-kpi-icon{color:#245fd0}
.ppm-body{padding:28px 42px 26px}.ppm-tabs{display:flex;gap:14px;padding-bottom:22px;border-bottom:1px solid #dfe7e5;overflow:auto}.ppm-tab{border:1px solid #d6e0de;background:#fff;color:#40534f;padding:14px 20px;border-radius:12px;font-weight:850;font-size:.96rem;cursor:pointer;white-space:nowrap}.ppm-tab.active{background:linear-gradient(135deg,#0a5a50,#006b5f);color:#fff;border-color:#06685d;box-shadow:0 8px 18px rgba(4,83,75,.18)}.ppm-tab b{margin-left:6px}
.ppm-section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:28px 0 18px}.ppm-section-head h3{font-size:1.55rem;margin:0 0 5px}.ppm-section-head p{margin:0;color:#65736f}.ppm-primary{background:#07594f;color:#fff;border:none;padding:13px 20px;border-radius:10px;font-weight:850}
.ppm-table-wrap{border:1px solid #dfe7e5;border-radius:13px;overflow:auto}.ppm-table{width:100%;border-collapse:collapse}.ppm-table thead th{background:linear-gradient(90deg,#064f47,#006359);color:#fff;text-align:left;padding:16px 22px;font-size:.82rem;letter-spacing:.04em}.ppm-table tbody td{padding:16px 22px;border-bottom:1px solid #e4ebe9;vertical-align:middle}.ppm-table tbody tr:last-child td{border-bottom:none}.ppm-table tbody tr:hover td{background:#f7fbfa}.ppm-trade-cell{display:flex;align-items:center;gap:15px}.ppm-trade-icon{width:46px;height:46px;border-radius:10px;background:linear-gradient(145deg,#087263,#04584f);display:grid;place-items:center;color:#fff;font-size:23px}.ppm-phase{display:inline-flex;padding:7px 12px;border-radius:9px;background:#eaf6f0;color:#137155;font-weight:800;font-size:.82rem}.ppm-phase.blue{background:#e8f0ff;color:#2456b3}.ppm-money{font-weight:800;color:#243530;white-space:nowrap}
.ppm-row-actions{display:flex;gap:8px}.ppm-icon-btn{width:42px;height:42px;border-radius:9px;border:1px solid #d5dfdd;background:#fff;color:#193a35;font-size:18px;cursor:pointer}.ppm-icon-btn:hover{background:#f2f8f6}.ppm-icon-btn.danger{border-color:#f0c7c7;color:#d02c2c}.ppm-icon-btn.danger:hover{background:#fff4f4}
.ppm-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:28px;margin-top:26px;border-top:1px solid #e3eae8}.ppm-info{display:flex;align-items:center;gap:13px;background:#f2f9f7;border:1px solid #d9ebe6;border-radius:12px;padding:13px 18px;min-width:300px}.ppm-info-icon{font-size:28px;color:#067263}.ppm-info strong,.ppm-info small{display:block}.ppm-info small{color:#61736f;margin-top:4px}.ppm-footer-actions{display:flex;gap:12px}.ppm-print{background:#fff;border:1px solid #d4dfdc;color:#344944;padding:12px 22px;border-radius:10px;font-weight:850}.ppm-close-main{background:#07594f;color:#fff;border:none;padding:12px 28px;border-radius:10px;font-weight:850}
@media(max-width:1050px){.ppm-hero{flex-direction:column;align-items:flex-start}.ppm-kpis{width:100%;grid-template-columns:1fr}.ppm-project h2{font-size:1.8rem}.ppm-building{width:86px;height:86px;font-size:40px}.ppm-footer{flex-direction:column;align-items:stretch}.ppm-footer-actions{justify-content:flex-end}}
@media(max-width:700px){#modal .modalbox:has(.project-premium-modal){width:98vw}.ppm-top,.ppm-body,.ppm-hero{padding-left:18px;padding-right:18px}.ppm-top{height:68px}.ppm-project{gap:14px}.ppm-kpis{gap:10px}.ppm-section-head{align-items:flex-start;flex-direction:column}.ppm-footer-actions{width:100%}.ppm-footer-actions .btn{flex:1}}
@media print{#modal{position:static!important;background:#fff!important;backdrop-filter:none!important}.ppm-close,.ppm-tabs,.ppm-section-head .btn,.ppm-footer-actions{display:none!important}#modal .modalbox:has(.project-premium-modal){width:100%!important;box-shadow:none!important;border:none!important}.project-premium-modal{font-size:10pt}.ppm-hero{background:#07594f!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.ppm-table thead th{background:#07594f!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ===== V30 POPUP PROJET ADAPTÉ À L'ÉCRAN ===== */

/* Le conteneur modal prend la hauteur utile de l'écran sans scroll global sur desktop */
#modal{
  align-items:center;
  justify-content:center;
  overflow:hidden;
  padding:12px;
}

#modal .modalbox:has(.project-premium-modal){
  width:min(1480px,98vw);
  max-width:none;
  height:min(940px,calc(100vh - 24px));
  max-height:calc(100vh - 24px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.project-premium-modal{
  height:100%;
  min-height:0;
  display:flex;
  flex-direction:column;
}

.ppm-top{
  flex:0 0 72px;
  height:72px;
  padding:0 30px;
}

.ppm-hero{
  flex:0 0 auto;
  padding:20px 30px;
  gap:22px;
}

.ppm-building{
  width:88px;
  height:88px;
  font-size:42px;
}

.ppm-project h2{
  font-size:1.9rem;
  margin-bottom:5px;
}

.ppm-kpis{
  gap:12px;
}

.ppm-kpi{
  min-height:76px;
  padding:13px 16px;
}

.ppm-kpi-icon{
  font-size:25px;
}

.ppm-body{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  padding:18px 30px 18px;
  overflow:hidden;
}

.ppm-tabs{
  flex:0 0 auto;
  padding-bottom:14px;
}

.ppm-tab{
  padding:10px 16px;
}

#ppmContent{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.ppm-section-head{
  flex:0 0 auto;
  padding:18px 0 12px;
}

.ppm-section-head h3{
  font-size:1.35rem;
}

.ppm-table-wrap{
  flex:1 1 auto;
  min-height:0;
  overflow:auto;
  overscroll-behavior:contain;
}

.ppm-table thead{
  position:sticky;
  top:0;
  z-index:2;
}

.ppm-table thead th{
  padding:13px 18px;
}

.ppm-table tbody td{
  padding:12px 18px;
}

.ppm-trade-icon{
  width:40px;
  height:40px;
  font-size:20px;
}

.ppm-footer{
  flex:0 0 auto;
  padding-top:14px;
  margin-top:14px;
}

.ppm-info{
  padding:10px 14px;
  min-width:260px;
}

/* Desktop large : aucun défilement global du popup */
@media (min-width:1100px) and (min-height:700px){
  #modal .modalbox:has(.project-premium-modal){
    height:calc(100vh - 28px);
    max-height:calc(100vh - 28px);
  }

  .project-premium-modal{
    overflow:hidden;
  }

  .ppm-hero{
    min-height:132px;
  }

  .ppm-table-wrap{
    overflow:auto;
    max-height:none;
  }
}

/* Écrans larges mais peu hauts : compacte davantage le popup */
@media (min-width:1100px) and (max-height:820px){
  .ppm-top{
    flex-basis:60px;
    height:60px;
  }

  .ppm-hero{
    padding:14px 24px;
  }

  .ppm-building{
    width:70px;
    height:70px;
    font-size:34px;
  }

  .ppm-project h2{
    font-size:1.55rem;
  }

  .ppm-kpi{
    min-height:64px;
    padding:10px 13px;
  }

  .ppm-body{
    padding:12px 24px 12px;
  }

  .ppm-tabs{
    padding-bottom:10px;
  }

  .ppm-tab{
    padding:8px 13px;
  }

  .ppm-section-head{
    padding:12px 0 8px;
  }

  .ppm-table thead th{
    padding:10px 14px;
  }

  .ppm-table tbody td{
    padding:9px 14px;
  }

  .ppm-footer{
    padding-top:10px;
    margin-top:10px;
  }

  .ppm-info{
    padding:8px 12px;
  }
}

/* Tablette/mobile : autoriser le scroll global si l'écran est petit */
@media (max-width:1099px){
  #modal{
    overflow:auto;
    align-items:flex-start;
    padding:8px;
  }

  #modal .modalbox:has(.project-premium-modal){
    width:100%;
    height:auto;
    max-height:none;
    overflow:visible;
  }

  .project-premium-modal{
    height:auto;
    overflow:visible;
  }

  .ppm-body{
    overflow:visible;
  }

  #ppmContent{
    overflow:visible;
  }

  .ppm-table-wrap{
    max-height:55vh;
    overflow:auto;
  }
}

/* Très petits écrans */
@media (max-width:700px){
  #modal{
    padding:4px;
  }

  #modal .modalbox:has(.project-premium-modal){
    width:100%;
    border-radius:16px;
  }

  .ppm-top{
    padding:0 16px;
  }

  .ppm-hero,
  .ppm-body{
    padding-left:14px;
    padding-right:14px;
  }

  .ppm-kpis{
    grid-template-columns:1fr;
  }
}

/* V34 — popup projet conforme à la maquette, section entière, zéro scrollbar desktop */
@media (min-width:1100px){
  #modal{overflow:hidden!important;align-items:center!important;justify-content:center!important;padding:16px!important}
  #modal .modalbox:has(.v34-project-modal){
    width:min(1420px,96vw)!important;height:min(1000px,96vh)!important;max-width:none!important;max-height:96vh!important;
    padding:0!important;margin:0!important;overflow:hidden!important;border-radius:28px!important;background:#fff!important
  }
  .v34-project-modal{height:100%!important;display:grid!important;grid-template-rows:82px 176px minmax(0,1fr)!important;overflow:hidden!important}
  .v34-project-modal .ppm-top{height:auto!important;padding:0 44px!important}
  .v34-project-modal .ppm-close{width:48px!important;height:48px!important;font-size:30px!important}
  .v34-project-modal .ppm-hero{height:auto!important;min-height:0!important;max-height:none!important;padding:26px 52px!important;display:grid!important;grid-template-columns:minmax(320px,.9fr) minmax(620px,1.55fr)!important;gap:32px!important}
  .v34-project-modal .ppm-building{width:108px!important;height:108px!important;min-width:108px!important;border:3px solid #e7b84c!important;color:#e7b84c!important;background:#07463f!important;font-size:58px!important}
  .v34-project-modal .ppm-project h2{font-size:2.1rem!important}.v34-project-modal .ppm-project p{font-size:1.05rem!important}
  .v34-project-modal .ppm-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important}
  .v34-project-modal .ppm-kpi{height:96px!important;min-height:96px!important;max-height:96px!important;padding:17px 20px!important}
  .v34-project-modal .ppm-body{min-height:0!important;padding:26px 52px 24px!important;display:grid!important;grid-template-rows:68px minmax(0,1fr) 88px!important;overflow:hidden!important}
  .v34-project-modal .ppm-tabs{height:56px!important;padding:0!important;overflow:hidden!important}
  .v34-project-modal .ppm-tab{height:50px!important;min-width:205px!important;padding:0 22px!important;font-size:.95rem!important}
  .v34-project-modal #ppmContent{min-height:0!important;display:grid!important;grid-template-rows:96px minmax(0,1fr) 34px!important;overflow:hidden!important}
  .v34-project-modal .ppm-section-head{height:auto!important;padding:24px 0 16px!important}
  .v34-project-modal .ppm-section-head h3{font-size:1.55rem!important}.v34-project-modal .ppm-section-head p{font-size:.9rem!important}
  .v34-project-modal .ppm-primary{height:52px!important;padding:0 22px!important}
  .v34-project-modal .ppm-table-wrap{height:100%!important;min-height:0!important;overflow:hidden!important}
  .v34-project-modal .ppm-table{height:100%!important;width:100%!important;table-layout:fixed!important}
  .v34-project-modal .ppm-table thead tr{height:54px!important}
  .v34-project-modal .ppm-table thead th{padding:0 20px!important;vertical-align:middle!important}
  .v34-project-modal .ppm-table tbody tr{height:76px!important}
  .v34-project-modal .ppm-table tbody td{height:76px!important;padding:0 20px!important;vertical-align:middle!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .v34-project-modal .ppm-trade-icon{width:48px!important;height:48px!important;min-width:48px!important}
  .v34-project-modal .ppm-icon-btn{width:46px!important;height:46px!important;min-width:46px!important}
  .v34-project-modal .ppm-pager{height:34px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important}
  .v34-project-modal .ppm-pager-empty{visibility:hidden!important}
  .v34-project-modal .ppm-page-btn{width:28px!important;height:28px!important;border:1px solid #d6e0de!important;border-radius:7px!important;background:#fff!important;color:#07594f!important;font-size:18px!important;font-weight:900!important}
  .v34-project-modal .ppm-page-btn:disabled{opacity:.3!important}
  .v34-project-modal .ppm-pager span{font-size:.7rem!important;color:#667772!important;font-weight:800!important}
  .v34-project-modal .ppm-footer{height:88px!important;min-height:88px!important;max-height:88px!important;margin:0!important;padding:18px 0 0!important}
  .v34-project-modal .ppm-info{height:66px!important;min-width:330px!important;padding:10px 18px!important}
  .v34-project-modal .ppm-print,.v34-project-modal .ppm-close-main{height:54px!important;padding:0 28px!important}
  .v34-project-modal .ppm-table-trades th:nth-child(1),.v34-project-modal .ppm-table-trades td:nth-child(1){width:36%!important}
  .v34-project-modal .ppm-table-trades th:nth-child(2),.v34-project-modal .ppm-table-trades td:nth-child(2){width:24%!important}
  .v34-project-modal .ppm-table-trades th:nth-child(3),.v34-project-modal .ppm-table-trades td:nth-child(3){width:23%!important}
  .v34-project-modal .ppm-table-trades th:nth-child(4),.v34-project-modal .ppm-table-trades td:nth-child(4){width:17%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(1),.v34-project-modal .ppm-table-expenses td:nth-child(1){width:11%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(2),.v34-project-modal .ppm-table-expenses td:nth-child(2){width:15%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(3),.v34-project-modal .ppm-table-expenses td:nth-child(3){width:26%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(4),.v34-project-modal .ppm-table-expenses td:nth-child(4){width:18%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(5),.v34-project-modal .ppm-table-expenses td:nth-child(5){width:18%!important}
  .v34-project-modal .ppm-table-expenses th:nth-child(6),.v34-project-modal .ppm-table-expenses td:nth-child(6){width:12%!important}
  .v34-project-modal .ppm-table-suppliers th:nth-child(1),.v34-project-modal .ppm-table-suppliers td:nth-child(1){width:29%!important}
  .v34-project-modal .ppm-table-suppliers th:nth-child(2),.v34-project-modal .ppm-table-suppliers td:nth-child(2){width:22%!important}
  .v34-project-modal .ppm-table-suppliers th:nth-child(3),.v34-project-modal .ppm-table-suppliers td:nth-child(3){width:23%!important}
  .v34-project-modal .ppm-table-suppliers th:nth-child(4),.v34-project-modal .ppm-table-suppliers td:nth-child(4){width:16%!important}
  .v34-project-modal .ppm-table-suppliers th:nth-child(5),.v34-project-modal .ppm-table-suppliers td:nth-child(5){width:10%!important}
}
@media (min-width:1100px) and (max-height:850px){
  #modal .modalbox:has(.v34-project-modal){height:calc(100vh - 16px)!important;max-height:calc(100vh - 16px)!important}
  .v34-project-modal{grid-template-rows:62px 132px minmax(0,1fr)!important}
  .v34-project-modal .ppm-hero{padding:14px 38px!important}.v34-project-modal .ppm-building{width:78px!important;height:78px!important;min-width:78px!important;font-size:42px!important}
  .v34-project-modal .ppm-kpi{height:70px!important;min-height:70px!important;max-height:70px!important;padding:10px 14px!important}
  .v34-project-modal .ppm-body{padding:14px 38px 12px!important;grid-template-rows:50px minmax(0,1fr) 64px!important}
  .v34-project-modal .ppm-tabs{height:42px!important}.v34-project-modal .ppm-tab{height:38px!important}
  .v34-project-modal #ppmContent{grid-template-rows:66px minmax(0,1fr) 28px!important}
  .v34-project-modal .ppm-section-head{padding:10px 0 8px!important}.v34-project-modal .ppm-section-head h3{font-size:1.2rem!important}.v34-project-modal .ppm-section-head p{font-size:.75rem!important}
  .v34-project-modal .ppm-primary{height:40px!important}.v34-project-modal .ppm-table thead tr{height:40px!important}.v34-project-modal .ppm-table tbody tr,.v34-project-modal .ppm-table tbody td{height:55px!important}
  .v34-project-modal .ppm-trade-icon{width:36px!important;height:36px!important;min-width:36px!important}.v34-project-modal .ppm-icon-btn{width:34px!important;height:34px!important;min-width:34px!important}
  .v34-project-modal .ppm-footer{height:64px!important;min-height:64px!important;max-height:64px!important;padding-top:8px!important}.v34-project-modal .ppm-info{height:50px!important}.v34-project-modal .ppm-print,.v34-project-modal .ppm-close-main{height:42px!important}
}

/* ===== V35 POPUP PLUS LARGE + CONTENU PLUS COMPACT ===== */
@media (min-width:1100px){
  #modal{
    padding:6px!important;
  }

  #modal .modalbox:has(.v34-project-modal){
    width:99vw!important;
    height:98vh!important;
    max-width:1760px!important;
    max-height:98vh!important;
    border-radius:22px!important;
  }

  .v34-project-modal{
    grid-template-rows:66px 150px minmax(0,1fr)!important;
  }

  .v34-project-modal .ppm-top{
    padding:0 34px!important;
  }

  .v34-project-modal .ppm-label{
    font-size:.82rem!important;
  }

  .v34-project-modal .ppm-close{
    width:40px!important;
    height:40px!important;
    font-size:25px!important;
  }

  .v34-project-modal .ppm-hero{
    padding:18px 36px!important;
    grid-template-columns:minmax(270px,.85fr) minmax(650px,1.65fr)!important;
    gap:22px!important;
  }

  .v34-project-modal .ppm-project{
    gap:18px!important;
  }

  .v34-project-modal .ppm-building{
    width:82px!important;
    height:82px!important;
    min-width:82px!important;
    font-size:44px!important;
  }

  .v34-project-modal .ppm-project h2{
    font-size:1.65rem!important;
    margin-bottom:4px!important;
  }

  .v34-project-modal .ppm-project p{
    font-size:.9rem!important;
  }

  .v34-project-modal .ppm-kpis{
    gap:12px!important;
  }

  .v34-project-modal .ppm-kpi{
    height:76px!important;
    min-height:76px!important;
    max-height:76px!important;
    padding:11px 14px!important;
    gap:10px!important;
  }

  .v34-project-modal .ppm-kpi-icon{
    font-size:23px!important;
  }

  .v34-project-modal .ppm-kpi small{
    font-size:.68rem!important;
    margin-bottom:2px!important;
  }

  .v34-project-modal .ppm-kpi strong{
    font-size:.9rem!important;
  }

  .v34-project-modal .ppm-body{
    padding:14px 36px 12px!important;
    grid-template-rows:46px minmax(0,1fr) 62px!important;
  }

  .v34-project-modal .ppm-tabs{
    height:42px!important;
    gap:8px!important;
  }

  .v34-project-modal .ppm-tab{
    min-width:165px!important;
    height:36px!important;
    padding:0 13px!important;
    font-size:.75rem!important;
    border-radius:9px!important;
  }

  .v34-project-modal #ppmContent{
    grid-template-rows:62px minmax(0,1fr) 26px!important;
  }

  .v34-project-modal .ppm-section-head{
    padding:8px 0 7px!important;
  }

  .v34-project-modal .ppm-section-head h3{
    font-size:1.1rem!important;
    margin-bottom:2px!important;
  }

  .v34-project-modal .ppm-section-head p{
    font-size:.7rem!important;
  }

  .v34-project-modal .ppm-primary{
    min-width:175px!important;
    height:38px!important;
    padding:0 14px!important;
    font-size:.72rem!important;
    border-radius:8px!important;
  }

  .v34-project-modal .ppm-table thead tr{
    height:38px!important;
  }

  .v34-project-modal .ppm-table thead th{
    padding:0 12px!important;
    font-size:.62rem!important;
  }

  .v34-project-modal .ppm-table tbody tr,
  .v34-project-modal .ppm-table tbody td{
    height:52px!important;
  }

  .v34-project-modal .ppm-table tbody td{
    padding:0 12px!important;
    font-size:.7rem!important;
  }

  .v34-project-modal .ppm-trade-cell{
    gap:8px!important;
  }

  .v34-project-modal .ppm-trade-cell strong{
    font-size:.78rem!important;
  }

  .v34-project-modal .ppm-trade-icon{
    width:32px!important;
    height:32px!important;
    min-width:32px!important;
    font-size:14px!important;
  }

  .v34-project-modal .ppm-phase{
    padding:4px 7px!important;
    font-size:.6rem!important;
    border-radius:7px!important;
  }

  .v34-project-modal .ppm-money{
    font-size:.7rem!important;
  }

  .v34-project-modal .ppm-row-actions{
    gap:4px!important;
  }

  .v34-project-modal .ppm-icon-btn{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
    font-size:13px!important;
    border-radius:6px!important;
  }

  .v34-project-modal .ppm-pager{
    height:24px!important;
    gap:7px!important;
  }

  .v34-project-modal .ppm-page-btn{
    width:22px!important;
    height:22px!important;
    font-size:14px!important;
  }

  .v34-project-modal .ppm-pager span{
    font-size:.58rem!important;
  }

  .v34-project-modal .ppm-footer{
    height:62px!important;
    min-height:62px!important;
    max-height:62px!important;
    padding-top:7px!important;
  }

  .v34-project-modal .ppm-info{
    height:48px!important;
    min-width:250px!important;
    padding:6px 10px!important;
    gap:8px!important;
  }

  .v34-project-modal .ppm-info-icon{
    font-size:19px!important;
  }

  .v34-project-modal .ppm-info strong{
    font-size:.67rem!important;
  }

  .v34-project-modal .ppm-info small{
    font-size:.56rem!important;
    margin-top:1px!important;
  }

  .v34-project-modal .ppm-footer-actions{
    gap:8px!important;
  }

  .v34-project-modal .ppm-print,
  .v34-project-modal .ppm-close-main{
    height:38px!important;
    padding:0 16px!important;
    font-size:.7rem!important;
    border-radius:8px!important;
  }
}

/* Écrans très larges : exploiter davantage la largeur disponible */
@media (min-width:1500px){
  #modal .modalbox:has(.v34-project-modal){
    max-width:1850px!important;
  }

  .v34-project-modal .ppm-hero{
    padding-left:44px!important;
    padding-right:44px!important;
  }

  .v34-project-modal .ppm-body{
    padding-left:44px!important;
    padding-right:44px!important;
  }
}

/* ===== V36 PAGE PROJET PROFESSIONNELLE ===== */
.project-page-pro{display:flex;flex-direction:column;gap:16px}
.project-page-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.project-page-titlebar{display:flex;align-items:center;gap:18px}
.project-page-update{font-size:.75rem;color:var(--muted)}
.project-page-hero{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;align-items:center;padding:28px 30px;border-radius:20px;background:linear-gradient(120deg,#074d45,#006157 65%,#087368);color:#fff;box-shadow:0 14px 34px rgba(4,62,56,.14)}
.project-page-identity{display:flex;align-items:center;gap:20px}
.project-page-icon{width:90px;height:90px;border-radius:50%;border:3px solid #e4b94d;display:grid;place-items:center;font-size:48px;color:#e4b94d;background:#06453f}
.project-page-identity h1{margin:0 0 7px;font-size:2rem}.project-page-identity p{margin:0 0 9px;color:#e3efec}
.project-page-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.project-page-kpi{background:#fff;color:#233733;padding:16px 18px;border-radius:14px;box-shadow:0 8px 20px rgba(0,0,0,.07)}
.project-page-kpi small,.project-page-kpi strong{display:block}.project-page-kpi small{color:#687873;margin-bottom:5px;font-size:.75rem}.project-page-kpi strong{font-size:1.05rem;color:#087062}.project-page-kpi.gold strong{color:#cf941d}.project-page-kpi.blue strong{color:#275fd1}
.project-page-tabs{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}
.project-page-tab{border:1px solid var(--line);background:#fff;color:#40534f;border-radius:10px;padding:11px 16px;font-weight:850;cursor:pointer}
.project-page-tab.active{background:#07594f;color:#fff;border-color:#07594f}
.project-page-content{display:flex;flex-direction:column;gap:12px}
.project-page-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.project-page-section-head h2{margin:0 0 4px}.project-page-section-head p{margin:0;color:var(--muted)}
.project-page-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 5px 18px rgba(12,55,50,.05)}
.project-page-card .tablewrap{margin:0;border:0;border-radius:0}
.project-page-card table{margin:0}
.project-page-pager{display:flex;justify-content:center;align-items:center;gap:10px}
@media(max-width:1000px){.project-page-hero{grid-template-columns:1fr}.project-page-kpis{grid-template-columns:1fr}.project-page-toolbar,.project-page-section-head{align-items:flex-start;flex-direction:column}.project-page-tabs{overflow:auto}}

/* V37 */
#v37TradeForm label,#v37ProjectTradeForm label,#v37EditTradeForm label{display:block;margin-bottom:13px}.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}#v37Activity option{white-space:normal}@media print{@page{size:A4 landscape;margin:12mm}.topbar,.project-page-toolbar,.project-page-tabs,.toolbar,.actions,.btn{display:none!important}}


/* V38 — listes projet métiers / matériaux */
.v38-actions-cell{text-align:center!important}.v38-actions{justify-content:center!important;align-items:center!important}
.v38-catalog-table table,.v38-trades-table table,.v38-materials-table table{width:100%;table-layout:fixed}
.v38-catalog-table th,.v38-catalog-table td,.v38-trades-table th,.v38-trades-table td,.v38-materials-table th,.v38-materials-table td{text-align:left;vertical-align:middle}
.v38-catalog-table th:last-child,.v38-catalog-table td:last-child,.v38-trades-table th:last-child,.v38-trades-table td:last-child,.v38-materials-table th:last-child,.v38-materials-table td:last-child{text-align:center}
.v38-trades-table th:nth-child(1){width:22%}.v38-trades-table th:nth-child(2){width:18%}.v38-trades-table th:nth-child(3){width:30%}.v38-trades-table th:nth-child(4){width:14%}.v38-trades-table th:nth-child(5){width:16%}
.v38-materials-table .tablewrap{overflow:auto}.v38-materials-table table{min-width:1180px}
.v38-materials-table th:nth-child(1){width:9%}.v38-materials-table th:nth-child(2){width:16%}.v38-materials-table th:nth-child(3){width:12%}.v38-materials-table th:nth-child(4){width:17%}.v38-materials-table th:nth-child(5){width:12%}.v38-materials-table th:nth-child(6){width:9%}.v38-materials-table th:nth-child(7){width:10%}.v38-materials-table th:nth-child(8){width:10%}.v38-materials-table th:nth-child(9){width:13%}
.v38-material-search{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px;box-shadow:0 4px 14px rgba(12,55,50,.04)}
.v38-material-search span{font-size:1.3rem;color:#07594f}.v38-material-search input{flex:1;border:0!important;outline:0;background:transparent;padding:7px 3px!important}.v38-material-search small{color:var(--muted);white-space:nowrap}
@media(max-width:900px){.v38-material-search{align-items:stretch;flex-wrap:wrap}.v38-material-search input{min-width:220px}.v38-trades-table table{min-width:850px}.v38-trades-table .tablewrap{overflow:auto}}

#v38CatalogTradeForm label,#v38CatalogTradeEditForm label,#v38ProjectTradeForm label,#v38ProjectTradeEditForm label,#v38ExpenseEditForm label{display:block;margin-bottom:13px}


/* ===== V40 PARAMÈTRES / COMPTE / ACTIVATION ABONNEMENT ===== */
.settings-pro{display:grid;grid-template-columns:1fr 1.25fr;gap:18px;align-items:start}.settings-pro>.panel{margin:0}.settings-account-card{display:flex;gap:18px;align-items:flex-start}.settings-card-icon{width:58px;height:58px;border-radius:16px;background:linear-gradient(135deg,#07594f,#0b7568);color:#fff;display:grid;place-items:center;font-size:28px;box-shadow:0 8px 18px rgba(7,89,79,.18)}.settings-account-card h2,.settings-security-card h2{margin:0 0 8px}.settings-account-card p{line-height:1.6;color:var(--muted)}.settings-subscription-card{grid-row:span 2}.settings-security-card{grid-column:1}.plan-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 11px;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.04em;background:#edf3f2;color:#24433e}.plan-pill.free{background:#edf2f1;color:#4b625e}.plan-pill.standard{background:#eaf3ff;color:#2359a8}.plan-pill.business{background:#fff4d8;color:#8a5d00}.subscription-summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 0}.subscription-summary span{color:var(--muted)}.subscription-lock,.subscription-pending{margin-top:14px;border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:5px}.subscription-lock{background:#eaf7f2;border:1px solid #c6e7da;color:#155d49}.subscription-pending{background:#fff7df;border:1px solid #ead8a0;color:#765600}.subscription-lock span,.subscription-pending span{font-size:.8rem;line-height:1.5}.subscription-main-btn{margin-top:14px;width:100%}.modal-pro-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:2px 0 18px;border-bottom:1px solid var(--line);margin-bottom:18px}.modal-pro-head small{font-weight:900;letter-spacing:.13em;color:#087062}.modal-pro-head h2{margin:5px 0 5px}.modal-pro-head p{margin:0;color:var(--muted)}.modal-pro-icon{width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#07594f,#0b7568);color:#fff;display:grid;place-items:center;font-size:28px}.account-form h3{margin:4px 0 0}.account-separator{padding-top:14px;border-top:1px solid var(--line)}.modal-form-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:8px}.subscription-modal{max-width:760px}.subscription-head .modal-pro-icon{background:linear-gradient(135deg,#9f7315,#e5b342)}.subscription-plans{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.subscription-plan-choice{cursor:pointer}.subscription-plan-choice input{position:absolute;opacity:0;pointer-events:none}.subscription-plan-choice span{display:flex;flex-direction:column;gap:4px;border:2px solid var(--line);border-radius:14px;padding:16px;background:#fff;transition:.15s}.subscription-plan-choice input:checked+span{border-color:#087062;background:#f0faf7;box-shadow:0 0 0 3px rgba(8,112,98,.08)}.subscription-plan-choice b{font-size:1rem}.subscription-plan-choice small{color:var(--muted)}.subscription-plan-choice strong{margin-top:4px;color:#07594f}.payment-cta{display:flex;align-items:center;justify-content:space-between;gap:16px;border-radius:14px;padding:15px 16px;background:linear-gradient(120deg,#073f3a,#076359);color:#fff;margin-bottom:16px}.payment-cta small,.payment-cta strong{display:block}.payment-cta small{color:#cfe2de;margin-bottom:4px}.payment-cta strong{font-size:1.1rem}.support-info{background:#f5f8f7;border:1px solid var(--line);padding:12px 14px;border-radius:10px;color:#526762;font-size:.79rem;line-height:1.5;margin:12px 0}.support-send{margin-top:4px}.pending-count{padding:7px 10px;border-radius:999px;background:#fff3ce;color:#785600;font-size:.75rem;font-weight:900}.transaction-code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem;background:#f3f6f5;padding:5px 7px;border-radius:7px;word-break:break-all}.status.pending{background:#fff3ce;color:#765600}.status.approved{background:#e6f5ee;color:#17634d}.status.rejected{background:#fdeaea;color:#9c3333}
@media(max-width:820px){.settings-pro{grid-template-columns:1fr}.settings-subscription-card,.settings-security-card{grid-column:auto;grid-row:auto}.subscription-plans{grid-template-columns:1fr}.payment-cta{align-items:stretch;flex-direction:column}.modal-form-actions{flex-direction:column}.modal-form-actions .btn{width:100%}}


/* V41 — liste des projets professionnelle */
.v41-projects-panel .panelhead{align-items:flex-start}
.v41-project-search{display:flex;align-items:center;gap:10px;margin:14px 0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px;box-shadow:0 4px 14px rgba(12,55,50,.04)}
.v41-project-search>span{font-size:1.3rem;color:#07594f}
.v41-project-search input{flex:1;border:0!important;outline:0;background:transparent;padding:7px 3px!important;min-width:220px}
.v41-project-search small{color:var(--muted);white-space:nowrap;font-weight:700}
.v41-project-table .tablewrap{overflow:auto}
.v41-project-table table{min-width:1380px;width:100%;table-layout:fixed}
.v41-project-table th,.v41-project-table td{text-align:left;vertical-align:middle}
.v41-project-table th:nth-child(1){width:10%}
.v41-project-table th:nth-child(2){width:15%}
.v41-project-table th:nth-child(3){width:10%}
.v41-project-table th:nth-child(4){width:10%}
.v41-project-table th:nth-child(5){width:13%}
.v41-project-table th:nth-child(6){width:12%}
.v41-project-table th:nth-child(7){width:13%}
.v41-project-table th:nth-child(8){width:8%;text-align:center}
.v41-project-table th:nth-child(9){width:19%;text-align:center}
.v41-project-actions-cell{text-align:center!important}
.v41-project-actions-cell .project-actions{justify-content:center!important;display:flex;gap:6px;flex-wrap:wrap}
.project-number-cell strong{color:#07594f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em}
.project-dates{white-space:nowrap}.project-dates span{display:inline-block}.project-dates small{display:inline-block;margin:0 5px;color:#9c7a2c;font-weight:900}
.project-code{display:inline-flex;margin-bottom:4px;padding:4px 8px;border-radius:999px;background:#edf6f3;color:#07594f;font-size:.7rem;font-weight:900;letter-spacing:.04em;border:1px solid #d1e6df}
@media(max-width:900px){.v41-project-search{align-items:stretch;flex-wrap:wrap}.v41-project-search small{width:100%}}

/* ===== V45 PAGE D'ACCUEIL PROFESSIONNELLE — CORRECTION CIBLÉE ===== */
.landing-topbar{position:sticky;top:0;min-height:78px;padding:11px 30px;gap:28px;background:linear-gradient(105deg,#043e39 0%,#07564e 54%,#043c37 100%)}
.landing-topbar .brand{min-width:260px}.landing-topbar .brand strong{font-size:1.05rem;letter-spacing:.02em}.landing-topbar .brandmark{width:46px;height:46px;border-radius:13px;background:linear-gradient(145deg,#efc45a,#c78e1f);box-shadow:0 5px 15px rgba(0,0,0,.15)}
.landing-nav{flex:1;display:flex;justify-content:flex-end;gap:16px;align-items:center}.landing-nav a{color:#f2f8f7;text-decoration:none;font-weight:700;font-size:.9rem;white-space:nowrap;transition:.18s ease}.landing-nav a:hover{color:#f0c15a;transform:translateY(-1px)}
.landing-actions{display:flex;gap:12px;align-items:center}.landing-btn{border:0;border-radius:9px;min-height:42px;padding:0 20px;font-weight:850;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.18s ease}.landing-btn:hover{transform:translateY(-1px);box-shadow:0 9px 22px rgba(4,62,57,.15)}.landing-btn-outline{color:#efbd4c;background:transparent;border:1px solid #c99829}.landing-btn-gold{color:#fff;background:linear-gradient(145deg,#e7b13a,#c99325)}.landing-btn-primary{color:#fff;background:linear-gradient(135deg,#087166,#07574f);padding:0 25px}.landing-btn-light{color:#153a35;background:#fff;border:1px solid #a9c0bb;padding:0 25px}
.auth-screen.landing-home{display:block;max-width:none;width:100%;min-height:calc(100vh - 78px);padding:0;background:radial-gradient(circle at 55% 27%,#ffffff 0,#f7faf9 31%,#f0f5f4 72%,#edf3f1 100%);overflow:hidden}.landing-shell{max-width:none;width:100%;margin:0;padding:26px 28px 0}.landing-hero-grid{display:grid;grid-template-columns:minmax(430px,1.03fr) minmax(350px,.73fr) minmax(380px,.92fr);gap:30px;align-items:center;min-height:610px}.landing-copy{padding:28px 0 12px}.landing-pill{display:inline-flex;padding:8px 16px;border:1px solid #c7d8d5;border-radius:999px;color:#075c53;background:#f5faf8;font-size:.77rem;font-weight:900;letter-spacing:.07em}.landing-copy h1{font-size:clamp(3.2rem,4.4vw,5.55rem);line-height:.97;letter-spacing:-.048em;margin:22px 0 15px;color:#102c28}.landing-copy h1 span{color:#d09a28}.landing-lead{max-width:655px;margin:0;color:#627470;font-size:1.05rem;line-height:1.64}
.landing-feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:25px 0 18px;max-width:680px}.landing-feature-card{display:flex;gap:11px;align-items:flex-start;background:rgba(255,255,255,.86);border:1px solid #dbe6e3;border-radius:14px;padding:13px 14px;box-shadow:0 6px 18px rgba(12,73,66,.045)}.landing-feature-icon{display:grid;place-items:center;min-width:36px;height:36px;border-radius:50%;background:#07564e;color:#efbd4d;font-weight:950}.landing-feature-card strong,.landing-feature-card small{display:block}.landing-feature-card strong{font-size:.79rem;color:#143b36}.landing-feature-card small{margin-top:4px;color:#687a76;font-size:.68rem;line-height:1.35}.landing-cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:17px}
.landing-portrait-wrap{position:relative;align-self:stretch;display:flex;align-items:flex-end;justify-content:center;min-height:610px;overflow:hidden}.landing-photo-halo{position:absolute;inset:7% 0 0;background:radial-gradient(ellipse at 50% 46%,rgba(226,235,233,.16) 0,rgba(202,219,215,.18) 45%,transparent 70%)}.landing-portrait{position:relative;z-index:1;width:100%;height:100%;min-height:610px;object-fit:cover;object-position:center 22%;border-radius:36px 36px 0 0;mask-image:linear-gradient(to bottom,#000 0,#000 89%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 89%,transparent 100%);filter:saturate(.96) contrast(1.02)}
.landing-auth-card{position:relative;z-index:2;border-radius:23px;padding:25px 27px 20px;box-shadow:0 28px 70px rgba(17,64,59,.14);border:1px solid #dfe9e7;max-height:590px;overflow:auto;scrollbar-width:thin}.landing-auth-card .auth-card-title{margin:0 0 15px;color:#14312d;font-size:1.35rem}.landing-auth-card form>h2{font-size:1.15rem;margin:20px 0 4px}.landing-auth-card label{margin:12px 0}.landing-auth-card input{min-height:43px}.landing-auth-card .primary{background:linear-gradient(135deg,#076b61,#07564e)}.landing-auth-card .tabs{background:#edf3f1}.landing-auth-card .tab.active{background:#07564e;color:#fff;box-shadow:none}.login-security{display:flex;gap:11px;align-items:center;border-top:1px solid #e8eeec;margin-top:9px;padding-top:15px;color:#1b4540}.login-security>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#e4f5ef;color:#15906f;font-weight:950}.login-security strong,.login-security small{display:block}.login-security strong{font-size:.77rem}.login-security small{font-size:.68rem;color:#788985;margin-top:3px}.register-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.register-grid label{margin:8px 0}.register-span{grid-column:1/-1}.landing-auth-card #registerForm .notice{font-size:.78rem;padding:9px;margin:9px 0}.landing-auth-card #registerForm h2{margin-top:14px}.landing-auth-card #registerForm input{padding:9px 10px;min-height:40px}.landing-auth-card #registerForm label{font-size:.78rem}.landing-auth-card .version-mark{margin-top:8px}
.landing-trust-strip{display:grid;grid-template-columns:minmax(430px,2fr) repeat(4,minmax(110px,.55fr));align-items:center;gap:0;background:linear-gradient(110deg,#04443e,#075b52 66%,#064a43);border-radius:17px;color:#fff;padding:19px 24px;margin-top:0;box-shadow:0 12px 28px rgba(0,64,57,.12)}.trust-copy{display:flex;align-items:center;gap:15px;padding-right:25px}.trust-shield{display:grid;place-items:center;min-width:48px;height:48px;border:2px solid #e5b444;border-radius:16px;color:#e8b541;font-size:1.2rem;font-weight:950}.trust-copy strong,.trust-copy small{display:block}.trust-copy strong{font-size:1rem}.trust-copy small{margin-top:4px;color:#cfe0dd;font-size:.75rem}.trust-stat{display:grid;place-items:center;border-left:1px solid rgba(255,255,255,.24);min-height:52px;text-align:center}.trust-stat strong{color:#e7b23b;font-size:1.45rem}.trust-stat span{font-size:.75rem;margin-top:3px;color:#eef8f6}
.landing-services{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border:1px solid #e1eae8;border-radius:16px;margin:16px 0 14px;overflow:hidden}.landing-services article{display:flex;gap:13px;padding:19px 22px;min-height:105px;align-items:flex-start;border-right:1px solid #e3eae8}.landing-services article:last-child{border-right:0}.landing-services article>span{display:grid;place-items:center;min-width:45px;height:45px;border-radius:50%;background:#edf5f3;color:#075d54;font-weight:950;font-size:1.2rem}.landing-services strong{display:block;color:#153b36;font-size:.83rem}.landing-services p{margin:5px 0 0;color:#71827e;font-size:.72rem;line-height:1.45}
.landing-footer{margin:0 -38px;padding:17px 38px;background:#06463f;border-top:2px solid #d8a232;color:#dcebea;display:grid;grid-template-columns:1.35fr 1fr 1fr;align-items:center;gap:20px}.landing-footer em{color:#e4b343;font-size:.82rem}.landing-footer>div{display:flex;gap:20px;justify-content:center}.landing-footer a,.landing-footer span{color:#f0f7f6;text-decoration:none;font-size:.74rem}.landing-footer small{text-align:right;color:#d2e1df;font-size:.71rem}
@media(max-width:1320px){.landing-topbar{padding-left:20px;padding-right:20px}.landing-nav{gap:16px}.landing-hero-grid{grid-template-columns:minmax(420px,1.05fr) minmax(290px,.65fr) minmax(360px,.9fr);gap:18px}.landing-shell{padding-left:20px;padding-right:20px}.landing-copy h1{font-size:clamp(3rem,4vw,4.7rem)}.landing-footer{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px}}
@media(max-width:1120px){.landing-nav{display:flex}.landing-hero-grid{grid-template-columns:minmax(420px,1fr) minmax(360px,.85fr)}.landing-portrait-wrap{position:absolute;opacity:.08;inset:90px 36% 165px 36%;pointer-events:none}.landing-copy,.landing-auth-card{position:relative;z-index:2}.landing-trust-strip{grid-template-columns:2fr repeat(2,1fr)}.trust-stat:nth-of-type(4),.trust-stat:nth-of-type(5){display:none}.landing-services{grid-template-columns:repeat(2,1fr)}.landing-services article:nth-child(2){border-right:0}.landing-services article:nth-child(-n+2){border-bottom:1px solid #e3eae8}}
@media(max-width:820px){.landing-topbar{align-items:center;flex-direction:row}.landing-topbar .brand{min-width:0}.landing-actions{margin-left:auto}.landing-actions .landing-btn{padding:0 12px;font-size:.78rem}.auth-screen.landing-home{overflow:visible}.landing-shell{padding:16px 16px 0}.landing-hero-grid{display:block;min-height:0}.landing-copy{padding:18px 0 24px}.landing-copy h1{font-size:clamp(2.7rem,12vw,4.4rem)}.landing-feature-grid{grid-template-columns:1fr 1fr}.landing-portrait-wrap{display:none}.landing-auth-card{max-height:none;margin-bottom:18px}.landing-trust-strip{grid-template-columns:1fr 1fr;padding:18px}.trust-copy{grid-column:1/-1;padding:0 0 15px}.trust-stat{border-left:0;border-top:1px solid rgba(255,255,255,.18);padding-top:12px}.trust-stat:nth-of-type(4),.trust-stat:nth-of-type(5){display:grid}.landing-services{grid-template-columns:1fr}.landing-services article{border-right:0;border-bottom:1px solid #e3eae8}.landing-services article:last-child{border-bottom:0}.landing-footer{margin-left:-16px;margin-right:-16px;padding:18px 16px;grid-template-columns:1fr;text-align:center}.landing-footer>div{justify-content:center}.landing-footer small{text-align:center}}
@media(max-width:540px){.landing-topbar{padding:9px 12px}.landing-topbar .brand small{display:none}.landing-topbar .brandmark{width:40px;height:40px}.landing-actions{gap:6px}.landing-actions .landing-btn{min-height:36px;padding:0 9px}.landing-copy h1{font-size:2.75rem}.landing-feature-grid{grid-template-columns:1fr}.landing-cta-row .landing-btn{width:100%}.register-grid{grid-template-columns:1fr}.register-span{grid-column:auto}.landing-trust-strip{grid-template-columns:1fr 1fr}.landing-footer>div{gap:12px;flex-wrap:wrap}}

/* V46 — accueil pleine page et bouton Accueil permanent. */
.auth-screen.connected-home .landing-auth-card{display:none!important}
.auth-screen.connected-home .landing-cta-row{display:none!important}
.auth-screen.connected-home .landing-hero-grid{grid-template-columns:minmax(520px,1.15fr) minmax(390px,.85fr);gap:42px}
.auth-screen.connected-home .landing-copy{padding-left:clamp(10px,2vw,34px)}
.auth-screen.connected-home .landing-portrait-wrap{min-height:610px}
.landing-home-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border-radius:9px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16)}
@media(max-width:1120px){.auth-screen.connected-home .landing-hero-grid{grid-template-columns:minmax(420px,1fr) minmax(330px,.8fr)}.landing-nav{margin-left:auto;flex:0 0 auto}}
@media(max-width:820px){.landing-nav{display:flex!important;margin-left:auto;width:auto}.landing-home-link{min-height:36px;padding:0 13px;font-size:.8rem}.auth-screen.connected-home .landing-hero-grid{display:block}.auth-screen.connected-home .landing-copy{padding-left:0}}
@media(max-width:540px){.landing-nav{display:flex!important}.landing-home-link{padding:0 10px;font-size:.76rem}}

/* ===== V47 — SECTION PROJET : FOURNISSEURS / OUVRAGES / MATÉRIAUX / FINANCE ===== */
.v47-project-tabs{display:grid;grid-template-columns:repeat(5,minmax(160px,1fr));gap:9px;border-bottom:0;padding:0}
.v47-project-tabs .project-page-tab{min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;white-space:normal}
.v47-project-tabs .project-page-tab b{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:999px;background:#eef4f2;color:#07594f;font-size:.72rem}
.v47-project-tabs .project-page-tab.active b{background:rgba(255,255,255,.18);color:#fff}
.v47-project-tabs .project-page-action-tab{background:linear-gradient(135deg,#d89d24,#efbd4d);border-color:#d89d24;color:#173a35}
.v47-project-tabs .project-page-action-tab:hover{filter:brightness(.98);transform:translateY(-1px)}
.v47-supplier-table .tablewrap,.v47-work-table .tablewrap,.v47-material-table .tablewrap{overflow:auto}
.v47-supplier-table table{min-width:1050px}
.v47-work-table table{min-width:1320px}
.v47-material-table table{min-width:1120px}
.v47-supplier-table th,.v47-work-table th,.v47-material-table th{vertical-align:middle}
.v47-supplier-table th:last-child,.v47-work-table th:last-child,.v47-material-table th:last-child{text-align:center}
.project-total-row td{background:#f0f6f4!important;border-top:2px solid #b7cec8!important;color:#123b35;font-weight:900}
.project-total-row .money{color:#07594f}
.finance-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.finance-summary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:0 6px 20px rgba(12,55,50,.05)}
.finance-summary-card small,.finance-summary-card strong,.finance-summary-card span{display:block}
.finance-summary-card small{color:var(--muted);font-weight:800;margin-bottom:7px}
.finance-summary-card strong{font-size:1.45rem;color:#07594f;margin-bottom:6px}
.finance-summary-card span{font-size:.78rem;color:#6f807c;line-height:1.45}
.finance-summary-card.emphasis{background:linear-gradient(135deg,#073f39,#075e54);border-color:#07594f;color:#fff}
.finance-summary-card.emphasis small,.finance-summary-card.emphasis span{color:#d8e7e4}.finance-summary-card.emphasis strong{color:#f0bd4c}
.finance-history-title{padding:16px 18px 3px}.finance-history-title h3{margin:0;color:#173b36}
#v47PaymentHint strong{color:#07594f}
#v47PaymentForm label,#v47SupplierEditForm label{display:block}
@media(max-width:1200px){.v47-project-tabs{grid-template-columns:repeat(3,minmax(180px,1fr))}.finance-summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.v47-project-tabs{display:flex;overflow:auto;padding-bottom:5px}.v47-project-tabs .project-page-tab{min-width:190px}.finance-summary-grid{grid-template-columns:1fr}}

/* ===== V48 — arrière-plan unifié + fermeture sécurisée du compte ===== */
.auth-screen.landing-home{
  background:
    radial-gradient(circle at 52% 28%,rgba(255,255,255,.96) 0,rgba(247,250,249,.96) 32%,rgba(240,245,244,.98) 72%,#edf3f1 100%);
}
.landing-portrait-wrap{
  overflow:visible;
  isolation:isolate;
  background:radial-gradient(ellipse at 50% 44%,rgba(255,255,255,.72) 0,rgba(245,249,248,.52) 45%,rgba(237,243,241,0) 74%);
}
.landing-portrait-wrap::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:2% -7% -2%;
  background:radial-gradient(ellipse at 50% 46%,rgba(255,255,255,.78),rgba(241,246,244,.40) 52%,transparent 76%);
  pointer-events:none;
}
.landing-photo-halo{display:none}
.landing-portrait{
  border-radius:0;
  box-shadow:none;
  -webkit-mask-image:radial-gradient(ellipse 82% 94% at 50% 48%,#000 58%,rgba(0,0,0,.96) 70%,transparent 100%);
  mask-image:radial-gradient(ellipse 82% 94% at 50% 48%,#000 58%,rgba(0,0,0,.96) 70%,transparent 100%);
}
.settings-closure-card{display:flex;gap:18px;align-items:flex-start;grid-column:1/-1;border-color:#edd5d8;background:linear-gradient(135deg,#fff,#fffafa)}
.settings-danger-icon{display:grid;place-items:center;flex:0 0 58px;width:58px;height:58px;border-radius:16px;background:#f9e7e9;color:#9b2f39;font-size:28px;font-weight:950;box-shadow:0 8px 18px rgba(139,46,55,.10)}
.settings-closure-card h2{margin:0 0 8px;color:#6f262d}.settings-closure-card p{line-height:1.55}
.closure-head .modal-pro-icon{background:linear-gradient(135deg,#922f38,#bd4d57)}
.closure-warning{display:flex;flex-direction:column;gap:5px;margin:0 0 15px;padding:13px 15px;border-radius:12px;background:#fff1f2;border:1px solid #efc9cd;color:#7f2931}
.closure-warning span{font-size:.8rem;line-height:1.5}
.closure-reason-cell{max-width:360px;white-space:normal;line-height:1.45}
.status.resolved{background:#e6f5ee;color:#17634d}.status.rejected{background:#fdeaea;color:#9c3333}
@media(max-width:820px){.settings-closure-card{grid-column:auto}.landing-portrait{mask-image:none;-webkit-mask-image:none}}

/* V49 — uniformisation générale des tableaux : lignes, colonnes et alignements. */
.tablewrap table,
.ppm-table,
.project-page-card table{border-collapse:collapse!important}
table th{border:1px solid #d5dfdc!important;text-align:center!important;vertical-align:middle!important}
table td{border:1px solid #dfe7e5!important;text-align:justify!important;text-justify:inter-word;vertical-align:middle!important}
table td.money,.ppm-money{ text-align:right!important }
table td.center,.center{ text-align:center!important }
.v38-actions-cell,.v41-project-actions-cell{ text-align:center!important }
.actions,.v38-actions,.project-actions{justify-content:center!important;align-items:center!important}
.project-total-row td{vertical-align:middle!important}
.project-total-row td:first-child{text-align:left!important}
.project-page-section-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
@media(max-width:1000px){.project-page-section-actions{width:100%;justify-content:flex-start}}

/* ===== V51 — logo entreprise Standard / Business ===== */
.brandmark.has-logo{background:#fff;padding:4px;overflow:hidden;border:1px solid rgba(255,255,255,.4)}
.brandmark.has-logo img{display:block;width:100%;height:100%;object-fit:contain;border-radius:8px}
.company-logo-editor{display:grid;grid-template-columns:150px 1fr;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:14px;background:#f8fbfa}
.company-logo-preview{height:92px;border:1px dashed #aabbb7;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:10px}
.company-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.company-logo-controls{display:flex;flex-direction:column;gap:9px}.company-logo-controls label{margin:0}.company-logo-controls small{color:var(--muted);line-height:1.45}
.logo-system-preview{width:60px;height:60px;min-width:60px;border-radius:14px;font-size:.9rem}
.logo-free-lock{display:flex;align-items:center;gap:15px;padding:14px 16px;border:1px solid #d9e2df;border-radius:14px;background:#f5f8f7}.logo-free-lock strong{display:block;color:#164f47}.logo-free-lock p{margin:5px 0 0;color:var(--muted);line-height:1.5}
@media(max-width:640px){.company-logo-editor{grid-template-columns:1fr}.company-logo-preview{height:100px}.logo-free-lock{align-items:flex-start}}

/* V56 — Performance projets : lignes ouvrables uniquement si le projet n'est pas verrouillé. */
.v56-performance-project-row td{transition:background .15s ease}
.v56-performance-project-row:not(.v56-locked-project-row):hover td{background:#f0f8f6}
.v56-locked-project-row{cursor:not-allowed;opacity:.78}
.v56-locked-project-row:hover td{background:#fff8ed}

/* V57 — projet verrouillé : aucune ouverture avant déverrouillage administrateur */
.v57-project-locked{cursor:not-allowed!important;opacity:.78}
.v57-project-locked td:not(.v41-project-actions-cell){background:rgba(120,120,120,.045)}
.v57-project-locked .project-number-cell strong::after{content:"  🔒";font-size:.85em}


/* ===== V58 — LISTE DES PROJETS SANS DÉFILEMENT HORIZONTAL ===== */
.v41-project-table .tablewrap{
  width:100%;max-width:100%;overflow-x:hidden!important;overflow-y:visible!important;border:1px solid var(--line)
}
.v41-project-table table{
  width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;border-collapse:collapse
}
.v41-project-table th,.v41-project-table td{
  padding:8px 5px!important;border-right:1px solid #dfe8e6;border-bottom:1px solid #dfe8e6;vertical-align:middle!important;
  white-space:normal!important;overflow-wrap:anywhere;word-break:normal;line-height:1.25;font-size:clamp(.66rem,.72vw,.79rem)!important
}
.v41-project-table th:last-child,.v41-project-table td:last-child{border-right:0}
.v41-project-table th{text-align:center!important;font-weight:850}
.v41-project-table td{text-align:justify!important;text-justify:inter-word}
.v41-project-table th:nth-child(1){width:8%!important}.v41-project-table th:nth-child(2){width:13%!important}
.v41-project-table th:nth-child(3){width:9%!important}.v41-project-table th:nth-child(4){width:9%!important}
.v41-project-table th:nth-child(5){width:12%!important}.v41-project-table th:nth-child(6){width:11%!important}
.v41-project-table th:nth-child(7){width:12%!important}.v41-project-table th:nth-child(8){width:10%!important}
.v41-project-table th:nth-child(9){width:16%!important}
.v41-project-table .project-number-cell,.v41-project-table .project-dates,.v41-project-table td.center,.v41-project-table .v41-project-actions-cell{text-align:center!important}
.v41-project-table .project-dates{display:table-cell!important;white-space:normal!important}
.v41-project-table .project-dates span,.v41-project-table .project-dates small{display:block;margin:1px 0;font-size:.69rem}
.v41-project-table .project-actions{display:flex!important;flex-direction:column;align-items:stretch;justify-content:center!important;gap:4px!important;width:100%}
.v41-project-table .project-actions .btn{width:100%;min-width:0;padding:5px 4px!important;font-size:.66rem!important;line-height:1.15;white-space:normal}
.v58-status-button{max-width:100%;border:1px solid #cadbd7;cursor:pointer;font:inherit;color:#174e47;white-space:normal;line-height:1.15}
.v58-status-button:hover{background:#dcebe7}
@media(max-width:1100px){.v41-projects-panel{padding:12px}.v41-project-table th,.v41-project-table td{padding:6px 3px!important;font-size:.62rem!important}.v41-project-table .project-actions .btn{font-size:.6rem!important;padding:4px 2px!important}.v41-project-table .project-dates span,.v41-project-table .project-dates small{font-size:.61rem}}
