
/* --- css/style.css --- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:#080808}body{margin:0;background:radial-gradient(circle at top,#242424,#080808 48%);color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input{font:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px max(16px,env(safe-area-inset-left));border-bottom:1px solid #303030;background:linear-gradient(#191919,#0a0a0a);position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:28px;letter-spacing:3px}.topbar p{margin:3px 0 0;color:#7e7e7e;font-size:12px}.open-file,.toolbar button,.map-tools button,.selection-bar button,.tabs button,#addMapPackBtn{border:0;border-radius:12px;background:linear-gradient(135deg,#0095ff,#0052d9);color:#fff;font-weight:750;padding:12px 14px;min-height:44px}.open-file input{position:absolute;opacity:0;width:1px;height:1px}.toolbar{display:flex;gap:8px;overflow:auto;padding:10px 14px;background:#0d0d0d;border-bottom:1px solid #292929;position:sticky;top:85px;z-index:4}.toolbar button{flex:0 0 auto;background:#1d1d1d;border:1px solid #353535}main{max-width:1450px;margin:auto;padding:14px}.panel{background:linear-gradient(145deg,#1d1d1d,#101010);border:1px solid #303030;border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 12px 32px #0008}.panel h2{margin:0;color:#4da3ff;font-size:18px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.info-grid div{background:#080808;border:1px solid #282828;border-radius:12px;padding:10px}.info-grid span{display:block;color:#777;font-size:11px;text-transform:uppercase}.info-grid strong{display:block;margin-top:4px;font:13px ui-monospace,monospace;word-break:break-word}.workspace{display:grid;grid-template-columns:320px 1fr;gap:14px}.panel-head,.editor-head,.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head input{background:#090909;color:#fff;border:1px solid #333;border-radius:10px;padding:10px;width:170px}.map-category h3{font-size:13px;color:#aaa;margin:14px 0 7px;display:flex;justify-content:space-between}.map-category h3 span{background:#282828;border-radius:99px;padding:1px 7px}.map-item{width:100%;text-align:left;background:#111;color:#fff;border:1px solid #303030;border-radius:12px;padding:12px;margin:5px 0}.map-item strong,.map-item small{display:block}.map-item small{color:#888;margin-top:4px}.active-map{border-color:#159bff;box-shadow:0 0 0 1px #159bff inset}.editor-head p{color:#8b8b8b;font:12px ui-monospace,monospace;margin:5px 0 0}.badge{border-radius:99px;background:#292929;padding:7px 10px;font-size:12px}.confirmee{background:#0b5932}.probable{background:#3c4b0d}.candidate{background:#593c0b}.map-tools{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;margin:14px 0}.map-tools button{background:#222;border:1px solid #383838;padding:8px;font-size:12px}.selection-bar{background:#090909;border:1px solid #292929;border-radius:12px;padding:8px 10px}.selection-bar button{min-height:34px;padding:6px 10px;background:#222;border:1px solid #3a3a3a}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.tabs button{background:#1f1f1f;border:1px solid #353535}.tabs .active-view{background:linear-gradient(135deg,#0095ff,#0052d9);border-color:#168fff}.map-grid-wrap{overflow:auto;max-height:560px;border:1px solid #303030;border-radius:12px;-webkit-overflow-scrolling:touch}.map-grid{border-collapse:collapse;background:#080808;min-width:900px}.map-grid td{border:1px solid #242424;padding:2px}.map-grid td.selected{outline:2px solid #11a8ff;outline-offset:-2px}.map-grid td.modified input{color:#57ff8a}.map-grid input{width:68px;background:#111;color:#fff;border:0;padding:10px 4px;text-align:center;font-size:12px}canvas{display:block;width:100%;height:auto;max-height:520px;background:#050505;border:1px solid #303030;border-radius:12px}#hexArea pre{overflow:auto;max-height:550px;padding:12px;background:#050505;border:1px solid #303030;border-radius:12px;color:#b9e3ff;font:11px ui-monospace,monospace;line-height:1.5}#mappackList{list-style:none;padding:0}#mappackList li{background:#101010;border:1px solid #303030;border-radius:10px;padding:10px;margin-top:7px}#mappackList small{display:block;color:#888;margin-top:3px}.compare-panel #compareResult{margin-top:12px;background:#080808;border:1px solid #282828;border-radius:12px;padding:12px;font-family:ui-monospace,monospace}.empty{color:#777}footer{text-align:center;color:#666;padding:28px;font-size:12px}@media(max-width:900px){.workspace{grid-template-columns:1fr}.maps-panel{max-height:380px;overflow:auto}.map-tools{grid-template-columns:repeat(3,1fr)}.info-grid{grid-template-columns:repeat(2,1fr)}.topbar{position:relative}.toolbar{top:0}.panel-head{align-items:flex-start;flex-direction:column}.panel-head input{width:100%}}@media(max-width:520px){.topbar{padding-top:max(16px,env(safe-area-inset-top));align-items:flex-start;flex-direction:column}.open-file{width:100%;text-align:center}.editor-head{align-items:flex-start;flex-direction:column}.map-tools{grid-template-columns:repeat(3,1fr)}main{padding:10px}.panel{padding:13px;border-radius:15px}}

.head-actions{display:flex;gap:7px}.head-actions button,#exportCsvBtn,.danger{border:1px solid #3a3a3a;border-radius:10px;background:#202020;color:#fff;padding:9px 12px;font-weight:700}.danger{border-color:#6b2929;background:#331515}.toggle-line{display:flex;gap:8px;align-items:center;color:#aaa;font-size:12px;margin:10px 0}.modified-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55e58a;margin-right:6px}.compare-map{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#0b0b0b;border:1px solid #2d2d2d;border-radius:11px;padding:10px;margin-top:8px}.compare-map small{color:#888}.compare-map button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:7px 9px}dialog{width:min(720px,calc(100vw - 24px));border:1px solid #3a3a3a;border-radius:18px;background:#111;color:#fff;padding:0;box-shadow:0 24px 80px #000}dialog::backdrop{background:#000b}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px;border-bottom:1px solid #2b2b2b}.dialog-actions{border-top:1px solid #2b2b2b;border-bottom:0;justify-content:flex-end}.dialog-head h2{margin:0;color:#4da3ff}.icon-btn{border:0;background:transparent;color:#fff;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.form-grid label{font-size:12px;color:#aaa}.form-grid input,.form-grid select{display:block;width:100%;margin-top:6px;background:#080808;color:#fff;border:1px solid #363636;border-radius:9px;padding:11px}.estimate{margin:0 16px 16px;padding:12px;background:#08111b;border:1px solid #174a72;border-radius:11px;color:#a9d8ff;font:12px ui-monospace,monospace}.dialog-actions button{border:1px solid #3b3b3b;border-radius:10px;background:#222;color:#fff;padding:11px 14px}.dialog-actions #saveMapDefinition{background:linear-gradient(135deg,#0095ff,#0052d9);border:0}.map-axis-head{position:sticky;top:0;background:#161616!important;color:#73baff!important;font-weight:700}.map-row-head{position:sticky;left:0;background:#161616!important;color:#73baff!important;font-weight:700;min-width:42px}.original-value{display:block;color:#777;font-size:9px;margin-top:2px}.map-item.modified-map{border-left:3px solid #55e58a}@media(max-width:520px){.form-grid{grid-template-columns:1fr}.compare-map{grid-template-columns:1fr auto}.compare-map small{grid-column:1/-1}}

.map-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.map-stat{background:#090909;border:1px solid #2d2d2d;border-radius:10px;padding:9px}.map-stat span{display:block;color:#777;font-size:10px;text-transform:uppercase}.map-stat strong{display:block;margin-top:4px;font:12px ui-monospace,monospace}.axis-unit{display:block;color:#666;font-size:9px}.map-grid .map-axis-head,.map-grid .map-row-head{white-space:nowrap}.clipboard-ready{border-color:#159bff!important;box-shadow:0 0 0 1px #159bff inset}.checksum-note{color:#ffca6b}@media(max-width:700px){.map-stats{grid-template-columns:repeat(2,1fr)}}

.profile-select{display:flex;align-items:center;gap:6px;color:#aaa;font-size:12px}.profile-select select{background:#171717;color:#eee;border:1px solid #333;border-radius:8px;padding:7px}.selection-bar{flex-wrap:wrap}.selection-bar button{min-height:34px}

/* LP TUNE 2.7 — fenêtres de travail */
.editor-only{display:block}.editor-only .editor-panel{min-height:62vh}.tool-window{width:min(520px,calc(100vw - 20px));max-width:none;height:min(78vh,760px);padding:0;border:1px solid #3c3c3c;border-radius:16px;background:#111;color:#fff;box-shadow:0 28px 90px #000d;overflow:hidden}.tool-window.wide-window{width:min(820px,calc(100vw - 20px))}.tool-window::backdrop{background:#000a;backdrop-filter:blur(3px)}.window-shell{display:flex;flex-direction:column;height:100%;min-height:0}.window-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(#202020,#121212);border-bottom:1px solid #333;flex:0 0 auto}.window-titlebar h2{margin:0;color:#4da3ff;font-size:18px}.window-titlebar small{display:block;color:#777;margin-top:3px}.window-close{width:40px;height:40px;border-radius:10px;border:1px solid #3a3a3a;background:#1c1c1c;color:#fff;font-size:18px}.window-content{padding:14px;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0}.window-content .panel-head{margin-bottom:8px}.window-content .panel-head input{width:100%}.window-content #mapCategories{padding-bottom:20px}.toolbar #mapsWindowBtn,.toolbar #mappackWindowBtn,.toolbar #compareWindowBtn{background:linear-gradient(135deg,#0d5d98,#173b75);border-color:#297bbb}.tool-window #mappackList li{display:flex;align-items:center;justify-content:space-between;gap:10px}.tool-window #mappackList li>div{flex:1;cursor:pointer}.tool-window #mappackList button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:8px 10px}.tool-window #compareResult{margin:12px 0;background:#080808;border:1px solid #282828;border-radius:12px;padding:12px;font-family:ui-monospace,monospace}.window-content .danger{margin-bottom:4px}.window-empty-state{display:grid;place-items:center;min-height:220px;color:#777;text-align:center}.quick-hint{color:#777;font-size:12px;margin:8px 0 0}
@media(max-width:700px){.tool-window,.tool-window.wide-window{width:100vw;height:calc(100dvh - env(safe-area-inset-top));max-height:none;border-radius:16px 16px 0 0;margin:auto 0 0 0}.window-titlebar{padding-top:max(14px,env(safe-area-inset-top))}.window-content{padding-bottom:max(18px,env(safe-area-inset-bottom))}.toolbar{scroll-snap-type:x proximity}.toolbar button{scroll-snap-align:start}.editor-only .editor-panel{min-height:70vh}}

/* LP TUNE 2.8 calculators */
.calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.calc-grid label{display:flex;flex-direction:column;gap:6px;color:#aaa;font-size:.86rem}.calc-grid input,.calc-grid select{background:#111;border:1px solid #333;color:#eee;border-radius:9px;padding:11px;min-width:0}.primary-action{width:100%;padding:12px;margin:4px 0 14px}.result-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.result-card{background:#111;border:1px solid #292929;border-radius:11px;padding:13px}.result-card small{display:block;color:#888;margin-bottom:5px}.result-card strong{font-size:1.15rem}.calc-canvas{width:100%;height:230px;background:#0d0d0d;border:1px solid #292929;border-radius:11px;margin-top:14px}.calc-warning{color:#b7a56b;font-size:.8rem;line-height:1.4}.conversion-results{display:grid;gap:9px;margin-top:12px}.conversion-row{display:grid;grid-template-columns:110px 1fr;gap:10px;background:#111;border:1px solid #292929;border-radius:9px;padding:10px}.conversion-row code{white-space:pre-wrap;word-break:break-all;color:#8dd7ff}@media(max-width:700px){.calc-grid{grid-template-columns:1fr}.result-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.conversion-row{grid-template-columns:85px 1fr}}

/* v3.4 — calculateur simplifié */
.simple-calc-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:2px}.advanced-calc{margin:4px 0 14px;border:1px solid #2f2f2f;border-radius:12px;background:#0b0b0b;overflow:hidden}.advanced-calc summary,.result-details summary{cursor:pointer;list-style:none;padding:13px 14px;color:#9dcbff;font-weight:700}.advanced-calc summary::-webkit-details-marker,.result-details summary::-webkit-details-marker{display:none}.advanced-calc-grid{padding:0 14px 14px;margin:0}.simple-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin:8px 0 14px}.simple-actions button{border:1px solid #3b3b3b;border-radius:10px;background:#202020;color:#fff;padding:12px;font-weight:750}.simple-actions .primary-action{margin:0;background:linear-gradient(135deg,#0095ff,#0052d9);border:0}.simple-results{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-results>.hero-result{border-color:#176da9;background:linear-gradient(145deg,#10253a,#0c1117)}.hero-result strong{font-size:1.55rem;color:#78c8ff}.result-card em{display:block;color:#777;font-size:.75rem;margin-top:4px;font-style:normal}.result-details{grid-column:1/-1;border:1px solid #2b2b2b;border-radius:12px;background:#0a0a0a}.detail-results{padding:0 12px 12px;grid-template-columns:repeat(3,minmax(0,1fr))}.warning-card{border-color:#7c4b18;background:#2b1c0b}@media(max-width:700px){.simple-calc-grid{grid-template-columns:1fr 1fr}.advanced-calc-grid{grid-template-columns:1fr 1fr}.detail-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.simple-calc-grid,.advanced-calc-grid{grid-template-columns:1fr}.simple-actions{grid-template-columns:1fr}.simple-results{grid-template-columns:1fr 1fr}.hero-result strong{font-size:1.35rem}}

/* v3.5 — calculateur dépliant et outils de map contextuels */
.power-accordion{padding:0;overflow:hidden}.power-accordion>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none}.power-accordion>summary::-webkit-details-marker{display:none}.power-accordion>summary span{color:#4da3ff;font-weight:800;font-size:18px}.power-accordion>summary small{color:#777}.power-accordion[open]>summary{border-bottom:1px solid #303030}.power-accordion-content{padding:16px}.map-edit-panel{margin:12px 0;border:1px solid #303030;border-radius:12px;background:#0b0b0b}.map-edit-panel>summary{padding:12px 14px;color:#9dcbff;font-weight:800;cursor:pointer;list-style:none}.map-edit-panel>summary::-webkit-details-marker{display:none}.map-edit-panel .map-tools{padding:0 10px}.map-edit-panel .selection-bar{margin:0 10px 10px}.three-actions{grid-template-columns:1fr 1fr 1.25fr}.compact-estimate{margin:0 0 12px}.curve-editor{border:1px solid #2c2c2c;border-radius:12px;background:#090909;margin-top:12px}.curve-editor>summary{padding:12px 14px;color:#9dcbff;font-weight:750;cursor:pointer}.curve-table{padding:0 12px 12px}.curve-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:7px}.curve-row input{width:100%;background:#111;color:#fff;border:1px solid #333;border-radius:8px;padding:9px}.curve-head{color:#777;font-size:11px;text-transform:uppercase}.curve-legend{display:flex;gap:16px;justify-content:center;margin-top:8px;font-size:12px}.legend-power{color:#248dff}.legend-torque{color:#ff3b3b}.torque-result{border-color:#9c2b2b!important;background:linear-gradient(145deg,#351313,#130b0b)!important}.torque-result strong{color:#ff6868!important}
@media(max-width:700px){.three-actions{grid-template-columns:1fr}.power-accordion>summary{align-items:flex-start;flex-direction:column}.curve-row{grid-template-columns:1fr 1fr 1fr}}

/* v3.6 — éditeur d’axes et vues refermables */
.axis-edit-panel{margin-top:10px;border-top:1px solid var(--line,#303030);padding-top:8px}.axis-edit-panel summary{cursor:pointer;font-weight:700}.axis-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.axis-editor-grid section{background:#111;border:1px solid #303030;border-radius:12px;padding:12px}.axis-editor-grid h3{margin:0 0 8px}.axis-editor-grid label{display:grid;gap:5px;margin-top:8px;font-size:.85rem}.axis-editor-grid textarea{width:100%;box-sizing:border-box;resize:vertical;background:#080808;color:#eee;border:1px solid #3a3a3a;border-radius:8px;padding:9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.axis-actions,.axis-save-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.axis-save-row{justify-content:space-between}.axis-save-row span{color:#aaa;font-size:.82rem}.closed-view-message{padding:26px;text-align:center;color:#999;border:1px dashed #3a3a3a;border-radius:12px;margin-top:10px}.tabs button.active-view:after{content:" ×";opacity:.7}.tabs button{position:relative}
@media(max-width:720px){.axis-editor-grid{grid-template-columns:1fr}.axis-save-row .primary-action{width:100%}}

.axis-memory{margin-top:10px;border:1px solid #30343a;border-radius:10px;background:#101216}.axis-memory>summary{padding:9px 11px;cursor:pointer;color:#b9c8d8}.axis-memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.axis-memory-grid label{font-size:12px}.axis-memory-grid input,.axis-memory-grid select{width:100%}.axis-bin-known{color:#63d88b!important}.axis-bin-partial{color:#ffcc66!important}.axis-bin-unknown{color:#9aa4af!important}@media(max-width:700px){.axis-memory-grid{grid-template-columns:1fr}}

/* v3.7.1 — édition directe des axes, sans modification de l’interface */
.editable-axis{cursor:pointer;user-select:none}.editable-axis:active{filter:brightness(1.35);outline:1px solid #4da3ff;outline-offset:-1px}

/* v3.7.2 — saisie tactile directe des axes */
.editable-axis{cursor:text;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.axis-inline-input{width:100%;min-width:64px;box-sizing:border-box;border:2px solid #2d8cff!important;border-radius:5px;background:#07182b!important;color:#fff!important;font:inherit;text-align:center;padding:8px 4px!important;outline:none;-webkit-appearance:none;appearance:none}
.axis-inline-input:focus{box-shadow:0 0 0 3px rgba(45,140,255,.25)}

.editor-head-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.editor-head-actions button{padding:.45rem .7rem}.compare-toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.8rem}.file-pick{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border:1px solid #29445b;border-radius:8px;background:#0d1a25}.file-pick input{max-width:180px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem}.analysis-grid article{background:#0b1620;border:1px solid #20394d;border-radius:10px;padding:1rem}.analysis-grid h3{margin-top:0;color:#7cc7ff}.analysis-wide{grid-column:1/-1}.dialog-actions.compact{justify-content:flex-start;margin:.4rem 0}.curve-legend .legend-power{color:#4aa8ff}.curve-legend .legend-torque{color:#ff5656}
/* v3.9 */
.project-panel{display:block}.project-file-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid #293744;border-radius:10px;background:#0d151d;margin-bottom:10px;min-width:0}.project-file-card span,.project-detail-row span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7890a5}.project-file-card strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-detail-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.5fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(130px,.8fr);gap:8px}.project-detail-row>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #24313d;border-radius:8px;background:#0a1118;min-width:0}.project-detail-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-ecu-wide{min-width:0}
.hex-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px;background:#0b1219;border:1px solid #283745;border-radius:8px 8px 0 0}.hex-toolbar label{display:flex;align-items:center;gap:5px;color:#9eb1c2;font-size:12px}.hex-toolbar input{width:120px}.hex-toolbar span{margin-left:auto;color:#7790a5;font:11px ui-monospace,monospace}.hex-editor{overflow:auto;max-height:62vh;border:1px solid #283745;border-top:0;background:#05090d;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.hex-row{display:grid;grid-template-columns:86px minmax(520px,1fr) 140px;align-items:center;min-height:27px;border-bottom:1px solid #111b24}.hex-row:hover{background:#0b141d}.hex-address{border:0;background:transparent;color:#58a9ef;text-align:right;padding:4px 10px 4px 4px;font:inherit}.hex-bytes{display:grid;grid-template-columns:repeat(16,32px);gap:1px;padding:2px 6px}.hex-byte{width:30px;height:23px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:#d0dbe5;font:inherit}.hex-byte:hover,.hex-byte:focus{border-color:#3188ca;background:#10283a}.hex-byte.in-map{background:#153047;color:#8ed0ff}.hex-byte.changed{background:#183f2c;color:#71e5a2}.hex-byte-input{width:30px;height:23px;padding:0;text-align:center;border:1px solid #4ea5e6;border-radius:3px;background:#0d2231;color:#fff;font:inherit}.hex-ascii{color:#8296a8;white-space:pre;padding-left:8px}.hex-empty{display:inline-block;width:30px}
@media(max-width:760px){.project-detail-row{grid-template-columns:1fr 1fr}.project-ecu-wide{grid-column:1/-1}.hex-row{grid-template-columns:76px minmax(520px,1fr) 130px}.hex-editor{max-height:58vh}.hex-toolbar span{width:100%;margin-left:0}.project-file-card strong{font-size:14px}}

/* v3.9.1 — projet, vues et tableau */
.project-detail-row{grid-template-columns:minmax(110px,.75fr) minmax(120px,.8fr) minmax(180px,1.45fr) minmax(105px,.65fr) minmax(105px,.65fr) minmax(125px,.75fr)}
.map-stats{grid-template-columns:repeat(4,1fr)}
.map-grid-wrap{max-width:100%;background:#070b0f}
.map-grid{min-width:max-content;table-layout:fixed}
.map-grid td{padding:0;min-width:62px;height:42px}
.map-grid input{width:100%;min-width:62px;height:40px;padding:5px 4px;font-size:13px;font-variant-numeric:tabular-nums;background:#0c1218;border-radius:0}
.map-grid input:focus{outline:2px solid #168cff;outline-offset:-2px;background:#112236}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:68px;padding:7px 6px;text-align:center;background:#121b24;color:#c7d8e8;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;position:sticky;z-index:2}
.map-grid .map-axis-head{top:0}
.map-grid .map-row-head{left:0}
.map-grid tr:first-child td:first-child{left:0;top:0;z-index:4}
.original-value{display:block;padding:1px 3px 3px;text-align:center;font-size:8px;color:#768899;background:#091018}
.tabs button{cursor:pointer;touch-action:manipulation}
@media(max-width:760px){.project-detail-row{grid-template-columns:1fr 1fr}.map-grid td{min-width:58px}.map-grid input{min-width:58px;font-size:12px}.map-stats{grid-template-columns:repeat(2,1fr)}}

/* v3.9.2 — HEX séparé, projet repliable, grille compacte */
.project-panel{padding:0;overflow:hidden}
.project-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;cursor:pointer;list-style:none;color:#4da3ff;font-weight:800}
.project-summary::-webkit-details-marker{display:none}
.project-summary small{color:#75889a;font-size:11px;font-weight:500}
.project-panel[open] .project-summary{border-bottom:1px solid #2b3945}
.project-content{padding:14px 16px 16px}
.hex-window{width:min(1180px,calc(100vw - 18px))}
.hex-window .window-shell{max-height:92vh}
.hex-window .window-content{padding:12px;overflow:hidden}
.map-tabs{grid-template-columns:repeat(3,1fr)}
.map-grid td{min-width:48px;height:36px}
.map-grid input{min-width:48px;height:34px;padding:3px 2px;font-size:11px}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:54px;padding:5px 3px;font-size:10px}
#closeMapBtn{background:#251416;border:1px solid #68343b;color:#ff9ba6;border-radius:8px}
@media(max-width:760px){
  .map-grid td{min-width:44px;height:34px}
  .map-grid input{min-width:44px;height:32px;font-size:10px}
  .map-grid .map-axis-head,.map-grid .map-row-head{min-width:50px;font-size:9px}
  .project-summary{padding:13px}
  .project-content{padding:10px}
}


/* v3.9.3 — tableau compact, HEX continu et panneaux repliables */
.project-panel.power-accordion{padding:0;overflow:hidden}
.project-panel.power-accordion>summary{border-radius:inherit}
.project-panel.power-accordion[open]>summary{border-bottom:1px solid #2b3945}
.project-panel .project-content{padding:14px 16px 16px}
.map-display-panel{margin-top:12px;border:1px solid #293744;border-radius:12px;background:#090e13;overflow:hidden}
.map-display-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;color:#9dcbff;font-weight:800}
.map-display-panel>summary::-webkit-details-marker{display:none}
.map-display-panel>summary small{color:#75889a;font-size:11px;font-weight:500}
.map-display-panel[open]>summary{border-bottom:1px solid #293744}
.map-display-content{padding:10px}
.map-grid td{min-width:40px;height:32px}
.map-grid input{min-width:40px;height:30px;padding:2px 1px;font-size:10px}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:46px;padding:4px 2px;font-size:9px}
.hex-continuous{position:relative;height:68vh;overflow:auto;border:1px solid #283745;border-top:0;background:#05090d;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;overscroll-behavior:contain}
.hex-virtual-spacer{position:relative;min-width:780px}
.hex-visible-rows{position:absolute;top:0;left:0;right:0;will-change:transform}
.hex-row.continuous-row{display:grid;grid-template-columns:86px minmax(560px,1fr) 145px;align-items:center;border-bottom:1px solid #111b24;box-sizing:border-box}
.hex-values{display:grid;gap:2px;padding:2px 6px;align-items:center}
.hex-values.bits-8{grid-template-columns:repeat(16,minmax(30px,1fr))}
.hex-values.bits-16{grid-template-columns:repeat(8,minmax(58px,1fr))}
.hex-values.bits-32{grid-template-columns:repeat(4,minmax(112px,1fr))}
.hex-values.base-bin.bits-8{grid-template-columns:repeat(16,minmax(68px,1fr))}
.hex-values.base-bin.bits-16{grid-template-columns:repeat(8,minmax(132px,1fr))}
.hex-values.base-bin.bits-32{grid-template-columns:repeat(4,minmax(260px,1fr))}
.hex-value{height:23px;padding:0 3px;border:1px solid transparent;border-radius:3px;background:transparent;color:#d0dbe5;font:inherit;white-space:nowrap}
.hex-value:hover,.hex-value:focus{border-color:#3188ca;background:#10283a}
.hex-value.in-map{background:#153047;color:#8ed0ff}.hex-value.changed{background:#183f2c;color:#71e5a2}
.hex-value-input{width:100%;height:23px;padding:0 3px;text-align:center;border:1px solid #4ea5e6;border-radius:3px;background:#0d2231;color:#fff;font:inherit;box-sizing:border-box}
.hex-empty-value{display:block;height:23px}
@media(max-width:760px){
 .map-grid td{min-width:36px;height:30px}.map-grid input{min-width:36px;height:28px;font-size:9px}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:42px;font-size:8px}
 .map-display-panel>summary{align-items:flex-start;flex-direction:column}
 .hex-continuous{height:70vh}.hex-row.continuous-row{grid-template-columns:76px minmax(560px,1fr) 130px}
}

/* v3.9.4 — vues de map en grandes fenêtres indépendantes */
.map-view-window{width:min(98vw,1500px);height:min(94vh,1000px)}
.map-view-window .window-shell{height:100%;display:flex;flex-direction:column}
.map-view-window .window-content{flex:1;min-height:0;overflow:auto}
.map-window-content{padding:10px}
#tableWindowArea{min-width:0;overflow:auto;height:100%}
.large-view-area{height:calc(94vh - 100px);min-height:520px}
.large-view-area canvas{width:100%!important;height:100%!important;max-height:none!important;display:block}
.view-launchers{display:flex;gap:8px;flex-wrap:wrap}
.view-launchers button{min-width:120px}
.hex-visible-rows{transform:none!important;will-change:top}
@media(max-width:760px){.map-view-window{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}.large-view-area{height:calc(100dvh - 90px);min-height:420px}.map-window-content{padding:5px}}

/* v3.9.5 — Mappack sous Projet, grille plus compacte et HEX réellement relié au BIN */
.mappack-panel{margin-top:-4px}.mappack-accordion-content{padding-top:12px}.mappack-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.mappack-actions button{border:1px solid #35516b;border-radius:10px;background:#132638;color:#fff;padding:9px 11px;font-weight:700}.mappack-panel #mappackList{margin:0}.mappack-panel #mappackList li{display:flex;align-items:center;justify-content:space-between;gap:8px}.mappack-panel #mappackList li>div{flex:1;min-width:0;cursor:pointer}.mappack-panel #mappackList button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:7px 9px}
.map-grid td{min-width:30px!important;width:30px!important;height:27px!important}.map-grid input{min-width:30px!important;width:30px!important;height:25px!important;padding:1px!important;font-size:8.5px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:36px!important;width:36px!important;padding:2px 1px!important;font-size:7.5px!important}.map-grid-wrap{max-height:72vh}.map-grid input[data-digits="long"]{font-size:7.5px!important}
.hex-visible-rows{position:relative!important;top:auto!important;left:auto!important;right:auto!important;transform:none!important;will-change:auto!important;min-width:780px}.hex-scroll-spacer{width:1px;pointer-events:none}.hex-continuous{overflow:auto;contain:strict}.hex-row.continuous-row{min-width:780px}
@media(max-width:760px){.map-grid td{min-width:28px!important;width:28px!important}.map-grid input{min-width:28px!important;width:28px!important;font-size:8px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:34px!important;width:34px!important;font-size:7px!important}.mappack-actions button{flex:1 1 45%}}

/* Animation du titre — discrète et optimisée mobile */
.brand-block{min-width:0}
.animated-brand{position:relative;display:inline-block;overflow:hidden;background:linear-gradient(100deg,#f7f7f7 0%,#f7f7f7 36%,#55b8ff 48%,#ffffff 54%,#f7f7f7 66%,#f7f7f7 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 0 rgba(0,149,255,0));animation:brandIntro .72s cubic-bezier(.2,.8,.2,1) both,brandSweep 4.8s ease-in-out 1s infinite,brandGlow 3.2s ease-in-out 1.2s infinite;will-change:transform,background-position,filter}
.animated-brand span:last-child{color:#4da3ff;-webkit-text-fill-color:#4da3ff;text-shadow:0 0 14px rgba(77,163,255,.28)}
.animated-brand::after{content:"";position:absolute;inset:0 auto 0 -35%;width:22%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:titleShine 4.8s ease-in-out 1s infinite;pointer-events:none}
@keyframes brandIntro{0%{opacity:0;transform:translateY(-8px) scale(.97);letter-spacing:8px}100%{opacity:1;transform:none;letter-spacing:3px}}
@keyframes brandSweep{0%,60%,100%{background-position:100% 0}20%,38%{background-position:0 0}}
@keyframes titleShine{0%,58%,100%{left:-35%;opacity:0}12%{opacity:.8}30%{left:118%;opacity:0}}
@keyframes brandGlow{0%,100%{filter:drop-shadow(0 0 0 rgba(0,149,255,0))}50%{filter:drop-shadow(0 0 7px rgba(0,149,255,.28))}}
@media(max-width:520px){.animated-brand{font-size:25px;letter-spacing:2px}.animated-brand span{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.animated-brand,.animated-brand::after{animation:none!important}.animated-brand{background:#f7f7f7;-webkit-background-clip:text;background-clip:text}.animated-brand span:last-child{color:#4da3ff;-webkit-text-fill-color:#4da3ff}}

/* =========================================================
   V4.0 — Interface portrait iPhone inspirée de la maquette
   ========================================================= */
:root{--bg:#05080c;--panel:#0b1118;--panel2:#0e1620;--line:#233242;--blue:#2d9cff;--blue2:#75c5ff;--text:#ecf4fb;--muted:#8294a5;--green:#57e26f}
*{box-sizing:border-box}
html,body{background:radial-gradient(circle at 50% -15%,#102235 0,#071019 34%,#04070a 72%);color:var(--text)}
body{margin:0;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-bottom:env(safe-area-inset-bottom)}
button,input,select,textarea{font:inherit}
.app-header{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"boot boot" "brand ecu" "actions actions";gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;background:linear-gradient(180deg,#071019,#05090d);border-bottom:1px solid #243343;box-shadow:0 8px 28px rgba(0,0,0,.38);overflow:hidden}
.app-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.7}
.boot-sequence{grid-area:boot;display:grid;gap:2px;padding:7px 9px;border:1px solid #183a2c;border-radius:9px;background:#050b08;color:var(--green);font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2px;max-height:96px;overflow:hidden;transition:max-height .45s ease,opacity .45s ease,padding .45s ease,border-width .45s ease}
.boot-sequence.done{max-height:0;opacity:0;padding-top:0;padding-bottom:0;border-width:0}
.boot-sequence span{opacity:.12;transform:translateX(-4px);transition:.25s ease}
.boot-sequence span.on{opacity:1;transform:none}.boot-sequence span.ok{color:#8aff9c}
.boot-progress{height:3px;background:#102017;border-radius:99px;overflow:hidden;margin-top:4px}.boot-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#24c84d,#79ff95);box-shadow:0 0 10px #45e56a;transition:width .35s ease}
.brand-zone{grid-area:brand;min-width:0;padding-top:2px}.pro-brand{margin:0;font-size:clamp(20px,6.3vw,31px);font-style:italic;font-weight:900;letter-spacing:.8px;line-height:1.04;color:#f4f7fa;text-shadow:0 2px 0 #68717a,0 0 18px rgba(70,160,255,.22);white-space:nowrap}.brand-zone p{margin:5px 0 0;color:#cbd6df;font-size:10px;letter-spacing:1.25px}
.ecu-header-card{grid-area:ecu;align-self:center;text-align:right;padding-left:8px;border-left:1px solid #263442;min-width:90px}.ecu-header-card strong{display:block;color:var(--blue2);font-size:14px}.ecu-header-card small{display:block;color:#b7c3ce;font-size:9px;margin-top:3px;white-space:nowrap}
.header-actions{grid-area:actions;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.icon-action{height:42px;border:1px solid #293b4c;border-radius:10px;background:linear-gradient(#101923,#0a1118);color:#eaf4ff;display:grid;place-items:center;font-size:19px}.icon-action:active{transform:scale(.97);background:#12283a}.open-file{position:relative;overflow:hidden}.open-file input{position:absolute;inset:0;opacity:0;width:100%;height:100%}
.main-nav{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#081019;border-bottom:1px solid #203143;box-shadow:0 8px 18px rgba(0,0,0,.35)}.main-nav button{min-width:0;height:54px;padding:6px 2px;border:0;border-right:1px solid #1a2836;background:transparent;color:#c5d2de;font-size:8px;font-weight:750;letter-spacing:.35px}.main-nav button span{display:block;color:#a8bed0;font-size:19px;line-height:21px;margin-bottom:3px}.main-nav button.active,.main-nav button:active{color:#fff;background:linear-gradient(180deg,#12263a,#0b1723);box-shadow:inset 0 -2px var(--blue)}.main-nav button.active span{color:var(--blue)}
.secondary-actions{display:flex;gap:7px;overflow-x:auto;padding:9px 12px;background:#070c12;border-bottom:1px solid #1d2b38;scrollbar-width:none}.secondary-actions::-webkit-scrollbar{display:none}.secondary-actions button{flex:0 0 auto;border:1px solid #2a3c4d;border-radius:8px;background:#0d1721;color:#dbe7f1;padding:8px 11px;font-size:11px;font-weight:700}
main{padding:10px;max-width:820px;margin:0 auto}.panel,.power-accordion,.editor-panel{background:linear-gradient(180deg,rgba(14,22,31,.98),rgba(8,13,19,.98));border:1px solid #223344;border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.24)}
.power-accordion>summary,.map-display-panel>summary,.axis-edit-panel>summary,.map-edit-panel>summary{background:linear-gradient(90deg,#0c1a27,#0a121a);color:#48a8ff;border-radius:11px 11px 0 0}.power-accordion>summary span,.map-display-panel>summary span{font-weight:850;letter-spacing:.3px}.power-accordion>summary small,.map-display-panel>summary small{color:#71869a}
.project-file-card{background:#05090d;border:1px solid #263849;border-radius:9px;padding:12px}.project-detail-row>div{background:#080e14;border:1px solid #1e2e3c;border-radius:9px;padding:9px}.project-detail-row span,.project-file-card span{color:#74899b;text-transform:uppercase;font-size:9px;letter-spacing:.7px}.project-detail-row strong,.project-file-card strong{color:#edf5fc}
.editor-panel{padding:0;overflow:hidden}.editor-head{padding:13px 14px;background:linear-gradient(90deg,#0b1722,#080f16);border-bottom:1px solid #213141}.editor-head h2{font-size:17px;margin:0;color:#fff}.editor-head p{font-size:10px;color:#7e93a6;margin-top:4px}.badge{border:1px solid #31516a;background:#102338;color:#89c9ff}
.view-launchers{display:grid!important;grid-template-columns:repeat(3,1fr);gap:6px!important}.view-launchers button{min-width:0!important;border:1px solid #294158;border-radius:9px;background:#0d1a26;color:#d5e5f2;padding:10px 4px;font-size:11px;font-weight:800}.view-launchers button:active{background:#173653;color:#fff}
.tool-window{padding:0;border:1px solid #304457;border-radius:14px;background:#070c12;color:#eef6fd;box-shadow:0 24px 80px rgba(0,0,0,.7)}.tool-window::backdrop{background:rgba(0,4,8,.78);backdrop-filter:blur(5px)}.window-shell{background:linear-gradient(180deg,#0b121a,#060a0f)}.window-titlebar{background:linear-gradient(90deg,#0e2030,#08131d);border-bottom:1px solid #284159}.window-titlebar h2{color:#f5f9fc}.window-titlebar small{color:#8396a7}.window-close{background:#122130!important;border:1px solid #344b5e!important;color:#fff!important}
.mapsDialog{}.panel-head input,#mapSearch{width:100%;background:#05090d;border:1px solid #2a4155;color:#fff;border-radius:9px;padding:11px}.toggle-line{color:#91a3b4;font-size:11px}
#mapCategories{display:grid;gap:10px;margin-top:10px}.map-category{border:1px solid #223548;border-radius:11px;overflow:hidden;background:#080e14}.map-category h3{position:sticky;top:0;z-index:2;margin:0;padding:10px 12px;background:linear-gradient(90deg,#102438,#0a1722);color:#57b2ff;font-size:12px;text-transform:uppercase;letter-spacing:.7px}.map-category h3 span{float:right;border:1px solid #31546e;border-radius:20px;padding:1px 7px;color:#cce8ff}.map-item{width:100%;display:grid;grid-template-columns:1fr auto;text-align:left;gap:3px 8px;padding:10px 12px;border:0;border-top:1px solid #172532;background:#080e14;color:#eef5fb}.map-item strong{font-size:12px}.map-item small{grid-column:1/-1;color:#758b9f;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.map-item:active,.map-item.active-map{background:#10283d;box-shadow:inset 3px 0 var(--blue)}.modified-map strong{color:#79e3a1}
.map-grid-wrap{border:1px solid #26394a;border-radius:9px;background:#05090d}.map-grid{border-collapse:collapse}.map-grid td{border:1px solid #162532}.map-grid input{background:#081018;color:#dbe9f4}.map-grid input:focus{background:#12304a}.map-grid .map-axis-head,.map-grid .map-row-head{background:#101d28;color:#80c6ff}
.calc-grid label,.form-grid label{color:#889caf}.calc-grid input,.form-grid input,.form-grid select,.form-grid textarea{background:#05090e;border:1px solid #283c4f;color:#fff;border-radius:8px}.result-card{background:#080f16;border:1px solid #213649}.hero-result strong{color:#4daaff}.torque-result strong{color:#ff6161}
footer{color:#4f6273;text-align:center;font-size:9px;padding:20px 10px}
@media(max-width:430px){main{padding:8px}.pro-brand{font-size:21px}.brand-zone p{font-size:8.5px}.ecu-header-card strong{font-size:12px}.ecu-header-card small{font-size:8px}.secondary-actions{padding-left:8px;padding-right:8px}.secondary-actions button{font-size:10px;padding:7px 9px}.project-detail-row{grid-template-columns:1fr 1fr!important}.tool-window,.map-view-window,.hex-window{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0!important}.window-titlebar{padding-top:calc(10px + env(safe-area-inset-top))}.window-content{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.map-grid td{min-width:27px!important;width:27px!important}.map-grid input{min-width:27px!important;width:27px!important;font-size:7.7px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:33px!important;width:33px!important}}

/* v4.0.1 — finitions navigation, identité et classification couleur */
.pro-brand{display:flex;align-items:baseline;gap:.28em;flex-wrap:wrap}
.pro-brand .brand-accent{color:#248dff;text-shadow:0 0 18px rgba(36,141,255,.3)}
.main-nav button{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}
.main-nav button.active,.main-nav button.nav-selected{background:linear-gradient(180deg,#123b67,#0c2747)!important;border-color:#248dff!important;color:#fff!important;box-shadow:0 0 0 1px rgba(36,141,255,.35) inset,0 0 18px rgba(36,141,255,.28);transform:translateY(-1px)}
.main-nav button.active span,.main-nav button.nav-selected span{color:#55b3ff;filter:drop-shadow(0 0 5px rgba(36,141,255,.8))}
.checksum-note{color:#ff9f2f!important;background:rgba(255,159,47,.1);border:1px solid rgba(255,159,47,.35);border-radius:7px;padding:3px 7px;display:inline-block}
.checksum-note.checksum-valid{color:#52dc88!important;background:rgba(82,220,136,.1);border-color:rgba(82,220,136,.4)}
.checksum-note.checksum-invalid{color:#ff5a5f!important;background:rgba(255,90,95,.1);border-color:rgba(255,90,95,.4)}
.map-color-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:0 0 8px;font-size:10px;color:#8d99a6}
.map-color-legend span{padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}
.legend-low{background:#123f69;color:#a9d8ff}.legend-mid{background:#79620f;color:#fff1a3}.legend-high{background:#7b2528;color:#ffd0d2}
.map-grid td.data-heat-cell{transition:filter .12s ease,box-shadow .12s ease}
.map-grid td.data-heat-cell:hover{filter:brightness(1.16)}
.map-grid td.data-heat-cell input{background:transparent!important;color:#fff;text-shadow:0 1px 2px #000;font-weight:700}
.map-grid td.data-heat-cell.heat-dark input{color:#e9f5ff}
.map-grid td.data-heat-cell.heat-light input{color:#101820;text-shadow:none}
.map-grid td.selected{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #248dff!important;outline:0!important}
.map-grid td.modified{box-shadow:inset 0 -3px 0 #5cff91}
.map-item[data-color-category="limiters"]{border-left:4px solid #ff6b57}
.map-item[data-color-category="injection"]{border-left:4px solid #9b7bff}
.map-item[data-color-category="air"]{border-left:4px solid #4da3ff}
.map-item[data-color-category="rail"]{border-left:4px solid #ffbf47}
.map-item[data-color-category="temperature"]{border-left:4px solid #ff7a9e}
.map-item[data-color-category="pedal"]{border-left:4px solid #48d597}
.map-item[data-color-category="other"]{border-left:4px solid #788391}
@media(max-width:520px){.pro-brand{gap:.2em}.pro-brand .brand-accent{display:inline-block}.main-nav{grid-template-columns:repeat(4,1fr)!important}}

/* v4.0.2 navigation + corrected HEX/3D */
.main-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.hex-visible-rows{position:relative!important;min-width:780px;height:auto;transform:none!important}
.hex-row.continuous-row{left:0;right:0;box-sizing:border-box;margin:0!important}
.hex-source-status{color:#69b8f7;font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.large-view-area{position:relative;overflow:hidden;background:#050b12}
.large-view-area canvas{width:100%!important;height:100%!important;object-fit:fill}
@media(max-width:520px){.main-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}.main-nav button{font-size:7px}.main-nav button span{font-size:18px}}

/* v4.1 — comparaison, HEX cartographié et contrôle de sauvegarde */
.compare-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.compare-dashboard article{background:#071019;border:1px solid #24394c;border-radius:10px;padding:10px}.compare-dashboard span{display:block;color:#8298aa;font-size:9px;text-transform:uppercase;letter-spacing:.6px}.compare-dashboard strong{display:block;color:#eef7ff;font-size:17px;margin:3px 0}.compare-dashboard small{color:#6f8293;font-size:9px}.warn-text{color:#ffad45!important}.compare-filters{display:flex;gap:14px;padding:8px 0;color:#9db0c0;font-size:11px}.compare-map.detailed{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.compare-map-main details{margin-top:7px}.compare-map-main summary{color:#67b8ff;font-size:10px}.mini-diff-table{display:grid;grid-template-columns:auto 1fr auto 1fr 1fr;gap:3px 7px;margin-top:6px;font:9px ui-monospace,monospace;color:#a8b8c5}.mini-diff-table .pos{color:#5ee58d}.mini-diff-table .neg{color:#ff7777}.compare-map-actions{display:flex;flex-direction:column;gap:5px}.compare-map-actions button{white-space:nowrap}
.hex-legend{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 9px;color:#abc0d0;font-size:9px}.hex-legend span{border-radius:999px;padding:3px 7px;border:1px solid rgba(255,255,255,.12)}.legend-axis-x,.hex-value.region-axis-x{background:#133f64!important}.legend-axis-y,.hex-value.region-axis-y{background:#174a35!important}.legend-map-data,.hex-value.region-map-data{background:#4b3515!important}.legend-hex-change{background:#4a1d2a!important}.legend-hex-selection,.hex-value.hex-selected{background:#523c88!important;box-shadow:inset 0 0 0 2px #c6adff!important}.hex-toolbar .active-tool{background:#184c78!important;border-color:#44aaff!important}.hex-selection-status{color:#c6adff;font:10px ui-monospace,monospace}.hex-toolbar button:disabled{opacity:.38}
.validation-window{width:min(720px,96vw)}.validation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.validation-summary article{background:#071019;border:1px solid #263b4c;border-radius:10px;text-align:center;padding:10px}.validation-summary strong{display:block;font-size:22px}.validation-summary span{font-size:10px;color:#8da1b1}.validation-item{display:grid;grid-template-columns:100px 1fr;gap:9px;border:1px solid #263748;border-radius:8px;padding:9px;margin:6px 0;font-size:11px}.validation-item.critical{border-color:#71303a;background:#251017}.validation-item.critical strong{color:#ff6c79}.validation-item.warning{border-color:#765423;background:#241b0d}.validation-item.warning strong{color:#ffb54e}.validation-item.info{border-color:#285176;background:#0c1c2b}.validation-item.info strong{color:#62baff}.validation-item.ok{border-color:#27613d;background:#0d2115}.validation-item.ok strong{color:#5ee58d}
@media(max-width:520px){.compare-map.detailed{grid-template-columns:1fr}.compare-map-actions{flex-direction:row;overflow-x:auto}.compare-dashboard{grid-template-columns:1fr 1fr}.hex-toolbar{align-items:end}.validation-item{grid-template-columns:1fr}.validation-summary strong{font-size:18px}}

/* v4.1.1 correctifs de stabilité */
#tableWindowArea{display:block;min-height:240px;overflow:auto}
.map-grid-wrap{display:block;overflow:auto;-webkit-overflow-scrolling:touch}
.axis-inline-input{width:100%;min-width:48px;height:34px;padding:2px 4px;border:1px solid #168cff;border-radius:5px;background:#071522;color:#fff;text-align:center;font:inherit;box-sizing:border-box}
.editable-axis{cursor:text;touch-action:manipulation}

/* v4.1.2 stability and home Maps panel */
.maps-home-content{display:grid;gap:10px;padding:12px}.maps-home-content p{margin:0;color:#8fa6b8;font-size:12px;line-height:1.45}.wide-action{width:100%;min-height:44px}.tool-window[open]{display:block}.map-view-window[open] .window-shell{min-height:min(88vh,760px)}

/* v4.1.3 — rendering stability */
#tableWindowArea{display:block!important;min-height:60vh!important;overflow:auto!important}
#tableWindowArea .map-grid-wrap{display:block!important;min-height:200px}
#view3DWindowArea{display:block!important;min-height:calc(100dvh - 100px)!important;background:#050b12}
#view3DWindowArea canvas{display:block!important;width:100%!important;height:100%!important;max-height:none!important}
#mapDialog[open]{display:block!important;z-index:10000}
#mapDialog .dialog-head{position:sticky;top:0;z-index:3;background:#0b121a;padding-top:8px}
.map-grid th{border:1px solid #162532}

/* v4.1.7 - fenêtre unique Tableau / 2D / 3D */
.unified-map-window{width:min(1100px,96vw);height:min(900px,94dvh);max-width:none;max-height:none}
.unified-map-window .window-shell{height:100%;display:flex;flex-direction:column}
.map-view-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;border-bottom:1px solid #27445c;background:#07111a}
.map-view-switcher button{min-height:42px;border:1px solid #2b465b;background:#0d1924;color:#b9cad8;border-radius:9px;font-weight:700}
.map-view-switcher button.active-view{background:linear-gradient(135deg,#0878d8,#0c4f9e);color:#fff;border-color:#2998ff;box-shadow:0 0 0 1px #2998ff inset,0 0 16px #0076d744}
.unified-map-window .map-window-content{flex:1;min-height:0;overflow:hidden}
.unified-map-area{height:100%;min-height:0;overflow:auto;background:#050b12}
.unified-map-area>canvas{width:100%!important;height:100%!important;max-height:none!important}
.unified-map-area .map-grid-wrap{max-height:none;height:100%;border:0;border-radius:0}
@media(max-width:760px){.unified-map-window{width:100vw;height:100dvh;border-radius:0}.map-view-switcher{position:sticky;top:0;z-index:3}.unified-map-area{height:calc(100dvh - 154px)}}

.viewer-edit-tools{margin:0 14px 10px;border:1px solid #24506f;border-radius:14px;background:#091521;overflow:hidden}.viewer-edit-tools summary{padding:12px 14px;font-weight:800;color:#dceeff;cursor:pointer}.viewer-selection-row{display:flex;gap:8px;align-items:center;padding:0 12px 10px;flex-wrap:wrap}.viewer-selection-row span{flex:1;min-width:140px;color:#8fb3cf}.viewer-tools{padding:0 12px 12px}.unified-map-area input[type=text]{min-width:42px;width:100%;font-size:16px;text-align:center;background:transparent;color:inherit;border:0;outline:none;padding:8px 3px}.unified-map-area input[type=text]:focus{background:#fff;color:#111;box-shadow:inset 0 0 0 2px #2f9cff;border-radius:4px}.viewer-edit-tools[hidden]{display:none!important}

/* v4.1.9 — navigateur de maps intégré et palette type VAGTuner */
.inline-maps-browser{padding:10px!important;display:grid;gap:8px}
.inline-map-toolbar{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:4;background:#0a131c;padding:6px;border:1px solid #213648;border-radius:10px}
.inline-map-toolbar input[type=text],#mapsInlineSearch{flex:1;min-width:0;background:#071019;color:#e9f5ff;border:1px solid #29455d;border-radius:8px;padding:9px 10px}
.inline-map-toolbar label{display:flex;align-items:center;gap:4px;color:#9db4c6;font-size:11px;white-space:nowrap}
.inline-map-categories{display:grid;gap:7px;max-height:52vh;overflow:auto;-webkit-overflow-scrolling:touch}
.inline-map-category{border:1px solid #21384b;border-radius:10px;background:#09121a;overflow:hidden}
.inline-map-category>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;color:#f4c64e;font-weight:800;cursor:pointer;background:linear-gradient(90deg,#102233,#0b1722)}
.inline-map-category>summary::-webkit-details-marker{display:none}.inline-map-category>summary:before{content:'›';font-size:20px;margin-right:7px;transition:.15s}.inline-map-category[open]>summary:before{transform:rotate(90deg)}
.inline-map-category>summary span:last-child{background:#d7b441;color:#111827;border-radius:99px;padding:2px 8px;font-size:10px}
.inline-map-items{padding:5px;display:grid;gap:4px}.inline-map-item{width:100%;border:0;border-left:3px solid #2f92ff;border-radius:6px;background:#101e2b;color:#eaf4fc;text-align:left;padding:8px 9px;display:grid;gap:3px}
.inline-map-item strong{font-size:12px}.inline-map-item small{font:9px ui-monospace,monospace;color:#8fa9bb}.inline-map-item.active-map{background:#163653;box-shadow:inset 0 0 0 1px #399cff}.inline-map-item.modified-map{border-left-color:#66e68c}
.viewer-edit-tools{margin:0 10px 8px;border:1px solid #29435a;border-radius:10px;background:#09141e}.viewer-edit-tools>summary{padding:9px 11px;color:#75c0ff;font-weight:800}.viewer-edit-tools[open]>summary{border-bottom:1px solid #23394b}.viewer-edit-tools .viewer-tools{padding:7px;margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}.viewer-edit-tools .viewer-tools button{padding:8px 3px;font-size:10px}.viewer-selection-row{padding:7px 9px}
.map-grid td.data-heat-cell{border-color:#202a32!important}.map-grid td.data-heat-cell input{font-weight:800!important;letter-spacing:-.15px}.map-grid td.selected{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #168cff!important}
.hex-quick-zones{display:flex;gap:5px;flex-wrap:wrap}.hex-quick-zones button{padding:7px 9px;background:#132638;border:1px solid #2e526e;color:#cceaff;border-radius:7px;font-size:10px}.hex-source-status strong{color:#57baff}
@media(max-width:430px){.inline-map-categories{max-height:47vh}.viewer-edit-tools .viewer-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v4.1.10 corrections mobile */
.inline-map-categories{height:58dvh!important;max-height:58dvh!important;overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:3px}
.inline-map-category{overflow:visible!important}
.inline-map-category>summary{font-size:11px!important;padding:7px 9px!important;color:#72bfff!important;background:linear-gradient(90deg,#0d2437,#091620)!important;border-left:3px solid #168cff}
.inline-map-category>summary:before{font-size:16px!important}.inline-map-category>summary span:last-child{background:#123a5a!important;color:#9ed6ff!important;font-size:9px!important}
.inline-map-items{max-height:none!important;overflow:visible!important}.inline-map-item{font-size:10px!important;padding:7px 8px!important;min-height:38px!important}.inline-map-item small{font-size:8.5px!important}
.viewer-edit-tools .viewer-tools button{min-height:34px!important;padding:5px 2px!important;font-size:9px!important;border-radius:7px!important}.viewer-selection-row button{min-height:30px!important;padding:4px 8px!important;font-size:9px!important}
.hex-visible-rows{position:relative!important;height:auto!important;min-width:780px}.hex-row.continuous-row{position:relative!important;top:auto!important}.hex-scroll-spacer{display:block;width:1px;flex:none}.hex-continuous{overflow:auto!important;contain:none!important;-webkit-overflow-scrolling:touch}
#mapViewerArea canvas{touch-action:none!important;user-select:none;-webkit-user-select:none}

/* v4.1.11 correctifs définitifs */
.maps-home-panel[open]{max-height:78dvh;overflow:hidden}.maps-home-panel[open] .maps-home-content{height:68dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}.inline-map-toolbar{flex:0 0 auto}.inline-map-categories{flex:1 1 auto;height:auto!important;max-height:none!important;min-height:0!important;overflow-y:scroll!important;overscroll-behavior-y:auto!important;touch-action:pan-y!important;padding-bottom:90px!important}.inline-map-category>summary{font-size:10px!important;font-weight:750!important;letter-spacing:.15px!important;color:#b9dcf7!important;background:linear-gradient(90deg,#102334,#0b1823)!important;border-left-color:#2f92ff!important}.inline-map-category>summary span:last-child{background:#183c57!important;color:#bfe6ff!important}.inline-map-item strong{font-size:10.5px!important}.viewer-edit-tools .viewer-tools button{font-size:9px!important;min-height:32px!important;padding:4px 2px!important}.hex-source-status{font-size:10px!important}.hex-quick-zones{display:flex;gap:4px;flex-wrap:wrap}.hex-quick-zones button{font-size:9px;padding:6px 8px}.unified-map-area canvas{touch-action:none!important}

/* Validation et apprentissage v4.5 */
.map-verification-panel{margin:14px 18px;padding:14px;border:1px solid #28506f;border-radius:16px;background:linear-gradient(180deg,#07131f,#050c13);font-size:14px;color:#b9d5ea}.map-verification-panel h3{margin:0 0 9px;color:#55adff;font-size:16px}.map-verification-panel .verify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.map-verification-panel .verify-item{padding:9px 10px;border-radius:11px;background:#0b1a27;border:1px solid #1c3548}.map-verification-panel .ok{border-color:#257a59;color:#b9f6d8}.map-verification-panel .warn{border-color:#9b711c;color:#ffe1a1}.map-verification-panel .bad{border-color:#943949;color:#ffc0ca}.editor-head-actions #confirmMapBtn{border-color:#26795c;color:#a9f1d0}.editor-head-actions #verifyMapBtn{border-color:#266ca2;color:#9dd4ff}.editor-head-actions #rejectMapBtn{border-color:#8d3542;color:#ffb2bd}.learning-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.learning-summary span{padding:6px 9px;border-radius:999px;background:#0e2638;border:1px solid #265477;color:#9fd4ff;font-size:12px}@media(max-width:700px){.map-verification-panel .verify-grid{grid-template-columns:1fr}.editor-head-actions{gap:6px}.editor-head-actions button{font-size:12px;padding:8px 10px}}


/* v4.5.3 — palette tableaux type VAGTuner */
.map-color-legend{justify-content:stretch!important;gap:0!important;border:1px solid #263746;border-radius:8px;overflow:hidden;background:#0b1117;padding:0!important}
.map-color-legend span{flex:1;border:0!important;border-radius:0!important;text-align:center;padding:5px 7px!important;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.75)}
.map-color-legend .legend-low{background:linear-gradient(90deg,#182b91,#145bb2,#1a9bb2)!important;color:#eef8ff!important}
.map-color-legend .legend-mid{background:linear-gradient(90deg,#25b067,#82be26,#e0b723)!important;color:#071019!important;text-shadow:none!important}
.map-color-legend .legend-high{background:linear-gradient(90deg,#e76f1f,#c7242b)!important;color:#fff!important}
.map-grid{background:#080d12!important}
.map-grid td.data-heat-cell{border-color:#27313a!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:filter .12s ease,box-shadow .12s ease,transform .08s ease}
.map-grid td.data-heat-cell:hover{filter:brightness(1.12) saturate(1.08)}
.map-grid td.data-heat-cell input{font-weight:850!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.9)!important}
.map-grid td.data-heat-cell.heat-light input{color:#081018!important;text-shadow:0 1px 0 rgba(255,255,255,.25)!important}
.map-grid .map-axis-head,.map-grid .map-row-head{background:linear-gradient(180deg,#171c21,#101419)!important;color:#f3f5f7!important;border-color:#303942!important;font-weight:800!important}
.map-grid td.selected{position:relative;z-index:1;box-shadow:inset 0 0 0 2px #f7fbff,inset 0 0 0 5px #168cff,0 0 10px rgba(22,140,255,.7)!important}
.map-grid td.modified{box-shadow:inset 0 -3px 0 #61ef8c}

/* La Performance Tuner 4.5.4 — outils de modification style VAGTuner */
.viewer-edit-tools{
  margin:0 12px 12px!important;
  border:1px solid #294a63!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#0a1823 0%,#07131d 100%)!important;
  box-shadow:inset 0 1px 0 #ffffff0c,0 10px 28px #0006!important;
  overflow:hidden!important;
}
.viewer-edit-tools>summary{
  padding:14px 16px!important;
  min-height:52px;
  display:flex;
  align-items:center;
  color:#75c4ff!important;
  font-size:16px!important;
  font-weight:800!important;
  letter-spacing:.1px;
}
.viewer-edit-tools[open]>summary{border-bottom:1px solid #284257!important}
.viewer-selection-row{
  padding:12px 16px 10px!important;
  gap:10px!important;
}
.viewer-selection-row span{
  color:#8fb9d7!important;
  font-size:15px!important;
}
.viewer-selection-row button{
  min-width:74px!important;
  min-height:42px!important;
  padding:8px 16px!important;
  border-radius:999px!important;
  border:1px solid #d9dde3!important;
  background:linear-gradient(180deg,#fff,#e7e8eb)!important;
  color:#0878ef!important;
  font-size:14px!important;
  font-weight:500!important;
  box-shadow:inset 0 1px 0 #fff,0 2px 7px #0005!important;
}
.viewer-edit-tools .viewer-tools,
.map-edit-panel .styled-map-tools{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
  padding:10px 16px 16px!important;
}
.viewer-edit-tools .viewer-tools button,
.map-edit-panel .styled-map-tools button{
  min-height:58px!important;
  padding:10px 8px!important;
  border-radius:13px!important;
  border:1px solid #34424c!important;
  background:linear-gradient(145deg,#171c20,#0f1418)!important;
  color:#eef5fb!important;
  font-size:14px!important;
  font-weight:700!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  box-shadow:inset 0 1px 0 #ffffff0a,0 3px 8px #0005!important;
  text-shadow:0 1px 1px #000;
}
.viewer-edit-tools .viewer-tools button:active,
.map-edit-panel .styled-map-tools button:active{
  transform:translateY(1px);
  border-color:#2f9cff!important;
  background:linear-gradient(145deg,#172b3b,#0d1c29)!important;
}
.tool-icon{
  color:#56b2ff!important;
  font-size:22px!important;
  line-height:1!important;
  font-weight:500!important;
  min-width:20px;
  text-align:center;
  text-shadow:0 0 8px #168cff55;
}
.viewer-edit-tools .viewer-tools button[data-op="smooth"] .tool-icon{font-size:25px!important}
.viewer-edit-tools .viewer-tools button[data-op="copy"] .tool-icon,
.viewer-edit-tools .viewer-tools button[data-op="paste"] .tool-icon{font-size:20px!important}
.map-edit-panel .styled-map-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important}

@media(max-width:430px){
  .viewer-edit-tools{margin:0 9px 9px!important;border-radius:16px!important}
  .viewer-edit-tools>summary{padding:12px 13px!important;font-size:15px!important}
  .viewer-selection-row{padding:10px 12px 8px!important}
  .viewer-selection-row span{font-size:14px!important}
  .viewer-selection-row button{min-width:68px!important;min-height:38px!important;padding:7px 13px!important;font-size:13px!important}
  .viewer-edit-tools .viewer-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:8px 12px 13px!important}
  .viewer-edit-tools .viewer-tools button{min-height:54px!important;font-size:12px!important;border-radius:12px!important;padding:8px 5px!important;gap:5px!important}
  .tool-icon{font-size:19px!important;min-width:17px}
}

/* v4.5.5 — dégradé continu VAGTuner amélioré */
.map-grid td.data-heat-cell{
  background-clip:padding-box!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.16)!important;
}
.map-grid td.data-heat-cell input{
  font-variant-numeric:tabular-nums;
  text-rendering:geometricPrecision;
}
.map-grid td.selected{
  filter:saturate(1.08) brightness(1.07);
  box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 5px #087dff,0 0 12px rgba(0,126,255,.55)!important;
}

/* v4.5.6 — rendu heatmap plus sobre et professionnel */
.map-grid{border-spacing:0!important}
.map-grid td.data-heat-cell{
  border-color:rgba(18,29,38,.72)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),inset 0 -1px 0 rgba(0,0,0,.20)!important;
  filter:saturate(.93) contrast(1.02);
}
.map-grid td.data-heat-cell:hover{filter:saturate(1.00) brightness(1.07)!important}
.map-grid td.data-heat-cell input{
  text-shadow:0 1px 2px rgba(0,0,0,.68)!important;
  letter-spacing:-.1px!important;
}
.map-grid td.data-heat-cell.heat-light input{
  color:#111a20!important;
  text-shadow:0 1px 0 rgba(255,255,255,.28)!important;
}
.map-grid td.selected{
  filter:saturate(1.03) brightness(1.05)!important;
  box-shadow:inset 0 0 0 2px #f8fbff,inset 0 0 0 4px #138cff,0 0 8px rgba(19,140,255,.46)!important;
}

/* v4.5.7 — heatmap intelligente : axes/constantes exclus, relief doux */
.map-grid td.data-heat-cell{
  border-color:rgba(28,43,54,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.065),inset 0 -1px 0 rgba(0,0,0,.18)!important;
  filter:saturate(.89) contrast(1.015)!important;
}
.map-grid td.data-heat-cell.heat-structural{
  filter:saturate(.35) brightness(.82)!important;
  border-color:#35414b!important;
}
.map-grid td.data-heat-cell.heat-structural input{
  color:#c6d1d9!important;
  font-style:italic;
  text-shadow:0 1px 2px #000!important;
}
.map-grid td.data-heat-cell:hover{filter:saturate(.97) brightness(1.055)!important}
.map-grid td.selected{filter:saturate(.98) brightness(1.06)!important}

/* ===== Accueil projets v4.5.8 ===== */
[hidden]{display:none!important}.project-home{min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom));background:radial-gradient(circle at 72% 7%,rgba(22,91,145,.22),transparent 30%),linear-gradient(160deg,#020910 0%,#06111c 45%,#02070d 100%);color:#eef6ff;box-sizing:border-box}.project-home:before{content:"";position:absolute;inset:0 0 auto 38%;height:250px;pointer-events:none;opacity:.32;background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(45,128,190,.12) 23px 24px),repeating-linear-gradient(0deg,transparent 0 22px,rgba(45,128,190,.08) 23px 24px);mask-image:linear-gradient(to bottom,#000,transparent)}.project-home button{font:inherit}.project-home-hero{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:190px;gap:18px}.home-brand h1{margin:0;font-style:italic;font-weight:950;letter-spacing:-1.5px;line-height:.95;font-size:clamp(29px,7vw,46px)}.home-brand h1 span{display:block}.home-brand h1 span:last-child{color:#168cff;margin-top:11px}.home-project-state{text-align:right;color:#aebed0;font-size:14px;line-height:1.45}.home-project-state strong{display:block;color:#f4f8fc;font-size:17px;margin-bottom:6px}.home-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-action-card{position:relative;min-height:210px;text-align:left;padding:20px;border-radius:18px;border:1px solid #168cff;background:linear-gradient(145deg,rgba(8,28,45,.96),rgba(3,15,26,.96));color:#fff;box-shadow:inset 0 0 28px rgba(0,126,255,.04)}.home-action-card:active{transform:scale(.985);background:#0a2944}.home-action-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid #1495ff;border-radius:13px;color:#fff;font-size:37px;box-shadow:0 0 20px rgba(0,132,255,.24);margin-bottom:20px}.home-action-card strong{display:block;font-size:19px;letter-spacing:.5px}.home-action-card small{display:block;color:#bac8d8;font-size:14px;line-height:1.55;margin-top:8px;padding-right:18px}.home-action-card>b{position:absolute;right:20px;top:50%;font-size:34px;color:#a7b5c7}.home-continue,.home-recent{margin-top:24px;border:1px solid #183c58;border-radius:17px;background:linear-gradient(145deg,rgba(5,20,33,.96),rgba(3,13,23,.96));padding:18px}.home-continue>header,.home-recent>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.home-continue>header{justify-content:flex-start;gap:10px}.home-continue>header span,.home-recent>header span{color:#1296ff;font-size:23px}.home-continue>button{width:100%;display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:14px;text-align:left;border:1px solid #17364f;border-radius:14px;background:#061521;color:#fff;padding:13px}.ecu-chip-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:11px;background:#092b4a;color:#1499ff;font-size:34px}.home-continue button span:nth-child(2) strong,.home-continue button span:nth-child(2) small{display:block}.home-continue button span:nth-child(2) small{color:#9fb1c4;margin-top:6px}.home-continue button>b{background:linear-gradient(135deg,#0868e8,#0d8cff);padding:17px;border-radius:11px;white-space:nowrap}.home-recent>header>div{display:flex;align-items:center;gap:10px}.home-recent>header button{border:0;background:none;color:#1c9cff}.home-search-row{display:flex;gap:12px;margin-bottom:15px}.home-search-row label{flex:1;display:flex;align-items:center;gap:8px;border:1px solid #1b3c55;border-radius:12px;padding:0 13px;color:#95a9bd}.home-search-row input{width:100%;height:44px;border:0;outline:0;background:transparent;color:#fff;font-size:15px}.home-filters{display:flex;gap:8px;overflow:auto}.home-filters button{border:1px solid #1b3c55;background:#061522;color:#dce7f2;border-radius:10px;padding:0 14px}.home-filters button.active{background:#0b3b71;border-color:#167fe5}.home-project-list{display:grid;gap:9px}.home-project-row{display:grid;grid-template-columns:54px 1fr auto;gap:13px;align-items:center;width:100%;text-align:left;padding:12px;border:1px solid #17364d;border-radius:13px;background:#061521;color:#fff}.home-project-row:hover{border-color:#168cff}.home-project-row .project-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:10px;background:#0a2a47;color:#168cff;font-size:27px}.home-project-main strong,.home-project-main small{display:block}.home-project-main strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw}.home-project-main small{color:#1b9cff;margin-top:4px}.home-project-main em{display:block;color:#98a9bc;font-style:normal;font-size:12px;margin-top:4px}.home-project-side{text-align:right;color:#a8b7c8;font-size:12px;line-height:1.45}.home-project-side b{display:inline-block;margin-top:5px;border:1px solid #167ce1;border-radius:7px;padding:3px 7px;color:#dfeeff;font-weight:500}.home-empty{display:grid;place-items:center;gap:9px;min-height:190px;color:#8799ac;text-align:center}.home-empty>span{font-size:47px;color:#31516b}.home-empty strong{color:#dbe6ef}.back-projects-btn{width:42px;height:42px;border:1px solid #27445d;border-radius:12px;background:#071522;color:#dbe9f6;font-size:30px;flex:0 0 auto}.editor-app{min-height:100dvh}@media(max-width:620px){.project-home{padding-left:16px;padding-right:16px}.project-home-hero{min-height:165px}.home-primary-actions{gap:10px}.home-action-card{min-height:190px;padding:16px}.home-action-card strong{font-size:16px}.home-action-card small{font-size:12px}.home-search-row{display:block}.home-filters{margin-top:10px}.home-filters button{height:40px}.home-continue>button{grid-template-columns:50px 1fr}.home-continue button>b{grid-column:1/-1;text-align:center}.ecu-chip-icon{width:48px;height:48px}.home-project-main strong{max-width:45vw}}

/* v4.5.9 — vrais contrôles interactifs de l’accueil */
.native-file-input{position:fixed!important;left:-9999px!important;top:-9999px!important;width:1px!important;height:1px!important;opacity:.01!important;pointer-events:none!important}
.home-project-dialog{width:min(430px,92vw);border:1px solid #1b5d91;border-radius:18px;background:linear-gradient(145deg,#071827,#03101b);color:#eef7ff;padding:0;box-shadow:0 25px 80px #000b}
.home-project-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}
.home-project-dialog form{padding:22px}.home-project-dialog h2{margin:0 0 8px;color:#fff}.home-project-dialog p{margin:0 0 18px;color:#9fb4c7;line-height:1.45}.home-project-dialog label{display:grid;gap:8px;color:#b9cada;font-size:13px}.home-project-dialog input{height:46px;border:1px solid #255071;border-radius:11px;background:#04111c;color:#fff;padding:0 13px;font-size:16px;outline:none}.home-project-dialog input:focus{border-color:#168cff;box-shadow:0 0 0 3px #168cff22}.home-project-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.home-project-dialog button{min-height:44px;border:1px solid #2b4a62;border-radius:10px;background:#0a1722;color:#e7f2fb;padding:0 16px;font-weight:700}.home-project-dialog .primary-action{background:linear-gradient(135deg,#075fe0,#0b8dff);border-color:#168cff}

/* v4.6.3 — affichage robuste des vues sur Safari iOS */
#mapViewerDialog[open]{display:block!important;position:fixed!important;inset:0!important;margin:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;z-index:10000!important}
#mapViewerDialog .window-shell{height:100%!important;min-height:100%!important}
#mapViewerDialog .map-window-content{display:flex!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
#mapViewerArea{display:block!important;flex:1 1 auto!important;width:100%!important;min-height:320px!important;overflow:auto!important}
#mapViewerArea .map-grid-wrap{height:auto!important;min-height:100%!important}


/* v4.6.9 — outils compacts et navigation directe entre Tableau / 2D / 3D */
.dialog-view-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 18px;border-bottom:1px solid #29465d;background:#071522;position:sticky;top:0;z-index:7}
.dialog-view-switcher button{min-height:58px;border:2px solid #31536d;border-radius:14px;background:#0b1823;color:#dceaf5;font-size:17px;font-weight:800;padding:8px 10px}
.dialog-view-switcher button.active-view{background:linear-gradient(135deg,#0e80e8,#1761b7);border-color:#39a4ff;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.compact-map-edit{margin:0 8px 14px;border:1px solid #31536d;border-radius:18px;background:#06121c;overflow:hidden}
.compact-map-edit>summary{padding:16px 20px;color:#58b2ff;font-size:18px;font-weight:800;border-bottom:1px solid #31536d;list-style:none}
.compact-map-edit>summary::-webkit-details-marker{display:none}
.compact-selection{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:10px!important;align-items:center!important;padding:14px 18px 8px!important;background:transparent!important;border:0!important}
.compact-selection span{font-size:16px;color:#9bc8e7}
.compact-selection button{min-height:44px!important;padding:7px 18px!important;border-radius:999px!important;font-size:15px!important;font-weight:700!important}
.compact-tools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;padding:10px 18px 18px!important}
.compact-tools button{min-height:78px!important;padding:10px 8px!important;border-radius:15px!important;font-size:16px!important;line-height:1.1!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.compact-tools .tool-icon{font-size:25px!important;line-height:1!important}
#tableDialog .map-window-content{padding:0 10px 16px!important}
#tableDialog .map-color-legend{margin:8px 8px 10px}
@media(max-width:520px){
 .dialog-view-switcher{gap:7px;padding:10px 14px}
 .dialog-view-switcher button{min-height:54px;font-size:15px;padding:7px 5px}
 .compact-map-edit{margin:0 2px 12px;border-radius:16px}
 .compact-map-edit>summary{padding:14px 16px;font-size:17px}
 .compact-selection{grid-template-columns:minmax(0,1fr) auto auto!important;padding:12px 12px 6px!important;gap:7px!important}
 .compact-selection span{font-size:14px}
 .compact-selection button{min-height:40px!important;padding:6px 14px!important;font-size:14px!important}
 .compact-tools{gap:8px!important;padding:8px 12px 14px!important}
 .compact-tools button{min-height:68px!important;font-size:14px!important;border-radius:13px!important;padding:8px 5px!important}
 .compact-tools .tool-icon{font-size:21px!important}
}


/* v4.7.0 — outils d’édition plus compacts, légende retirée, tableau agrandi */
#tableDialog .map-color-legend{display:none!important}
#tableDialog .map-window-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0 6px max(8px,env(safe-area-inset-bottom))!important;
}
#tableDialog .compact-map-edit{
  flex:0 0 auto!important;
  margin:0 4px 6px!important;
  border-radius:12px!important;
}
#tableDialog .compact-map-edit>summary{
  padding:8px 12px!important;
  font-size:14px!important;
  line-height:1.1!important;
}
#tableDialog .compact-selection{
  padding:6px 9px 3px!important;
  gap:5px!important;
}
#tableDialog .compact-selection span{font-size:12px!important}
#tableDialog .compact-selection button{
  min-height:30px!important;
  padding:3px 10px!important;
  font-size:12px!important;
}
#tableDialog .compact-tools{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:5px!important;
  padding:5px 8px 8px!important;
}
#tableDialog .compact-tools button{
  min-height:42px!important;
  padding:4px 3px!important;
  border-radius:9px!important;
  font-size:10.5px!important;
  line-height:1.05!important;
  gap:3px!important;
}
#tableDialog .compact-tools .tool-icon{
  font-size:15px!important;
  min-width:13px!important;
}
#tableDialog #tableWindowArea{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  max-height:none!important;
  height:100%!important;
  min-height:260px!important;
  border-radius:8px!important;
}
#tableDialog #tableWindowArea .map-grid{
  margin:0!important;
}
@media(max-width:520px){
  #tableDialog .window-titlebar{padding:10px 12px!important}
  #tableDialog .window-titlebar h2{font-size:17px!important;line-height:1.15!important}
  #tableDialog .window-titlebar small{font-size:11px!important}
  #tableDialog .dialog-view-switcher{gap:5px!important;padding:6px 8px!important}
  #tableDialog .dialog-view-switcher button{
    min-height:42px!important;
    padding:4px 3px!important;
    border-radius:9px!important;
    font-size:12px!important;
  }
  #tableDialog .compact-map-edit{margin:0 2px 5px!important}
  #tableDialog .compact-map-edit>summary{padding:7px 10px!important;font-size:13px!important}
  #tableDialog .compact-selection{padding:5px 7px 2px!important}
  #tableDialog .compact-selection span{font-size:11px!important}
  #tableDialog .compact-selection button{min-height:28px!important;padding:2px 8px!important;font-size:11px!important}
  #tableDialog .compact-tools{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;padding:4px 6px 6px!important}
  #tableDialog .compact-tools button{min-height:38px!important;font-size:9.5px!important;border-radius:8px!important;padding:3px 2px!important;gap:2px!important}
  #tableDialog .compact-tools .tool-icon{font-size:14px!important;min-width:12px!important}
  #tableDialog #tableWindowArea .map-grid-wrap{min-height:320px!important}
}

/* v4.7.1 — la map devient prioritaire, outils réellement compacts et repliables */
#tableDialog .window-shell{height:100dvh!important;min-height:0!important}
#tableDialog .map-window-content{flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
#tableDialog .compact-map-edit{flex:0 0 auto!important;margin:0 2px 4px!important;border-radius:9px!important}
#tableDialog .compact-map-edit>summary{
  min-height:34px!important;padding:6px 9px!important;font-size:12px!important;line-height:1!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important
}
#tableDialog .compact-map-edit>summary::after{content:'⌄';font-size:15px;color:#73bdff;transform:rotate(0deg);transition:transform .15s ease}
#tableDialog .compact-map-edit[open]>summary::after{transform:rotate(180deg)}
#tableDialog .compact-selection{padding:4px 6px 2px!important;gap:4px!important}
#tableDialog .compact-selection span{font-size:10px!important;min-width:0!important}
#tableDialog .compact-selection button{min-height:25px!important;padding:2px 7px!important;font-size:9.5px!important;border-radius:7px!important}
#tableDialog .compact-tools{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;padding:3px 5px 5px!important
}
#tableDialog .compact-tools button{
  min-height:32px!important;height:32px!important;padding:2px 2px!important;border-radius:6px!important;
  font-size:8.5px!important;line-height:1!important;gap:2px!important;white-space:nowrap!important
}
#tableDialog .compact-tools .tool-icon{font-size:12px!important;min-width:10px!important}
#tableDialog #tableWindowArea{flex:1 1 0!important;min-height:0!important;overflow:auto!important}
#tableDialog #tableWindowArea .map-grid-wrap{
  height:100%!important;min-height:calc(100dvh - 245px)!important;max-height:none!important;
  overflow:auto!important;border-radius:6px!important
}
#tableDialog #tableWindowArea .map-grid{min-width:max-content!important;width:max-content!important}
#tableDialog #tableWindowArea .map-grid input{padding-top:7px!important;padding-bottom:7px!important}
@media(max-width:520px){
  #tableDialog .window-titlebar{padding:8px 10px!important}
  #tableDialog .window-titlebar h2{font-size:15px!important;line-height:1.12!important}
  #tableDialog .window-titlebar small{font-size:9.5px!important;margin-top:2px!important}
  #tableDialog .window-close{width:38px!important;height:38px!important}
  #tableDialog .dialog-view-switcher{gap:4px!important;padding:5px 7px!important}
  #tableDialog .dialog-view-switcher button{min-height:38px!important;font-size:11px!important;padding:3px 2px!important}
  #tableDialog .compact-map-edit>summary{min-height:31px!important;padding:5px 8px!important;font-size:11px!important}
  #tableDialog .compact-tools{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:2px!important;padding:3px 4px 4px!important}
  #tableDialog .compact-tools button{min-height:29px!important;height:29px!important;font-size:7.8px!important;border-radius:5px!important}
  #tableDialog .compact-tools .tool-icon{font-size:11px!important}
  #tableDialog #tableWindowArea .map-grid-wrap{min-height:calc(100dvh - 205px)!important}
}


/* v4.7.2 — dimensionnement adaptatif du tableau selon la taille de la map */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
  width:max-content!important;
  min-width:0!important;
  table-layout:fixed!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  height:var(--adaptive-cell-h)!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid input{
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  height:calc(var(--adaptive-cell-h) - 2px)!important;
  padding:2px 3px!important;
  font-size:var(--adaptive-font)!important;
  box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-axis-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-row-head{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
  height:var(--adaptive-cell-h)!important;
  font-size:max(8px,calc(var(--adaptive-font) - 1px))!important;
  box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  display:block!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
}

/* v4.7.4 — largeur renforcée : maps 8x10, 4x10 et 16 colonnes compactées */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid.grid-fits-width{
  margin-left:auto!important;
  margin-right:auto!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid:not(.grid-fits-width){
  margin-left:0!important;
  margin-right:0!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  overscroll-behavior:contain;
  scroll-behavior:auto;
}

/* v4.7.4 — cellules étroites lisibles sur iPhone */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid input{
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
  padding:0!important;
}


/* v4.7.5 — les en-têtes X suivent la largeur des cellules.
   Avant, .map-axis-head recevait la largeur de l'axe Y et Safari élargissait
   chaque colonne, surtout sur les maps 10, 15, 16 et 19 colonnes. */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  max-width:var(--adaptive-cell-w)!important;
  height:var(--adaptive-cell-h)!important;
  padding:1px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  font-size:max(6px,calc(var(--adaptive-font) - .5px))!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
  max-width:var(--adaptive-axis-w)!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
  max-width:var(--adaptive-cell-w)!important;
}


/* v4.7.9 — éditeur HEX enrichi */
.hex-search-box{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:min(100%,420px)}
.hex-search-box input{min-width:190px;flex:1 1 210px}
.hex-search-box button{min-width:38px}
#hexSearchStatus{font-size:12px;color:#91b8d7;white-space:nowrap}
.hex-value.identified-map{box-shadow:inset 0 0 0 1px rgba(23,151,255,.42)}
.hex-value.map-start{box-shadow:inset 3px 0 0 #00c2ff,inset 0 0 0 1px rgba(23,151,255,.55)}
.hex-value.hex-search-hit{outline:2px solid #ffd23f!important;outline-offset:-2px;filter:brightness(1.28)}
.legend-map-start::before{background:#00c2ff!important}
#exportCsvBtn:disabled{opacity:1!important;filter:none!important;pointer-events:auto!important}


/* v4.8.0 */
.hex-map-navigator{display:flex;align-items:end;gap:8px;flex:1 1 100%;padding:6px;border:1px solid #28465b;border-radius:10px;background:#071521}
.hex-map-navigator label{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;color:#8fb2ca;font-size:12px}
.hex-map-navigator select{width:100%;min-height:40px;background:#0b1823;color:#eef8ff;border:1px solid #35566c;border-radius:8px;padding:6px 9px}
.hex-map-navigator button{min-height:40px;white-space:nowrap}
.cell-select-mode-toggle{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #36556a;border-radius:10px;background:#0b1823;color:#cbe8fb;font-size:13px;font-weight:700;white-space:nowrap}
.cell-select-mode-toggle input{width:20px;height:20px;accent-color:#1598ff}
.map-grid td.selected{outline:3px solid #1598ff;outline-offset:-3px}
@media(max-width:600px){.hex-map-navigator{align-items:stretch;flex-direction:column}.hex-map-navigator button{width:100%}.cell-select-mode-toggle{width:100%;justify-content:center;order:5}}

/* v4.8.1 — transition rapide entre projets */
#projectSwitchLoader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(2,10,18,.74);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;pointer-events:none;transition:opacity .14s ease;color:#eef7ff}
#projectSwitchLoader.visible{opacity:1;pointer-events:auto}
#projectSwitchLoader[hidden]{display:none}
#projectSwitchLoader strong{font-size:16px;letter-spacing:.02em}
.project-switch-spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(65,164,255,.22);border-top-color:#2c9cff;animation:projectSpin .7s linear infinite}
@keyframes projectSpin{to{transform:rotate(360deg)}}

/* v4.8.3 — actions iOS par glissement sur les projets */
.home-project-swipe{position:relative;overflow:hidden;border-radius:13px;touch-action:pan-y;background:#071522}.home-project-swipe .home-project-row{position:relative;z-index:2;margin:0;transition:transform .22s cubic-bezier(.22,.61,.36,1);will-change:transform;touch-action:pan-y}.home-project-swipe .home-project-row.dragging{transition:none}.home-project-actions{position:absolute;z-index:1;inset:0 0 0 auto;width:148px;display:grid;grid-template-columns:74px 74px;overflow:hidden;border-radius:0 13px 13px 0}.home-project-actions button{border:0;border-radius:0;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:750;padding:0}.home-project-actions button span{font-size:24px;line-height:1}.home-project-actions button small{font-size:10px;color:inherit}.project-rename-action{background:#5956d9}.project-delete-action{background:#ff3b30}.home-project-actions button:active{filter:brightness(.86)}.home-project-swipe.open .home-project-row{transform:translateX(-148px)}
@media(max-width:620px){.home-project-actions{width:144px;grid-template-columns:72px 72px}.home-project-swipe.open .home-project-row{transform:translateX(-144px)}}


/* v4.8.4 — glissement iOS pour renommer/supprimer une map */
.map-swipe{position:relative;overflow:hidden;border-radius:7px;touch-action:pan-y;background:#071522}.map-swipe+.map-swipe{margin-top:4px}.map-swipe-content{position:relative!important;z-index:2!important;margin:0!important;transition:transform .22s cubic-bezier(.22,.61,.36,1)!important;will-change:transform;touch-action:pan-y}.map-swipe-content.dragging{transition:none!important}.map-swipe-actions{position:absolute;z-index:1;inset:0 0 0 auto;width:144px;display:grid;grid-template-columns:72px 72px;overflow:hidden;border-radius:0 7px 7px 0}.map-swipe-actions button{border:0;border-radius:0;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:750;padding:0}.map-swipe-actions button span{font-size:21px;line-height:1}.map-swipe-actions button small{font-size:9px;color:inherit}.map-rename-action{background:#5956d9}.map-delete-action{background:#ff3b30}.map-swipe-actions button:active{filter:brightness(.86)}.map-swipe.open .map-swipe-content{transform:translateX(-144px)}.map-category .map-swipe{border-radius:0}.map-category .map-swipe+.map-swipe{margin-top:0;border-top:1px solid #172532}.map-category .map-swipe-content{border-top:0!important}.inline-map-items .map-swipe{width:100%}

/* v4.8.5 — HEX compact, outils repliables et navigation directe par map */
.hex-map-picker{display:flex;align-items:end;gap:6px;margin:0 0 6px;padding:6px 7px;border:1px solid #28465b;border-radius:9px;background:#071521}
.hex-map-picker label{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;color:#8fb2ca;font-size:10px}
.hex-map-picker select{width:100%;min-height:34px;background:#0b1823;color:#eef8ff;border:1px solid #35566c;border-radius:7px;padding:4px 7px;font-size:11px}
.hex-map-picker button{width:36px;min-width:36px;height:34px;min-height:34px;padding:0;border-radius:7px;font-size:18px}
.hex-tools-panel{margin:0 0 5px;border:1px solid #28465b;border-radius:9px;overflow:hidden;background:#07131d}
.hex-tools-panel>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;padding:7px 10px;color:#69baff;font-size:12px;font-weight:800;cursor:pointer}
.hex-tools-panel>summary::-webkit-details-marker{display:none}.hex-tools-panel>summary span{transition:transform .15s}.hex-tools-panel[open]>summary span{transform:rotate(90deg)}
.hex-tools-panel .hex-toolbar{position:static;border:0;border-top:1px solid #243746;border-radius:0;padding:6px;gap:4px}
.hex-tools-panel .hex-toolbar label{font-size:9.5px;gap:3px}.hex-tools-panel .hex-toolbar select,.hex-tools-panel .hex-toolbar input{min-height:30px;height:30px;font-size:11px;padding:3px 6px}
.hex-tools-panel .hex-toolbar button{min-height:30px;height:30px;padding:3px 8px;font-size:10.5px;border-radius:8px}
.hex-tools-panel .hex-search-box{gap:4px;min-width:100%}.hex-tools-panel .hex-search-box input{min-width:150px;flex-basis:170px}
.hex-tools-panel #hexSearchStatus{font-size:10px}.hex-tools-panel .hex-source-status{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hex-tools-panel .hex-selection-status{font-size:9px}.hex-legend{margin:4px 0 5px;font-size:8px;gap:4px}.hex-legend span{padding:2px 5px}
.hex-window .window-content{display:flex;flex-direction:column;min-height:0}.hex-window #hexArea{display:flex;flex-direction:column;min-height:0;flex:1}.hex-continuous{flex:1 1 auto;min-height:0;max-height:none!important;height:auto!important}
@media(max-width:520px){.hex-window .window-titlebar{padding-bottom:8px}.hex-window .window-content{padding:7px 8px calc(8px + env(safe-area-inset-bottom))}.hex-tools-panel .hex-toolbar{align-items:end}.hex-tools-panel .hex-search-box button{min-width:34px;padding-left:6px;padding-right:6px}.hex-map-picker select{font-size:10.5px}}


/* v4.8.6 — navigateur de maps HEX façon liste Maps + restauration outils */
.hex-maps-panel,.hex-tools-panel{flex:0 0 auto;margin:0 0 5px;border:1px solid #28465b;border-radius:9px;overflow:hidden;background:#07131d}
.hex-maps-panel>summary,.hex-tools-panel>summary{display:flex;align-items:center;gap:7px;list-style:none;padding:8px 10px;color:#69baff;font-size:12px;font-weight:800;cursor:pointer;min-height:38px}
.hex-maps-panel>summary::-webkit-details-marker,.hex-tools-panel>summary::-webkit-details-marker{display:none}
.hex-maps-panel>summary span,.hex-tools-panel>summary:first-letter{flex:1}.hex-maps-panel>summary b{margin-left:auto;background:#16496a;color:#bfe7ff;border-radius:999px;padding:2px 8px;font-size:10px}.hex-maps-panel>summary i,.hex-tools-panel>summary span{font-style:normal;margin-left:auto;transition:transform .15s}.hex-maps-panel[open]>summary i,.hex-tools-panel[open]>summary span{transform:rotate(90deg)}
.hex-maps-browser{border-top:1px solid #243746;padding:6px;max-height:min(48vh,440px);overflow:auto;background:#06111a}
.hex-map-browser-search{position:sticky;top:0;z-index:4;padding:0 0 6px;background:#06111a}.hex-map-browser-search input{width:100%;height:34px;min-height:34px;border-radius:8px;font-size:11px;padding:5px 9px}
.hex-map-category{border:1px solid #203849;border-radius:8px;overflow:hidden;margin-bottom:5px;background:#091824}.hex-map-category>summary{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;color:#d2eaff;font-size:11px;font-weight:800;list-style:none;cursor:pointer}.hex-map-category>summary::-webkit-details-marker{display:none}.hex-map-category>summary b{background:#16496a;border-radius:999px;padding:1px 7px;font-size:9px}.hex-map-category-list{padding:4px;display:grid;gap:4px}.hex-map-card{display:flex!important;flex-direction:column!important;align-items:flex-start!important;width:100%;height:auto!important;min-height:48px!important;padding:7px 9px!important;border-radius:7px!important;border:1px solid #173246!important;border-left:4px solid #249eff!important;background:#0b1d2a!important;color:#eef8ff!important;text-align:left!important}.hex-map-card strong{font-size:11px;line-height:1.25}.hex-map-card small{font-size:9px;color:#8fb2ca;margin-top:3px}.hex-map-card.active{background:#123754!important;border-color:#299fff!important;box-shadow:inset 0 0 0 1px rgba(41,159,255,.35)}
.hex-tools-panel[open] .hex-toolbar{display:flex!important}.hex-tools-panel:not([open]) .hex-toolbar{display:none!important}.hex-tools-panel .hex-toolbar{max-height:min(46vh,410px);overflow:auto}
.hex-tools-panel .hex-search-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;width:100%}.hex-tools-panel .hex-search-box input{grid-column:1/-1;width:100%;min-width:0;flex-basis:auto}.hex-tools-panel #hexSearchStatus{grid-column:1/-1}
@media(max-width:520px){.hex-maps-browser{max-height:42vh}.hex-map-card{min-height:45px!important}.hex-tools-panel .hex-toolbar{max-height:42vh}.hex-tools-panel>summary,.hex-maps-panel>summary{padding:7px 9px;min-height:36px}}


/* v4.8.7 — actions de glissement confinées et masquées pendant le scroll */
.home-project-swipe,.map-swipe{isolation:isolate;contain:paint;clip-path:inset(0 round 13px)}
.map-swipe{clip-path:inset(0 round 7px)}
.home-project-actions,.map-swipe-actions{opacity:0;visibility:hidden;pointer-events:none;transform:translateZ(0);backface-visibility:hidden;transition:opacity .08s linear}
.home-project-swipe.open .home-project-actions,.home-project-swipe.swiping .home-project-actions,.map-swipe.open .map-swipe-actions,.map-swipe.swiping .map-swipe-actions{opacity:1;visibility:visible;pointer-events:auto}
.home-project-row,.map-swipe-content{backface-visibility:hidden;transform:translateZ(0)}

/* v4.8.8 — catégories de maps compactes lorsqu'elles sont repliées */
.inline-map-category:not([open]) > .inline-map-items{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
}
.inline-map-category:not([open]){
  min-height:0!important;
  height:auto!important;
}
.inline-map-categories{
  align-content:start!important;
  grid-auto-rows:max-content!important;
  row-gap:7px!important;
}

/* v4.8.9 — catégories réellement compactes + surface 3D recentrée */
.inline-map-categories{
  display:block!important;
  align-content:initial!important;
  grid-auto-rows:initial!important;
  row-gap:0!important;
}
.inline-map-category{
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0 0 7px 0!important;
}
.inline-map-category:last-child{margin-bottom:0!important}
.inline-map-category:not([open]){
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
}
.inline-map-category:not([open]) > summary{
  margin:0!important;
}
.inline-map-category:not([open]) > .inline-map-items{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
}


/* v4.9.0 — palette tableau et surface 3D plus fluide */
.map-grid td.data-heat-cell{
  border-color:rgba(15,28,40,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.28)!important;
}
.map-grid td.data-heat-cell input{
  letter-spacing:.05px;
  text-shadow:0 1px 2px rgba(0,0,0,.72)!important;
}
.map-grid td.data-heat-cell.heat-light input{
  color:#07131d!important;
  text-shadow:0 1px 0 rgba(255,255,255,.35)!important;
}
.map-grid td.selected{
  box-shadow:inset 0 0 0 2px #f8fcff,inset 0 0 0 5px #1998ff,0 0 12px rgba(25,152,255,.72)!important;
}

/* ===== Atelier PRO 5.2.0 ===== */
.pro-drawer{position:fixed;inset:0;z-index:5000;pointer-events:none;visibility:hidden}.pro-drawer.open{pointer-events:auto;visibility:visible}.pro-drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);opacity:0;transition:opacity .2s}.pro-drawer.open .pro-drawer-backdrop{opacity:1}.pro-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(520px,96vw);background:linear-gradient(180deg,#111927,#080d15);border-left:1px solid #2e6aa0;box-shadow:-20px 0 50px rgba(0,0,0,.55);transform:translateX(102%);transition:transform .24s ease;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.pro-drawer.open .pro-drawer-panel{transform:translateX(0)}.pro-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #26384c}.pro-drawer-head strong{display:block;font-size:20px}.pro-drawer-head small{display:block;color:#91a6ba;margin-top:3px}.pro-drawer-head button{width:42px;height:42px;border-radius:12px}.pro-tabs{display:flex;gap:6px;overflow-x:auto;padding:10px;border-bottom:1px solid #25374a}.pro-tabs button{flex:0 0 auto;min-height:36px;padding:7px 11px;border-radius:10px;font-size:12px}.pro-tabs button.active{background:#1677ff;color:white;border-color:#4b9cff}.pro-drawer-body{overflow:auto;flex:1;padding:14px 14px calc(20px + env(safe-area-inset-bottom))}.pro-tab{display:none}.pro-tab.active{display:block}.pro-quick-actions,.pro-export-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.pro-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pro-stat{background:#111d2b;border:1px solid #28425d;border-radius:14px;padding:13px}.pro-stat span{display:block;color:#8fa5ba;font-size:12px}.pro-stat strong{display:block;font-size:20px;margin-top:4px}.pro-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pro-section-head h3{margin:0}.pro-list{display:grid;gap:8px}.pro-list-item{background:#101b28;border:1px solid #253e57;border-radius:12px;padding:11px;display:flex;gap:10px;align-items:center;justify-content:space-between}.pro-list-item>div{min-width:0}.pro-list-item strong,.pro-list-item small{display:block}.pro-list-item small{color:#8ca1b5;margin-top:3px;overflow-wrap:anywhere}.pro-list-actions{display:flex;gap:6px}.pro-list-actions button{padding:7px 9px;min-height:34px}.pro-version-create{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.pro-search{width:100%;margin-bottom:12px}.pro-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pro-form-grid label{font-size:12px;color:#a9bbcc}.pro-form-grid input,.pro-form-grid textarea{width:100%;margin-top:5px}.pro-form-grid .wide{grid-column:1/-1}.pro-file-button{display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #31577c;border-radius:12px;padding:10px;background:#13263a;cursor:pointer}.pro-validation{margin-top:12px;display:grid;gap:7px}.pro-validation div{padding:10px;border-radius:10px;border:1px solid #334b61;background:#111b25}.pro-validation .warning{border-color:#8a6822;background:#2a210e}.pro-validation .critical{border-color:#8e2c38;background:#2b1116}.pro-selection-extra{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pro-selection-extra button{min-height:32px;padding:6px 9px;font-size:11px}
@media (orientation:landscape) and (min-width:700px){.pro-drawer-panel{width:min(620px,65vw)}.editor-app main{max-width:none}.map-view-window .window-shell{width:98vw;height:96vh}.inline-maps-browser{max-height:58vh}}

/* v5.4.9 — base stable 5.2, accueil compact et en-tête mobile reconstruit */
html,body{max-width:100%;overflow-x:hidden!important}
.project-home{overflow-x:hidden!important}
.project-home-hero{min-height:132px!important;justify-content:flex-start!important;align-items:flex-start!important}
.home-project-state{display:none!important}
.home-brand{width:100%;position:relative;z-index:1}
.home-brand h1{font-size:clamp(31px,8vw,46px)!important}
.home-continue-top{margin-top:6px!important;margin-bottom:18px!important}
.home-primary-actions{margin-top:0!important}

.app-header{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"brand ecu" "actions actions"!important;
  column-gap:12px!important;
  row-gap:10px!important;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px!important;
}
.boot-sequence{grid-area:boot;display:none!important}
.brand-zone{grid-area:brand!important;min-width:0!important;display:flex!important;align-items:center!important;overflow:hidden!important;padding:0!important}
.pro-brand{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  font-size:clamp(21px,6.8vw,31px)!important;
  line-height:.95!important;
  white-space:normal!important;
  overflow:visible!important;
}
.pro-brand>span{display:block!important;max-width:100%!important;white-space:nowrap!important}
.pro-brand .brand-accent{margin:0!important}
.ecu-header-card{
  grid-area:ecu!important;
  justify-self:end!important;
  align-self:center!important;
  width:auto!important;
  max-width:44vw!important;
  min-width:112px!important;
  margin:0!important;
  padding:8px 0 8px 12px!important;
  border-left:1px solid #263442!important;
  text-align:right!important;
  overflow:hidden!important;
}
.ecu-header-card strong{font-size:15px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.ecu-header-card small{font-size:8.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.header-actions{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:repeat(5,48px)!important;
  justify-content:center!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.icon-action,.back-projects-btn{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:11px!important;
  font-size:20px!important;
  line-height:1!important;
}
.back-projects-btn{font-size:30px!important}
.main-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;overflow:hidden!important}
.main-nav button{min-width:0!important;padding-left:2px!important;padding-right:2px!important;font-size:8px!important}
.main-nav button span{font-size:18px!important}
.secondary-actions{max-width:100%!important}

@media(max-width:430px){
  .app-header{grid-template-columns:minmax(0,1fr) minmax(112px,42vw)!important;padding-left:12px!important;padding-right:12px!important}
  .pro-brand{font-size:clamp(19px,6vw,25px)!important}
  .ecu-header-card{min-width:108px!important;max-width:42vw!important;padding-left:9px!important}
  .header-actions{grid-template-columns:repeat(5,44px)!important;gap:7px!important}
  .icon-action,.back-projects-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .main-nav button{font-size:7px!important}
  .main-nav button span{font-size:17px!important}
  .project-home-hero{min-height:110px!important}
}


/* ===== v5.5.0 — en-tête compact et accordéons sans espace mort ===== */
.app-header{
  grid-template-columns:minmax(0,1fr) minmax(128px,38vw)!important;
  column-gap:10px!important;
  row-gap:7px!important;
  padding:calc(8px + env(safe-area-inset-top)) 12px 8px!important;
}
.brand-zone{overflow:visible!important;padding-right:2px!important}
.pro-brand{
  font-size:clamp(23px,7.2vw,32px)!important;
  line-height:.92!important;
  letter-spacing:-.2px!important;
}
.ecu-header-card{
  width:100%!important;
  min-width:128px!important;
  max-width:38vw!important;
  padding:5px 0 5px 9px!important;
}
.ecu-header-card strong{font-size:14px!important;line-height:1.05!important}
.ecu-header-card small{display:grid!important;gap:2px!important;margin-top:4px!important;font-size:8px!important;line-height:1.15!important}
.ecu-header-card small span{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.header-actions{
  grid-template-columns:repeat(5,38px)!important;
  gap:7px!important;
  justify-content:center!important;
}
.icon-action,.back-projects-btn{
  width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
  border-radius:9px!important;font-size:17px!important;
}
.back-projects-btn{font-size:25px!important}

/* Le menu de présentation du BIN est absorbé dans Affichage de la map. */
.editor-panel.no-current-map>.editor-head{display:none!important}
.map-display-bin-info{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 0 9px;padding:9px 11px;border:1px solid #23435e;border-radius:10px;
  background:#081725;color:#dcecff;font-size:11px;
}
.map-display-bin-info[hidden]{display:none!important}
.map-display-bin-info strong{color:#54b0ff;font-size:13px}
.map-display-bin-info span{color:#8197aa;text-align:right}

/* Un accordéon fermé ne conserve plus la grande hauteur de l’éditeur. */
.workspace.editor-only{display:block!important;margin:0!important;padding:0!important}
.editor-only .editor-panel{min-height:0!important}
.editor-panel:has(.map-display-panel:not([open])){min-height:0!important;margin-bottom:0!important}
.map-display-panel:not([open]){margin-bottom:0!important}
.map-display-panel:not([open])+.anything{margin-top:0!important}
#powerAccordion{margin-top:10px!important}
.workspace.editor-only:has(.map-display-panel:not([open])) + #powerAccordion{margin-top:0!important}

@media(max-width:430px){
  .app-header{grid-template-columns:minmax(0,1fr) minmax(122px,39vw)!important;padding-left:10px!important;padding-right:10px!important}
  .pro-brand{font-size:clamp(22px,7vw,27px)!important}
  .ecu-header-card{min-width:122px!important;max-width:39vw!important;padding-left:8px!important}
  .header-actions{grid-template-columns:repeat(5,36px)!important;gap:6px!important}
  .icon-action,.back-projects-btn{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
  .map-display-bin-info{align-items:flex-start;flex-direction:column;gap:3px}
  .map-display-bin-info span{text-align:left}
}

/* ===== v5.5.1 — liste de maps compacte, logo sans séparateur, vue 2D lecture seule ===== */
/* Le trait vertical provenait de la bordure du bloc ECU et traversait visuellement le logo. */
.ecu-header-card{border-left:0!important;box-shadow:none!important}

/* Quand toutes les catégories sont fermées, la zone Maps reprend sa hauteur naturelle. */
.maps-home-panel.maps-all-collapsed[open]{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
}
.maps-home-panel.maps-all-collapsed[open] .maps-home-content{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.maps-home-panel.maps-all-collapsed[open] .inline-map-categories{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:0!important;
}
.maps-home-panel.maps-all-collapsed[open] + .workspace,
.maps-home-panel.maps-all-collapsed[open] ~ .workspace{
  margin-top:10px!important;
}

/* La vue 2D est désormais strictement en lecture seule. */
.view-2d-readonly{
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  touch-action:pan-y!important;
}
.view-2d-readonly-note{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:8px;
  padding:3px 7px;
  border:1px solid #29445b;
  border-radius:999px;
  color:#9db3c6;
  background:#0b1823;
  font-size:10px;
  font-weight:700;
}


/* ===== v5.5.2 : espacement, sélection visible et boîte PRO harmonisée ===== */
/* Même séparation entre les deux accordéons fermés que les panneaux Projet/Mappack/Maps. */
.workspace.editor-only{margin-bottom:14px!important}
.workspace.editor-only .editor-panel{margin-bottom:0!important}
.workspace.editor-only:has(#mapDisplayPanel:not([open])){margin-bottom:14px!important}
#mapDisplayPanel:not([open]){margin:0!important}
#powerAccordion{margin-top:0!important;margin-bottom:14px!important}
#powerAccordion:not([open]){margin-top:0!important}

/* Cellules sélectionnées : bordure lumineuse + voile bleu + coche discrète. */
.map-grid td.selected{
 position:relative!important;
 z-index:3!important;
 outline:0!important;
 box-shadow:inset 0 0 0 3px #eaf7ff,inset 0 0 0 6px #0b8dff,0 0 0 2px rgba(11,141,255,.45),0 0 16px rgba(11,141,255,.85)!important;
 filter:brightness(1.14) saturate(1.15)!important;
}
.map-grid td.selected::after{
 content:"✓";position:absolute;right:3px;top:2px;width:18px;height:18px;border-radius:50%;
 display:grid;place-items:center;background:#087ee9;color:#fff;font-size:12px;font-weight:900;
 box-shadow:0 1px 5px #0008;pointer-events:none
}
.map-grid td.selected input{color:#fff!important;text-shadow:0 1px 2px #000,0 0 5px #000!important}

/* La boîte PRO reprend exactement les volumes, contours et bleu de l'application. */
.pro-drawer-panel{background:linear-gradient(180deg,#081624,#050b12)!important;border-left:1px solid #2b4d68!important}
.pro-drawer-head{background:linear-gradient(90deg,#0d2132,#08131e)!important;border-bottom:1px solid #29445b!important}
.pro-tabs{background:#07111a!important;border-bottom:1px solid #29445b!important;gap:8px!important}
.pro-tabs button,.pro-quick-actions button,.pro-export-grid button,.pro-list-actions button,.pro-version-create button,
.pro-selection-extra button,.pro-drawer-panel button:not(.danger){
 background:linear-gradient(180deg,#13283a,#0a1824)!important;
 border:1px solid #315773!important;color:#eef8ff!important;border-radius:12px!important;
 min-height:40px!important;padding:8px 12px!important;font-weight:750!important;box-shadow:none!important
}
.pro-tabs button.active,.pro-drawer-panel button.primary,.pro-quick-actions button:active,.pro-selection-extra button:active{
 background:linear-gradient(135deg,#168cff,#075bc7)!important;border-color:#4aa8ff!important;color:#fff!important
}
.pro-drawer-panel button.danger{background:linear-gradient(180deg,#52202a,#2b1017)!important;border:1px solid #9a3c4b!important;color:#ffb4be!important;border-radius:12px!important}
.pro-stat,.pro-list-item,.pro-validation div{background:linear-gradient(180deg,#0d1d2b,#09131d)!important;border:1px solid #29465f!important;border-radius:14px!important}
.pro-drawer-panel input,.pro-drawer-panel textarea,.pro-drawer-panel select{background:#06111b!important;border:1px solid #31536f!important;color:#fff!important;border-radius:11px!important}
.pro-selection-extra{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}


/* ===== Version 1.0 : titres uniformes, HEX intégré et sélection par axes ===== */
:root{--lpt-panel-title-size:clamp(22px,5.8vw,32px)}
#projectPanel>summary>span,
#mappackPanel>summary>span,
#mapsPanel>summary>span,
#hexPanel>summary>span,
#mapDisplayPanel>summary>span,
#powerAccordion>summary>span{
  font-size:var(--lpt-panel-title-size)!important;
  line-height:1.12!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  color:#55adff!important;
}
#projectPanel>summary,#mappackPanel>summary,#mapsPanel>summary,#hexPanel>summary,#powerAccordion>summary,
#mapDisplayPanel>summary{min-height:92px!important;padding:20px 24px!important;box-sizing:border-box}
#projectPanel>summary>small,#mappackPanel>summary>small,#mapsPanel>summary>small,#hexPanel>summary>small,#mapDisplayPanel>summary>small,#powerAccordion>summary>small{
  font-size:15px!important;line-height:1.35!important;color:#8ba3b9!important;margin-top:8px!important
}
.hex-inline-panel{overflow:hidden}
.hex-inline-content{padding:10px 12px 16px;min-height:180px}
.hex-inline-panel:not([open]) .hex-inline-content{display:none!important}
#hexArea{min-width:0;max-width:100%;overflow:hidden}
#hexArea .hex-continuous{height:min(62vh,680px)!important;min-height:360px}
#hexArea .hex-toolbar{position:relative;top:auto}
/* Les axes deviennent des commandes de sélection lorsque la case est cochée. */
.cell-select-mode-active .editable-axis,.cell-select-mode-active .map-corner,
body:has(#cellSelectModeTable:checked) #tableDialog .editable-axis,
body:has(#cellSelectModeTable:checked) #tableDialog .map-corner{
  cursor:pointer!important;box-shadow:inset 0 0 0 1px rgba(60,169,255,.42)
}
/* Les anciens boutons Ligne, Colonne, Modifiées, Inverser et Plage de valeurs ne sont plus affichés. */
.pro-selection-extra,.advanced-selection-hidden{display:none!important}
footer{font-size:13px!important;letter-spacing:.02em}
@media(max-width:520px){
  :root{--lpt-panel-title-size:24px}
  #projectPanel>summary,#mappackPanel>summary,#mapsPanel>summary,#hexPanel>summary,#powerAccordion>summary,#mapDisplayPanel>summary{padding:16px 18px!important;min-height:78px!important}
  #projectPanel>summary>small,#mappackPanel>summary>small,#mapsPanel>summary>small,#hexPanel>summary>small,#mapDisplayPanel>summary>small,#powerAccordion>summary>small{font-size:13px!important}
  .hex-inline-content{padding:8px 6px 12px}
}


/* Version 1.0 — harmonisation des outils HEX avec l’interface principale */
.hex-tools-panel{
  border:1px solid #29465d;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(180deg,#091521 0%,#07111a 100%);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.hex-tools-panel>summary{
  min-height:48px;
  padding:11px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#56adff;
  background:linear-gradient(90deg,#0d2030,#091722);
  border-bottom:1px solid transparent;
  font-weight:850;
  font-size:16px;
  letter-spacing:.1px;
  list-style:none;
}
.hex-tools-panel[open]>summary{border-bottom-color:#29465d}
.hex-tools-panel>summary::-webkit-details-marker{display:none}
.hex-tools-panel .hex-toolbar{
  position:static!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  padding:12px!important;
  max-height:none!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:#07111a!important;
}
.hex-tools-panel .hex-toolbar label{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:7px;
  color:#9bb0c3;
  font-size:12px;
  line-height:1.2;
}
.hex-tools-panel .hex-toolbar select,
.hex-tools-panel .hex-toolbar input{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  padding:7px 34px 7px 11px!important;
  color:#eaf4ff!important;
  background-color:#091824!important;
  border:1px solid #31536c!important;
  border-radius:10px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 2px 7px rgba(0,0,0,.18);
  font-size:13px!important;
  font-weight:650;
  outline:none;
}
.hex-tools-panel .hex-toolbar select{
  background-image:linear-gradient(45deg,transparent 50%,#53adff 50%),linear-gradient(135deg,#53adff 50%,transparent 50%);
  background-position:calc(100% - 16px) 16px,calc(100% - 11px) 16px;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
.hex-tools-panel .hex-toolbar select:focus,
.hex-tools-panel .hex-toolbar input:focus{
  border-color:#1d91ff!important;
  box-shadow:0 0 0 2px rgba(29,145,255,.2),inset 0 1px 0 rgba(255,255,255,.04);
}
.hex-tools-panel .hex-toolbar button,
.hex-tools-panel .hex-quick-zones button{
  min-width:0!important;
  min-height:40px!important;
  height:40px!important;
  padding:7px 11px!important;
  border:1px solid #31536c!important;
  border-radius:10px!important;
  color:#dceeff!important;
  background:linear-gradient(180deg,#102334,#0a1824)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 3px 8px rgba(0,0,0,.2);
  font-size:12px!important;
  font-weight:750;
  white-space:nowrap;
}
.hex-tools-panel .hex-toolbar button:active{
  transform:translateY(1px);
  filter:brightness(1.15);
}
.hex-tools-panel .hex-toolbar button.active-tool,
.hex-tools-panel .hex-toolbar button:hover{
  color:#fff!important;
  border-color:#1d91ff!important;
  background:linear-gradient(180deg,#167bd0,#10518d)!important;
}
.hex-tools-panel .hex-toolbar button:disabled{
  color:#718091!important;
  border-color:#243543!important;
  background:#111a22!important;
  box-shadow:none!important;
  opacity:.55!important;
}
.hex-tools-panel #hexJumpBtn{align-self:end}
.hex-tools-panel .hex-search-box{
  grid-column:1/-1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 48px 48px!important;
  gap:7px!important;
  width:100%;
}
.hex-tools-panel .hex-search-box input{
  grid-column:1/-1!important;
  height:42px!important;
  padding-right:11px!important;
}
.hex-tools-panel #hexSearchBtn{
  grid-column:1/2;
  width:100%;
}
.hex-tools-panel #hexPrevResult,
.hex-tools-panel #hexNextResult{
  width:48px;
  padding:0!important;
  font-size:15px!important;
}
.hex-tools-panel #hexSearchStatus{
  grid-column:1/-1!important;
  min-height:20px;
  margin:0!important;
  color:#83a5bd!important;
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace!important;
}
.hex-tools-panel .hex-quick-zones{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.hex-tools-panel #hexSelectBtn,
.hex-tools-panel #hexCreateMapBtn,
.hex-tools-panel #hexClearSelectionBtn{
  width:100%;
}
.hex-tools-panel .hex-selection-status,
.hex-tools-panel .hex-source-status{
  grid-column:1/-1;
  width:100%;
  margin:0!important;
  color:#86a1b6!important;
  font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:520px){
  .hex-tools-panel .hex-toolbar{grid-template-columns:1fr 1fr;padding:10px!important;gap:8px}
  .hex-tools-panel .hex-toolbar label{grid-template-columns:1fr;gap:4px;font-size:11px}
  .hex-tools-panel .hex-toolbar select,
  .hex-tools-panel .hex-toolbar input{height:38px!important;min-height:38px!important;font-size:12px!important}
  .hex-tools-panel .hex-toolbar button{height:38px!important;min-height:38px!important;font-size:11.5px!important}
  .hex-tools-panel .hex-search-box{grid-template-columns:minmax(0,1fr) 44px 44px!important}
  .hex-tools-panel #hexPrevResult,.hex-tools-panel #hexNextResult{width:44px}
}

/* Bibliothèque DAMOS intégrée */
.damos-match-status{margin:10px 0;padding:10px 12px;border:1px solid #343434;border-radius:8px;background:#111;color:#bbb;font-size:12px}.damos-match-status.match{border-color:#7a5b00;color:#ffd75c}.damos-library-dialog{width:min(920px,96vw);height:min(760px,90vh);padding:0;border:1px solid #3a3a3a;border-radius:12px;background:#0b0b0b;color:#eee}.damos-library-dialog::backdrop{background:#000b}.damos-library-dialog .dialog-shell{display:flex;flex-direction:column;height:100%}.damos-library-dialog header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #2b2b2b}.damos-library-dialog header h2{margin:0}.damos-library-dialog header p{margin:4px 0 0;color:#999;font-size:12px}.damos-library-dialog header button{background:#222;color:#fff;border:1px solid #444;border-radius:7px;padding:8px 11px}.damos-toolbar{display:grid;grid-template-columns:1fr 210px;gap:10px;padding:12px}.damos-toolbar input,.damos-toolbar select{background:#151515;color:#eee;border:1px solid #383838;border-radius:8px;padding:11px}.damos-results{overflow:auto;padding:0 12px 14px}.damos-card{border:1px solid #303030;border-radius:9px;background:#121212;margin-bottom:9px;padding:12px}.damos-card.match{border-color:#a77b00;background:#191500}.damos-card-head{display:flex;justify-content:space-between;gap:10px}.damos-card h3{margin:0;color:#f3c433;font-size:15px}.damos-card p{margin:6px 0;color:#bbb;font-size:12px}.damos-card small{color:#777}.damos-files{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.damos-file-chip{font-size:11px;padding:4px 7px;border:1px solid #333;border-radius:999px;background:#1b1b1b;color:#ccc}.damos-score{font-weight:700;color:#f3c433;white-space:nowrap}@media(max-width:650px){.damos-toolbar{grid-template-columns:1fr}.damos-library-dialog{width:100vw;height:92vh;border-radius:12px 12px 0 0;margin:auto 0 0}.damos-card-head{display:block}.damos-score{display:block;margin-top:5px}}
/* Correctif DAMOS v3 : repli pour Safari/iOS et ouverture locale */
.damos-library-dialog.dialog-fallback-open[open]{display:block;position:fixed;inset:4vh 2vw;z-index:10000;margin:auto;max-width:96vw;max-height:92vh;box-shadow:0 0 0 100vmax rgba(0,0,0,.78)}
#damosLibraryBtn,#autoDamosBtn{touch-action:manipulation;position:relative;z-index:1}

.damos-engine-ready{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:rgba(46,204,113,.16);border:1px solid rgba(46,204,113,.45);font-size:11px;font-weight:700}

.damos-card{cursor:pointer}.damos-card.selected{outline:2px solid #21a0ff;box-shadow:0 0 0 4px rgba(33,160,255,.18)}
.damos-use-btn{width:100%;margin-top:14px;padding:13px 12px;border-radius:12px;border:1px solid #2f91d8;background:#12304a;color:#fff;font-weight:800;font-size:16px}.damos-use-btn:active{transform:scale(.985)}

/* Dossiers de maps v1.9 */
.map-category-folder{border:1px solid var(--line,#29445c);border-radius:14px;margin:10px 0;overflow:hidden;background:rgba(7,18,28,.72)}.map-category-folder>summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:800;cursor:pointer;background:rgba(12,37,55,.9)}.map-category-folder>summary span:last-child{min-width:36px;text-align:center;border-radius:999px;padding:3px 9px;background:#174a6d}.map-folder-items{display:grid;gap:8px;padding:10px}.map-category-folder:not([open]) .map-folder-items{display:none}
.map-display-base-control{display:flex;justify-content:flex-end;padding:8px 10px;border-bottom:1px solid rgba(80,160,220,.22)}
.map-display-base-control label{display:flex;align-items:center;gap:8px;font-weight:700;color:#b9d7ef}
.map-display-base-control select{min-height:38px;border-radius:10px;background:#0b1925;color:#fff;border:1px solid #345c78;padding:6px 10px}
.map-description{display:block;margin-top:8px;line-height:1.45;color:#a9c0d6;font-size:.82rem;max-width:900px}.map-description strong{color:#58adff}.editor-head #mapMeta span{display:block}
/* v9.0 */
.map-advanced-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.map-advanced-filters select{min-width:0;width:100%;background:#07121d;color:#dceeff;border:1px solid #284b65;border-radius:12px;padding:11px}.force-edc-btn{width:100%;margin:10px 0 14px}.similar-maps-dialog .window-shell{max-width:720px}.similar-map-list{display:grid;gap:8px;max-height:52vh;overflow:auto;margin:12px 0}.similar-map-list label{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #24445b;border-radius:12px;background:#081521}.similar-map-list span{display:grid;gap:3px}.similar-map-list small{color:#8da9bd}.reset-3d-btn{position:absolute;z-index:3;right:12px;top:10px;background:#10283a;color:#cfeaff;border:1px solid #2f6c95;border-radius:10px;padding:8px 10px}.large-view-area,#mapViewerArea{position:relative}.map-swipe-actions small{font-size:11px}@media(max-width:700px){.map-advanced-filters{grid-template-columns:1fr}.similar-maps-dialog .window-shell{width:96vw}}
/* v9.1 — fusion multi-sources et IA locale */
.detection-modes-btn{width:100%;margin:10px 0}.detection-modes-dialog .window-shell{max-width:720px}.detect-policy{padding:12px;border:1px solid #28506e;border-radius:12px;background:#071723;color:#b9d5e8}.detect-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detect-mode-grid label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #29465b;border-radius:12px;background:#08141e}.detect-mode-grid label span{display:grid;gap:4px}.detect-mode-grid small{color:#8fa8ba}.fusion-order{margin-top:12px;padding:12px;border-radius:12px;background:#0a1c2b;display:grid;gap:5px}.map-source-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.map-source-badges span{font-size:10px;line-height:1;padding:5px 7px;border-radius:999px;background:#173047;color:#d9efff}.map-source-badges .src-edcsuite{background:#0d5b97}.map-source-badges .src-damos{background:#46651c}.map-source-badges .src-mappack{background:#684c16}.map-source-badges .src-ai{background:#5b2b78}.map-source-badges .src-heuristic{background:#444b54}@media(max-width:700px){.detect-mode-grid{grid-template-columns:1fr}}
#lptLoadErrorBox{position:fixed;inset:0;z-index:999999;background:rgba(8,12,18,.78);display:grid;place-items:center;padding:18px}.lpt-load-error-card{max-width:520px;background:#151d26;border:1px solid #a94747;border-radius:14px;padding:18px;color:#eef4fa;box-shadow:0 18px 60px #000}.lpt-load-error-card strong{display:block;font-size:17px;margin-bottom:8px}.lpt-load-error-card p{line-height:1.45;color:#cbd5df}.lpt-load-error-card button{padding:9px 16px;border-radius:8px}
/* v9.3 — commandes mappack cohérentes */
.tool-command-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;margin:8px 0;border:1px solid #303846;border-radius:10px;background:linear-gradient(180deg,#202631,#171c24);color:#eef3f8;box-shadow:0 2px 10px #0005}
.tool-command-button:active{transform:translateY(1px);background:#252d39}.tool-command-button:disabled{opacity:.55}
.tool-command-button .tool-command-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#0d73d8;color:white;font-size:18px;flex:0 0 34px}
.tool-command-button span:last-child{display:flex;flex-direction:column;gap:2px}.tool-command-button strong{font-size:13px}.tool-command-button small{font-size:10px;color:#aeb8c6;font-weight:400}
.detect-mode-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0}.detect-mode-grid label{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid #303846;border-radius:9px;background:#171c24}.detect-mode-grid label span{display:flex;flex-direction:column}.detect-mode-grid small{color:#aeb8c6;margin-top:2px}.fusion-order{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:8px;background:#121720;border:1px solid #2a3340}.fusion-progress{margin-top:10px}.fusion-progress>div{height:7px;border-radius:6px;background:#111720;overflow:hidden;margin-top:5px}.fusion-progress i{display:block;height:100%;width:0;background:#1686f2;transition:width .2s}.map-source-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.map-source-badges em{font-style:normal;font-size:8px;padding:2px 5px;border-radius:9px;background:#273242;color:#dbe7f4}.source-edcsuite{background:#075fae!important}.source-damos{background:#446c1e!important}.source-mappack{background:#714b9d!important}
/* v10.0 - centre de stabilité */
#lptLoadGuard{position:fixed;inset:0;z-index:99999;background:rgba(6,10,18,.78);display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}#lptLoadGuard[hidden]{display:none}.lpt-load-card{width:min(420px,92vw);background:#111a27;border:1px solid #31445f;border-radius:18px;padding:24px;box-shadow:0 24px 80px #0009;text-align:center}.lpt-load-spinner{width:42px;height:42px;border:4px solid #30435d;border-top-color:#65b8ff;border-radius:50%;margin:0 auto 16px;animation:lptSpin .8s linear infinite}@keyframes lptSpin{to{transform:rotate(360deg)}}.lpt-load-progress{height:8px;background:#263548;border-radius:99px;overflow:hidden;margin:16px 0}.lpt-load-progress i{display:block;height:100%;width:5%;background:linear-gradient(90deg,#4f9cff,#72d6ff);transition:width .25s}.lpt-load-actions{display:flex;gap:10px;justify-content:center}.lpt-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.lpt-health-grid div{padding:12px;border:1px solid #2d4057;border-radius:12px;background:#121d2b}.lpt-health-grid small{display:block;opacity:.7}.lpt-health-grid strong{font-size:1.05rem}.lpt-diagnostic-log{max-height:42vh;overflow:auto;margin-top:14px;display:grid;gap:8px}.lpt-diagnostic-log article{padding:10px 12px;border-radius:10px;background:#111a26;border-left:3px solid #7087a4}.lpt-diagnostic-log article.log-error,.lpt-diagnostic-log article.log-promise,.lpt-diagnostic-log article.log-timeout{border-left-color:#ff6767}.lpt-diagnostic-log article.log-warning{border-left-color:#ffc45d}.lpt-diagnostic-log article p{margin:4px 0 0}.lpt-diagnostic-log time{float:right;font-size:.72rem;opacity:.55}.lpt-safe-mode .tool-command-button{contain:content}
/* ===== Version 10.1 — commandes interface réparées ===== */
.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.app-action-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:42px;padding:.62rem .9rem;border:1px solid #2f5e7b;border-radius:10px;background:linear-gradient(180deg,#17334a,#102638);color:#eaf7ff;font:inherit;font-weight:700;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.06),0 4px 12px rgba(0,0,0,.18);transition:transform .12s ease,border-color .12s ease,background .12s ease}
.app-action-button:hover,.app-action-button:focus-visible{border-color:#63bdf0;background:linear-gradient(180deg,#1c405b,#143149);outline:none}.app-action-button:active{transform:translateY(1px) scale(.99)}
.compare-toolbar .app-action-button{min-width:170px}.compare-file-button{user-select:none}
#proSaveProjectInfoBtn.saved-ok{border-color:#35c979;background:linear-gradient(180deg,#17613d,#10472e)}
.map-swipe-actions .map-edit-action small{font-weight:700}
.lpt-force-edc{width:100%;display:flex!important;align-items:center;gap:14px;padding:15px 18px!important;border:1px solid #315778!important;border-radius:16px!important;background:linear-gradient(180deg,#13283b,#0c1b29)!important;color:#eef7ff!important;text-align:left!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.lpt-force-edc .tool-command-icon{display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:#0a76d8;font-size:21px}.lpt-force-edc strong,.lpt-force-edc small{display:block}.lpt-force-edc strong{font-size:16px}.lpt-force-edc small{margin-top:3px;color:#91a9bc;font-size:12px}

/* v10.7 diagnostics et stabilité */
.lpt-diagnostic-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.lpt-action-btn{min-height:46px;border:1px solid #31506a;border-radius:12px;background:linear-gradient(180deg,#142536,#0a1723);color:#eef6ff;font-weight:800;padding:10px 12px;box-shadow:inset 0 1px 0 #ffffff0d,0 5px 16px #0005}.lpt-action-btn.primary{border-color:#168cff;background:linear-gradient(135deg,#086fe8,#0d91ff)}.lpt-action-btn.danger{border-color:#87414a;background:linear-gradient(180deg,#35171d,#211015);color:#ffb4bd}.lpt-action-btn:active{transform:translateY(1px);filter:brightness(1.08)}@media(max-width:620px){.lpt-diagnostic-actions{grid-template-columns:1fr}.lpt-action-btn{width:100%}}

/* v13.2 — commande EDC Suite cohérente avec les actions de la bibliothèque */
.lpt-edcsuite-force-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #35516b;border-radius:10px;background:#132638;color:#fff;padding:9px 11px;font-weight:700;font:inherit;min-height:38px;touch-action:manipulation}
.lpt-edcsuite-force-btn:active{transform:translateY(1px);background:#19334a}
.lpt-edcsuite-force-btn:disabled{opacity:.55}
.lpt-edcsuite-force-btn[hidden]{display:none!important}
@media(max-width:760px){.lpt-edcsuite-force-btn{flex:1 1 45%}}

/* v13.7 — classification visuelle des maps */
.map-item[data-color-category],.inline-map-item[data-color-category]{--map-category-color:#788391}
.map-item[data-color-category="turbo"],.inline-map-item[data-color-category="turbo"]{--map-category-color:#348cff}
.map-item[data-color-category="egr"],.inline-map-item[data-color-category="egr"]{--map-category-color:#35c96f}
.map-item[data-color-category="limiters"],.inline-map-item[data-color-category="limiters"]{--map-category-color:#ff5148}
.map-item[data-color-category="injection"],.inline-map-item[data-color-category="injection"]{--map-category-color:#a77cff}
.map-item[data-color-category="rail"],.inline-map-item[data-color-category="rail"]{--map-category-color:#ffc247}
.map-item[data-color-category="air"],.inline-map-item[data-color-category="air"]{--map-category-color:#42c8e8}
.map-item[data-color-category="temperature"],.inline-map-item[data-color-category="temperature"]{--map-category-color:#ff8b55}
.map-item[data-color-category="pedal"],.inline-map-item[data-color-category="pedal"]{--map-category-color:#45d7b0}
.map-item[data-color-category="other"],.inline-map-item[data-color-category="other"]{--map-category-color:#7e8b98}
.map-color-marker{display:inline-block;width:8px;height:8px;min-width:8px;border-radius:50%;margin-right:7px;background:var(--map-category-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--map-category-color) 25%,transparent);vertical-align:1px}
.map-item[data-color-category],.inline-map-item[data-color-category]{border-left-color:var(--map-category-color)!important}
.map-color-legend{display:flex;gap:7px;align-items:center;overflow-x:auto;padding:7px 2px 9px;scrollbar-width:none}.map-color-legend::-webkit-scrollbar{display:none}.map-color-legend span{display:inline-flex;align-items:center;white-space:nowrap;color:#9db0bf;font-size:9px}.map-color-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:var(--legend-color)}

/* ===== v13.8 — panneau Maps plein écran et légende toujours visible ===== */
.maps-home-panel[open]:not(.maps-all-collapsed){
  height:var(--maps-expanded-height,calc(100dvh - 150px))!important;
  min-height:430px!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.maps-home-panel[open]:not(.maps-all-collapsed)>summary{flex:0 0 auto!important}
.maps-home-panel[open]:not(.maps-all-collapsed) .maps-home-content{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
#mapsPanel .inline-map-toolbar{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:4!important;
}
#mapsPanel .map-color-legend{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  flex:0 0 auto!important;
  min-height:48px!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0 0 7px!important;
  padding:5px!important;
  gap:4px!important;
  border:1px solid #25445b!important;
  border-radius:10px!important;
  background:#071521!important;
  position:relative!important;
  z-index:3!important;
}
#mapsPanel .map-color-legend span{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:4px 5px!important;
  border:0!important;
  border-radius:7px!important;
  background:#0b1d2a!important;
  color:#c7d9e7!important;
  font-size:9px!important;
  line-height:1.15!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  text-align:left!important;
  text-shadow:none!important;
}
#mapsPanel .map-color-legend i{flex:0 0 7px!important;width:7px!important;height:7px!important;margin-right:5px!important}
#mapsPanel .inline-map-categories{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding-bottom:max(80px,env(safe-area-inset-bottom))!important;
}
@media(max-width:520px){
  .maps-home-panel[open]:not(.maps-all-collapsed){min-height:400px!important}
  #mapsPanel .map-color-legend{grid-template-columns:repeat(2,minmax(0,1fr))!important;min-height:78px!important}
  #mapsPanel .map-color-legend span{font-size:9.5px!important;padding:5px 6px!important}
}

/* v13.9 — état DAMOS actif */
.active-damos-status{display:flex;align-items:center;gap:10px;margin:8px 0 10px;padding:10px 12px;border:1px solid rgba(34,197,94,.65);border-radius:12px;background:rgba(34,197,94,.09);color:#eefaf2}
.active-damos-status[hidden]{display:none!important}.active-damos-check{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#22c55e;color:#06150b;font-weight:900;flex:0 0 auto}.active-damos-status>span:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.active-damos-status small{color:#a9c7b2;margin-top:2px}.active-damos-status button{border:1px solid #31506b;background:#081827;color:#b9d8ef;border-radius:9px;padding:7px 9px}.damos-card.selected{border-color:#22c55e!important;box-shadow:0 0 0 1px rgba(34,197,94,.35) inset}.damos-card.selected .damos-use-btn::before{content:'✓ ';color:#22c55e;font-weight:900}
@media(max-width:700px){.active-damos-status{align-items:flex-start;flex-wrap:wrap}.active-damos-status button{margin-left:34px}}

/* v14.4 — choix de la méthode de détection */
.detection-method-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(148,163,184,.25);border-radius:12px;background:rgba(15,23,42,.55);margin:10px 0 14px}.detection-method-line span{display:flex;flex-direction:column;gap:3px}.detection-method-line small{opacity:.72}.detection-method-line select{min-width:240px;max-width:100%;padding:10px;border-radius:9px;background:#111827;color:#f8fafc;border:1px solid rgba(148,163,184,.35)}@media(max-width:680px){.detection-method-line{align-items:stretch;flex-direction:column}.detection-method-line select{width:100%;min-width:0}}

/* ===== v14.6 Qualité, validation et banc de test ===== */
.quality-map-filters{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:7px 0;flex:0 0 auto;-webkit-overflow-scrolling:touch}.quality-map-filters button{white-space:nowrap;padding:6px 9px;border-radius:999px;font-size:11px}.quality-map-filters button.active{border-color:#5da9ff;box-shadow:0 0 0 1px #5da9ff inset}.quality-map-filters label{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;opacity:.9}.quality-detection-report{flex:0 0 auto;border:1px solid rgba(130,160,200,.22);border-radius:10px;padding:8px;background:rgba(10,18,30,.68);margin-bottom:7px}.quality-report-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.quality-report-head>div{display:flex;flex-direction:column}.quality-report-head small{opacity:.65;font-size:10px}.quality-report-head button{padding:6px 9px;font-size:11px}.quality-report-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px}.quality-report-grid span{display:flex;flex-direction:column;align-items:center;padding:5px 2px;border-radius:7px;background:rgba(255,255,255,.04);font-size:9px;white-space:nowrap}.quality-report-grid b{font-size:15px}.q-confirmed b{color:#45d483}.q-probable b{color:#5da9ff}.q-review b{color:#f4b942}.q-rejected b{color:#f06464}.map-quality-badge{margin-left:auto;padding:2px 5px;border-radius:999px;font-style:normal;font-size:9px;line-height:1.2;border:1px solid currentColor;opacity:.92}.inline-map-item strong,.map-item strong{display:flex;align-items:center;gap:5px;width:100%}.quality-confirmed{color:#45d483}.quality-probable{color:#5da9ff}.quality-review{color:#f4b942}.quality-rejected{color:#f06464}.quality-benchmark-dialog .window-shell{max-width:860px}.quality-benchmark-results{overflow:auto;max-height:55vh}.quality-benchmark-results table{width:100%;border-collapse:collapse;font-size:12px}.quality-benchmark-results th,.quality-benchmark-results td{padding:8px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}@media(max-width:700px){.quality-report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quality-detection-report{padding:7px}.quality-map-filters{padding:5px 0}.quality-benchmark-results table{min-width:660px}}

/* ===== v14.7 — liste Maps pleine hauteur, légende compacte et filtres fiables ===== */
#mapsPanel.maps-home-panel[open]{height:var(--maps-expanded-height,calc(100dvh - 16px))!important;max-height:none!important;min-height:500px!important;overflow:hidden!important}
#mapsPanel[open] .maps-home-content{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
#mapsPanel[open] .inline-map-toolbar,#mapsPanel[open] .map-advanced-filters,#mapsPanel[open] .quality-map-filters,#mapsPanel[open] .quality-detection-report{flex:0 0 auto!important}
#mapsPanel[open] .map-color-legend{display:flex!important;grid-template-columns:none!important;min-height:30px!important;height:30px!important;max-height:30px!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;padding:3px 5px!important;margin:0 0 5px!important;gap:4px!important}
#mapsPanel[open] .map-color-legend span{flex:0 0 auto!important;padding:3px 6px!important;font-size:8.5px!important;background:#0b1d2a!important}
#mapsPanel[open] .inline-map-categories{flex:1 1 0!important;min-height:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;padding-bottom:max(90px,env(safe-area-inset-bottom))!important}
#mapCodeblockFilter:disabled{opacity:.58}
@media(max-width:520px){#mapsPanel.maps-home-panel[open]{min-height:480px!important}#mapsPanel[open] .map-color-legend{height:29px!important;min-height:29px!important;max-height:29px!important}}

/* ===== v14.7 — liste Maps pleine hauteur, légende compacte et filtres fiables ===== */
#mapsPanel.maps-home-panel[open]{height:var(--maps-expanded-height,calc(100dvh - 16px))!important;max-height:none!important;min-height:500px!important;overflow:hidden!important}
#mapsPanel[open] .maps-home-content{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
#mapsPanel[open] .inline-map-toolbar,#mapsPanel[open] .map-advanced-filters,#mapsPanel[open] .quality-map-filters,#mapsPanel[open] .quality-detection-report{flex:0 0 auto!important}
#mapsPanel[open] .map-color-legend{display:flex!important;grid-template-columns:none!important;min-height:30px!important;height:30px!important;max-height:30px!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;padding:3px 5px!important;margin:0 0 5px!important;gap:4px!important}
#mapsPanel[open] .map-color-legend span{flex:0 0 auto!important;padding:3px 6px!important;font-size:8.5px!important;background:#0b1d2a!important}
#mapsPanel[open] .inline-map-categories{flex:1 1 0!important;min-height:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;padding-bottom:max(90px,env(safe-area-inset-bottom))!important}
#mapCodeblockFilter:disabled{opacity:.58}
@media(max-width:520px){#mapsPanel.maps-home-panel[open]{min-height:480px!important}#mapsPanel[open] .map-color-legend{height:29px!important;min-height:29px!important;max-height:29px!important}}

/* v14.8.20 — case Maps fixe avec défilement interne, description juste après */
#mapsPanel.maps-home-panel[open]{
  height:var(--maps-expanded-height,calc(100dvh - 16px))!important;
  min-height:430px!important;
  max-height:none!important;
  overflow:hidden!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  height:calc(100% - var(--maps-summary-height,92px))!important;
  overflow:hidden!important;
}
#mapsPanel[open] .inline-map-toolbar,
#mapsPanel[open] .map-advanced-filters,
#mapsPanel[open] .quality-map-filters,
#mapsPanel[open] .quality-detection-report,
#mapsPanel[open] .map-color-legend{
  flex:0 0 auto!important;
}
#mapsPanel[open] .inline-map-categories{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  padding-bottom:18px!important;
}
#mapsPanel[open] .inline-map-category{overflow:visible!important}
@media(max-width:520px){
  #mapsPanel.maps-home-panel[open]{min-height:430px!important}
}
\n\n/* v14.8.21 — panneau Maps stable : hauteur fixe, scroll interne unique, aucun recalcul JS */
#mapsPanel.maps-home-panel[open]{
  height:clamp(560px,72dvh,820px)!important;
  min-height:0!important;
  max-height:820px!important;
  overflow:hidden!important;
  contain:layout paint!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  height:calc(100% - 92px)!important;
  min-height:0!important;
  overflow:hidden!important;
}
#mapsPanel[open] .inline-map-toolbar,
#mapsPanel[open] .map-advanced-filters,
#mapsPanel[open] .quality-map-filters,
#mapsPanel[open] .quality-detection-report,
#mapsPanel[open] .map-color-legend{flex:0 0 auto!important}
#mapsPanel[open] .inline-map-categories{
  flex:1 1 0!important;
  min-height:0!important;
  height:0!important;
  max-height:none!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding-bottom:22px!important;
  scrollbar-gutter:stable!important;
}
#mapsPanel[open] .inline-map-category{overflow:visible!important}
@media(max-width:520px){
 #mapsPanel.maps-home-panel[open]{height:68dvh!important;min-height:520px!important;max-height:720px!important}
 #mapsPanel[open] .maps-home-content{height:calc(100% - 88px)!important}
}

/* 14.8.22 — correction liste des maps sur iPhone/Safari */
#mapCategories{display:block!important;min-height:120px;overflow:visible!important;contain:none!important}
#mapCategories .map-category{display:block;visibility:visible;opacity:1;min-height:1px}
#mapCategories .map-item:not([hidden]){display:flex!important;visibility:visible;opacity:1}
#mapsPanel .maps-home-content{overflow:visible!important;min-height:0!important}
@media(max-width:700px){
 #mapCategories{width:100%;max-width:100%;}
 .quality-map-filters{display:flex;overflow-x:auto;max-width:100%;padding-bottom:6px;-webkit-overflow-scrolling:touch}
 .quality-map-filters>*{flex:0 0 auto}
}

/* v14.8.23 — zone réelle de la liste Maps agrandie (iPhone/Safari)
   La liste intégrée utilise sa propre hauteur au lieu d'être écrasée à 0 par les anciens calculs flex. */
#mapsPanel.maps-home-panel[open]{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  contain:none!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
#mapsPanel[open] #mapsInlineCategories.inline-map-categories{
  display:block!important;
  flex:0 0 clamp(520px,64dvh,780px)!important;
  width:100%!important;
  height:clamp(520px,64dvh,780px)!important;
  min-height:520px!important;
  max-height:780px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  overscroll-behavior-y:contain!important;
  padding:6px 3px max(28px,env(safe-area-inset-bottom)) 0!important;
  visibility:visible!important;
  opacity:1!important;
}
#mapsPanel[open] #mapsInlineCategories > .inline-map-category{
  display:block!important;
  width:100%!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:520px){
  #mapsPanel[open] #mapsInlineCategories.inline-map-categories{
    flex-basis:620px!important;
    height:620px!important;
    min-height:620px!important;
    max-height:620px!important;
  }
}

/* v14.8.24 — corpus intelligent local */
.corpus-learning-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0;padding:10px 12px;border:1px solid rgba(76,140,255,.35);border-radius:10px;background:linear-gradient(180deg,rgba(16,29,52,.95),rgba(9,18,34,.95));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.corpus-learning-bar>div:first-child{display:flex;flex-direction:column;min-width:0}.corpus-learning-bar strong{font-size:13px}.corpus-learning-bar small{opacity:.72;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.corpus-learning-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.corpus-learning-actions button{min-height:30px;padding:5px 9px;font-size:11px;border-radius:7px}
@media(max-width:700px){.corpus-learning-bar{align-items:stretch;flex-direction:column}.corpus-learning-actions{display:grid;grid-template-columns:1fr 1fr 1fr}.corpus-learning-actions button{width:100%;padding:7px 4px}}
/* 14.8.25 — laboratoire de validation portable */
#mapValidationLab{margin:10px 0;padding:10px;border:1px solid #35546b;border-radius:11px;background:linear-gradient(180deg,#0d1c27,#09131b);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.validation-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.validation-head strong{display:block;color:#e7f5ff;font-size:13px}.validation-head small,#validationStats{display:block;color:#86a9bf;font-size:9px;margin-top:3px}.validation-head span{font-size:9px;font-weight:900;border:1px solid #3e657e;border-radius:999px;padding:4px 7px;color:#a9d9f5;background:#102b3d}.validation-current{margin:8px 0 6px;color:#fff;font-size:11px;font-weight:800}#validationNote{width:100%;min-height:52px;resize:vertical;background:#050b10;color:#e9f5fc;border:1px solid #294557;border-radius:8px;padding:8px;font-size:10px}.validation-actions,.validation-portable{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.validation-actions button,.validation-portable button{border:1px solid #315268;background:#122432;color:#dff3ff;border-radius:7px;padding:7px 8px;font-size:9px;font-weight:800}.validation-actions button[data-v="validated"]{border-color:#25885d;background:#103a2a}.validation-actions button[data-v="corrected"]{border-color:#2b78af;background:#12344e}.validation-actions button[data-v="rejected"]{border-color:#a94545;background:#421919}.validation-actions button[data-v="review"]{border-color:#a77a28;background:#3b2b0f}.map-item.validation-validated,.inline-map-item.validation-validated{box-shadow:inset 4px 0 #35d487!important}.map-item.validation-corrected,.inline-map-item.validation-corrected{box-shadow:inset 4px 0 #3aa9ff!important}.map-item.validation-rejected,.inline-map-item.validation-rejected{opacity:.55;box-shadow:inset 4px 0 #ff4f4f!important}.map-item.validation-review,.inline-map-item.validation-review{box-shadow:inset 4px 0 #f1b63f!important}@media(max-width:520px){.validation-actions button,.validation-portable button{flex:1 1 30%;min-height:34px}}

/* v15.1 — Multimap EDC15P */
.mm-status{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #39404a;border-radius:12px;background:#181c22;margin-bottom:12px}.mm-status span{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#343b45}.mm-ready{border-color:#2c8b57}.mm-installed{border-color:#3478bf}.mm-blocked{border-color:#a64b4b}.mm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mm-grid article{background:#15191e;border:1px solid #303640;border-radius:10px;padding:10px}.mm-grid small,.mm-grid b{display:block}.mm-grid small{color:#939da9;margin-bottom:4px}.mm-details,.mm-warning{margin-top:12px;padding:12px;border-radius:10px;background:#15191e;border:1px solid #303640}.mm-warning{border-color:#865f28;color:#e3c58e}.mm-table>div{display:grid;grid-template-columns:90px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #303640}.mm-table b{font-size:11px}.mm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.mm-actions button:last-child{grid-column:1/-1}.mm-actions button:disabled{opacity:.38}.mm-actions button:nth-child(2){background:#a52424;color:white}@media(max-width:620px){.mm-grid{grid-template-columns:1fr}.mm-table>div{grid-template-columns:78px 1fr}.mm-table b{grid-column:2}.mm-actions{grid-template-columns:1fr}.mm-actions button:last-child{grid-column:auto}}


/* Multimap EDC15P V15.2 */
#lptMultimapPanel{display:grid;gap:14px;padding-bottom:24px}
.mm-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line,#343944);border-radius:12px;background:rgba(255,255,255,.035)}
.mm-status span{font-size:.72rem;font-weight:800;letter-spacing:.08em;padding:5px 9px;border-radius:999px;background:#3b414d}
.mm-ready span{background:#176b42}.mm-installed span{background:#285a8d}.mm-blocked span{background:#8d2d2d}.mm-none span{background:#5b6068}
.mm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mm-grid article{padding:12px;border:1px solid var(--line,#343944);border-radius:10px;background:rgba(255,255,255,.025);display:grid;gap:5px}
.mm-grid small{opacity:.7}.mm-grid b{font-size:.9rem;overflow-wrap:anywhere}
.mm-details,.mm-warning{padding:12px;border-radius:10px;background:rgba(255,255,255,.03);line-height:1.55}
.mm-warning{border:1px solid rgba(255,174,0,.35);background:rgba(255,174,0,.08)}
.mm-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mm-actions button{min-height:44px}
@media(max-width:700px){.mm-grid{grid-template-columns:1fr}.mm-actions{grid-template-columns:1fr}}

/* Multimap multi-HW 15.3 */
.mm-profiles article{display:flex;flex-direction:column;gap:4px}.mm-profiles article span{font-size:11px;opacity:.78}.mm-profile-active{outline:2px solid currentColor;outline-offset:-2px}

/* v15.5.4 — progression réelle du scan local */
#lptSmartScanProgress{position:fixed;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:99999;padding:14px 16px;border:1px solid rgba(29,132,255,.55);border-radius:16px;background:rgba(4,10,18,.96);box-shadow:0 14px 40px rgba(0,0,0,.5);color:#fff;opacity:0;transform:translateY(24px);pointer-events:none;transition:.22s ease;font-family:system-ui,-apple-system,sans-serif}#lptSmartScanProgress.visible{opacity:1;transform:none}.lpt-scan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.lpt-scan-head strong{font-size:14px}.lpt-scan-head span{font-variant-numeric:tabular-nums;color:#62adff;font-weight:800}.lpt-scan-track{height:10px;border-radius:99px;overflow:hidden;background:#111d2b;border:1px solid #20344a}.lpt-scan-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0878e8,#55b5ff);transition:width .18s linear}.lpt-scan-track+small{display:block;margin-top:8px;color:#9db3c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(display-mode:standalone){html,body{min-height:100%;overscroll-behavior:none}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}

/* =========================================================
   LA PERFORMANCE TUNER — PORTRAIT NEON THEME 16.7.0
   Visual layer only: preserves all existing IDs and logic.
   ========================================================= */
:root{
  --lp-bg:#02070d;
  --lp-bg2:#06101a;
  --lp-panel:#081522;
  --lp-panel2:#0b1b2a;
  --lp-line:#17334d;
  --lp-line2:#23547b;
  --lp-text:#eef7ff;
  --lp-muted:#8ea6bd;
  --lp-blue:#1685ff;
  --lp-blue2:#52adff;
  --lp-green:#20d875;
  --lp-red:#ff3d49;
  --lp-purple:#9b52ef;
  --lp-amber:#ffb92f;
  --lp-cyan:#22c9e9;
  --lp-radius:18px;
  color-scheme:dark;
}
html,body{background:radial-gradient(circle at 50% -10%,#0a2340 0,#030a12 34%,#010409 75%);color:var(--lp-text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(21,112,214,.07),transparent 28%),radial-gradient(circle at 85% 15%,rgba(0,120,255,.08),transparent 25%);z-index:-1}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.editor-app{max-width:100%;padding-bottom:104px;background:transparent}
.app-header{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(150px,.9fr);gap:10px 16px;padding:22px 18px 14px;background:linear-gradient(180deg,rgba(2,9,17,.98),rgba(3,11,20,.94));border-bottom:1px solid rgba(52,131,199,.25)}
.brand-zone{min-width:0;align-self:center}.pro-brand{margin:0;font-size:clamp(23px,6vw,36px);font-weight:950;font-style:italic;line-height:.92;letter-spacing:-1.3px;text-shadow:0 0 24px rgba(27,132,255,.22)}
.pro-brand span{display:block}.pro-brand .brand-accent{color:#1685ff;margin-top:8px}
.ecu-header-card{align-self:center;justify-self:end;width:auto;max-width:100%;padding:0;border:0;background:none;box-shadow:none;text-align:left}
.ecu-header-card strong{color:var(--lp-blue2);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ecu-header-card small{display:grid;gap:3px;color:#9fb3c7;font-size:12px;margin-top:5px}
.header-actions{grid-column:1/-1;display:flex;justify-content:center;gap:12px;margin-top:5px}
.icon-action,.header-actions .icon-action{width:58px;height:58px;border:1px solid #173956;border-radius:15px;background:linear-gradient(180deg,#0b1826,#06111d);color:white;font-size:24px;box-shadow:inset 0 1px rgba(255,255,255,.035),0 9px 24px rgba(0,0,0,.22)}
.icon-action:active{transform:scale(.96);background:#10243a}
.main-nav{position:sticky;top:0;z-index:35;display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));overflow-x:auto;scrollbar-width:none;padding:0 10px;background:rgba(2,8,15,.96);border-bottom:1px solid #17334b;border-top:1px solid #102b43;backdrop-filter:blur(18px)}
.main-nav::-webkit-scrollbar{display:none}.main-nav button{min-width:86px;height:84px;border:0;border-right:1px solid rgba(42,78,108,.35);border-radius:0;background:transparent;color:#9eb0c1;font-size:11px;font-weight:750;letter-spacing:.6px;display:grid;place-items:center;align-content:center;gap:8px}.main-nav button span{font-size:24px}.main-nav button.active{color:#fff;background:linear-gradient(180deg,rgba(18,103,203,.58),rgba(7,45,86,.72));box-shadow:inset 0 -3px #1685ff,inset 0 0 28px rgba(29,133,255,.25)}
.secondary-actions{display:flex;gap:10px;overflow:auto;padding:12px 16px;background:#030a12;border-bottom:1px solid #102a40;scrollbar-width:none}.secondary-actions::-webkit-scrollbar{display:none}.secondary-actions button{flex:0 0 auto;min-height:46px;padding:0 17px;border:1px solid #21425f;border-radius:13px;background:linear-gradient(180deg,#0e1d2c,#07131f);color:#f4f8fc;font-weight:700}.secondary-actions button:nth-child(2){color:#55aaff;border-color:#185a9b;background:linear-gradient(180deg,#0b2a55,#081a31)}
main{padding:14px 16px 26px;max-width:1100px;margin:auto}
.panel,.power-accordion,.map-display-panel{border:1px solid #183851!important;border-radius:var(--lp-radius)!important;background:linear-gradient(145deg,rgba(9,23,36,.98),rgba(4,14,23,.98))!important;box-shadow:inset 0 1px rgba(255,255,255,.035),0 12px 35px rgba(0,0,0,.2)!important;overflow:hidden;margin:0 0 14px!important}
.power-accordion>summary,.panel>summary{min-height:110px;padding:22px 24px!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:13px;list-style:none;cursor:pointer}.power-accordion>summary::-webkit-details-marker{display:none}.power-accordion>summary span,.panel>summary span{color:#55aaff!important;font-size:28px!important;font-weight:850!important;letter-spacing:-.7px}.power-accordion>summary small,.panel>summary small{color:#91a7bc!important;font-size:17px!important;line-height:1.4}
details[open]>summary{border-bottom:1px solid rgba(44,93,132,.42);background:linear-gradient(90deg,rgba(17,91,166,.1),transparent)}
.project-content,.mappack-accordion-content,.maps-home-content,.power-accordion-content,.hex-inline-content{padding:15px!important}
.inline-map-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr);gap:10px;padding:4px 0 14px}.inline-map-toolbar input,.inline-map-toolbar select{height:48px;border:1px solid #1a3851;border-radius:13px;background:#040d16;color:#eaf4ff;padding:0 14px}.inline-map-toolbar label{grid-column:1/-1;color:#a6b8ca}
.inline-map-categories{display:grid;gap:12px}.inline-map-categories>*{border-radius:16px}
/* cards generated by the maps renderer */
.inline-map-categories button,.inline-map-categories .map-card,.inline-map-categories li{border:1px solid #14334c!important;background:linear-gradient(180deg,#0c1c2b,#091724)!important;color:#eff7ff!important;border-radius:15px!important;box-shadow:none!important}
.map-category-header,.category-header{background:#071520!important;color:#dcecff!important;border-color:#17354d!important}
.badge,.confidence-badge,[class*="confidence"]{border-radius:9px}
.editor-head{padding:18px!important;background:linear-gradient(180deg,#0d1c2b,#07131f)!important;border-bottom:1px solid #18354e}.editor-head h2{font-size:23px;color:#fff}.editor-head p{color:#90a7bd}
.map-display-panel>summary span{font-size:25px!important}.view-launchers{display:grid!important;grid-template-columns:repeat(3,1fr);gap:9px}.view-launchers button{min-height:54px;border:1px solid #17456f;border-radius:12px;background:#092440;color:#4ca8ff;font-weight:750}
input,select,textarea{border:1px solid #1d3d58!important;background:#040c14!important;color:#eef7ff!important;border-radius:12px!important}textarea{padding:12px}
.mappack-actions,.dialog-actions{gap:10px}.mappack-actions button,.dialog-actions button,.tabs button{border:1px solid #214560;border-radius:12px;background:#0a1926;color:#eaf4ff;min-height:46px}
.primary-action{background:linear-gradient(180deg,#117cff,#0754ca)!important;border-color:#1888ff!important;color:white!important}
button.danger,.danger{background:#4a1118!important;border-color:#b72b38!important;color:#ffdadd!important}
/* validation colors */
#confirmMapBtn,.validation-confirm,.btn-validate{background:#0c4a30!important;border-color:#1fa963!important}#correctMapBtn,.validation-correct{background:#0d426d!important;border-color:#2588da!important}#rejectMapBtn,.validation-reject{background:#56171b!important;border-color:#d04148!important}
/* dialogs */
dialog{width:min(94vw,720px);max-height:88dvh;border:1px solid #244c69!important;border-radius:22px!important;background:#06111c!important;color:#eef7ff!important;box-shadow:0 24px 90px #000!important}dialog::backdrop{background:rgba(0,3,8,.8);backdrop-filter:blur(6px)}
/* project home */
.project-home{min-height:100dvh;padding:34px 16px 100px;background:radial-gradient(circle at 50% 0,#0a2341 0,#020911 33%,#010408 78%)}.project-home-hero{min-height:150px;display:flex;align-items:center}.home-brand h1{font-style:italic;font-weight:950;letter-spacing:-1.4px}.home-brand h1 span{display:block}.home-brand h1 span:last-child{color:#1685ff}.home-action-card,.home-continue,.home-recent{border:1px solid #193954!important;border-radius:18px!important;background:linear-gradient(145deg,#0a1b2a,#06111c)!important}.home-action-card{min-height:132px}.home-action-icon{color:#4ba8ff}.home-project-dialog{background:#06111c}
/* persistent mobile dock */
.lp-mobile-dock{display:none}
@media(max-width:700px){
  body{font-size:15px}.app-header{padding-top:max(18px,env(safe-area-inset-top))}.pro-brand{font-size:25px}.ecu-header-card strong{font-size:14px}.ecu-header-card small{font-size:11px}
  main{padding:14px 14px 22px}.power-accordion>summary,.panel>summary{min-height:104px;padding:20px!important}.power-accordion>summary span,.panel>summary span{font-size:25px!important}.power-accordion>summary small,.panel>summary small{font-size:16px!important}
  .inline-map-toolbar{grid-template-columns:1fr}.inline-map-toolbar label{grid-column:auto}
  .project-detail-row,.calc-grid,.form-grid{grid-template-columns:1fr 1fr!important}
  .lp-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));height:76px;padding:5px 6px;z-index:100;border:1px solid #173a57;border-radius:18px;background:rgba(5,16,27,.96);box-shadow:0 18px 50px #000, inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(20px)}
  .lp-mobile-dock button{height:62px;border:0;background:transparent;color:#8fa5ba;display:grid;place-items:center;align-content:center;gap:3px;font-size:10px}.lp-mobile-dock button span{font-size:22px}.lp-mobile-dock button.active{color:#2e94ff}.lp-mobile-dock .lp-plus{width:62px;height:62px;margin:-20px auto 0;border-radius:50%;font-size:36px;color:white;background:linear-gradient(180deg,#126fe4,#082a65);border:1px solid #168cff;box-shadow:0 0 30px rgba(22,132,255,.3)}
}
@media(min-width:701px){.project-home,.editor-app{max-width:1120px;margin:auto}.maps-home-panel .inline-map-categories{grid-template-columns:1fr 1fr}}

/* =========================================================
   16.7.1 — PORTRAIT IPHONE REBUILD
   Recomposition réelle de l'interface mobile, sans modifier les moteurs.
   ========================================================= */
@media (max-width:700px){
  html,body{width:100%;overflow-x:hidden;background:#020812!important}
  body{padding:0!important}
  .editor-app{padding-bottom:96px!important}
  .app-header{position:relative!important;display:grid!important;grid-template-columns:1fr auto!important;gap:8px 12px!important;padding:18px 16px 12px!important;min-height:190px!important;border:0!important;background:radial-gradient(circle at 80% 15%,rgba(18,112,255,.17),transparent 28%),linear-gradient(180deg,#030b15,#020811)!important}
  .brand-zone{align-self:start!important;padding-top:6px}.pro-brand{font-size:25px!important;line-height:.92!important;max-width:300px}.pro-brand .brand-accent{margin-top:7px!important}
  .ecu-header-card{align-self:start!important;max-width:185px!important;padding-top:5px!important}.ecu-header-card strong{display:block!important;font-size:14px!important;max-width:180px}.ecu-header-card small{font-size:10px!important}
  .header-actions{grid-column:1/-1!important;gap:10px!important;margin:10px auto 0!important}.icon-action,.header-actions .icon-action{width:52px!important;height:52px!important;border-radius:14px!important;font-size:21px!important}
  .main-nav{position:relative!important;top:auto!important;display:grid!important;grid-template-columns:repeat(6,1fr)!important;width:100%!important;padding:0!important;overflow:visible!important;border:1px solid #173752!important;border-left:0!important;border-right:0!important;background:#020a13!important}
  .main-nav button{min-width:0!important;width:auto!important;height:70px!important;padding:8px 2px!important;font-size:8px!important;letter-spacing:.3px!important;gap:5px!important}.main-nav button span{font-size:19px!important}.main-nav button.active{background:linear-gradient(180deg,rgba(20,107,211,.56),rgba(7,42,80,.72))!important}
  .secondary-actions{padding:10px 14px!important;gap:8px!important}.secondary-actions button{min-height:42px!important;padding:0 14px!important;border-radius:12px!important;font-size:12px!important}
  main{padding:14px 14px 26px!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;align-items:start!important}
  main>.panel,main>.workspace{margin:0!important;min-width:0!important}
  #projectPanel,#mappackPanel,#mapsPanel,#hexPanel{grid-column:auto!important}
  #powerAccordion,.workspace.editor-only{grid-column:1/-1!important}
  .power-accordion>summary,.panel>summary{min-height:132px!important;padding:18px 16px!important;gap:10px!important}.power-accordion>summary span,.panel>summary span{font-size:22px!important;line-height:1.05!important}.power-accordion>summary small,.panel>summary small{font-size:12px!important;line-height:1.45!important}
  #mapsPanel{grid-column:1/-1!important}
  #mapsPanel>summary{min-height:104px!important}
  #mapsPanel[open]>summary{border-bottom:1px solid #17334d!important}
  .maps-home-content{padding:12px!important}.inline-map-toolbar{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important}.inline-map-toolbar input{grid-column:1/-1!important;height:43px!important}.inline-map-toolbar select{height:40px!important;font-size:12px!important}.inline-map-toolbar label{font-size:11px!important;align-self:center!important}
  #mapsInlineCategories{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;display:grid!important;gap:10px!important}
  .inline-map-category,.map-category{border:0!important;background:transparent!important}
  .map-category-header,.category-header{min-height:42px!important;border-radius:12px!important;padding:10px 12px!important}
  .inline-map-item,.map-item,.inline-map-categories button,.inline-map-categories li{min-height:72px!important;border-radius:15px!important;padding:12px 13px!important;margin:0!important;background:linear-gradient(180deg,#0b1b2a,#071522)!important;border:1px solid #173650!important;box-shadow:inset 4px 0 var(--map-color,#2f94ff)!important}
  .inline-map-item strong,.map-item strong{font-size:14px!important}.inline-map-item small,.map-item small{font-size:10px!important;color:#91a8bd!important}
  #mapValidationLab{grid-column:1/-1!important;margin:0 0 10px!important;border-radius:16px!important;padding:14px!important}.validation-actions,.validation-portable{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.validation-actions button,.validation-portable button{min-height:44px!important;font-size:11px!important}
  #hexPanel,#projectPanel,#mappackPanel{overflow:hidden!important}
  .workspace.editor-only{display:block!important}
  .map-display-panel>summary{min-height:100px!important}
  .lp-mobile-dock{left:14px!important;right:14px!important;height:68px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;border-radius:20px!important;padding:3px 7px!important}.lp-mobile-dock button{height:56px!important}.lp-mobile-dock .lp-plus{width:58px!important;height:58px!important;margin:-16px auto 0!important}
  #lpt-checksum-button,#lpt-reliability-button{position:static!important;inset:auto!important;width:100%!important;min-height:48px!important;border-radius:13px!important;padding:10px 12px!important;font-size:12px!important;box-shadow:none!important}
  .lpt-mobile-quick-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr 1fr!important;gap:9px!important;padding:12px!important;border:1px solid #173850!important;border-radius:17px!important;background:linear-gradient(145deg,#091824,#05101a)!important}
  .lpt-mobile-quick-actions h3{grid-column:1/-1!important;margin:0 0 2px!important;color:#4da7ff!important;font-size:15px!important}
  .lpt-mobile-quick-actions button{min-width:0!important}
}


/* v16.8.2 — thème iPhone premium stable, CSS uniquement */
html,body{min-height:100%;background:#020812!important;color:#edf6ff!important}
html.lpt-loading body:before{content:"LA PERFORMANCE\A TUNER";white-space:pre;position:fixed;inset:0;display:grid;place-items:center;text-align:center;font-weight:950;font-style:italic;font-size:30px;line-height:1;color:#eef6ff;background:radial-gradient(circle at 50% 5%,#0b2d55,#020812 42%);z-index:999999}
.project-home,.editor-app{visibility:visible!important;opacity:1!important}
@media(max-width:700px){
 body{background:radial-gradient(circle at 50% -10%,rgba(24,103,207,.18),transparent 35%),#020812!important}
 .project-home{padding:calc(24px + env(safe-area-inset-top)) 14px calc(92px + env(safe-area-inset-bottom))!important;background:transparent!important}
 .project-home-hero{min-height:110px!important}
 .home-brand h1{font-size:31px!important;line-height:.95!important}
 .home-primary-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
 .home-action-card{min-height:150px!important;padding:15px!important;border-radius:16px!important;background:linear-gradient(145deg,#091a2a,#06111b)!important;border:1px solid #173a57!important}
 .home-action-icon{width:48px!important;height:48px!important;font-size:28px!important;margin-bottom:13px!important}
 .home-action-card strong{font-size:15px!important}.home-action-card small{font-size:11px!important}
 .app-header{background:rgba(3,11,19,.96)!important;border-bottom:1px solid #153a58!important;box-shadow:0 8px 30px rgba(0,0,0,.35)!important}
 .pro-brand{font-size:22px!important}.ecu-header-card{border:1px solid #183b58!important;background:#071522!important;border-radius:13px!important}
 .editor-app main{padding:10px 10px 96px!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
 #projectPanel,#mappackPanel,#hexPanel,#powerAccordion{grid-column:auto!important;border:1px solid #173a56!important;border-radius:16px!important;background:linear-gradient(145deg,#091a28,#06111b)!important;overflow:hidden!important}
 #projectPanel>summary,#mappackPanel>summary,#hexPanel>summary,#powerAccordion>summary{min-height:126px!important;padding:15px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:7px!important}
 #projectPanel>summary span,#mappackPanel>summary span,#hexPanel>summary span,#powerAccordion>summary span{font-size:17px!important;color:#f5f9ff!important}
 #projectPanel>summary small,#mappackPanel>summary small,#hexPanel>summary small,#powerAccordion>summary small{font-size:10px!important;color:#8da5ba!important;line-height:1.4!important}
 #projectPanel[open],#mappackPanel[open],#hexPanel[open],#powerAccordion[open],#mapsPanel,.workspace.editor-only,#mapValidationLab{grid-column:1/-1!important}
 #mapsPanel{border:1px solid #173a56!important;border-radius:17px!important;background:#06111b!important;overflow:hidden!important}
 #mapsPanel[open] #mapsInlineCategories.inline-map-categories{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;display:block!important}
 .inline-map-item,.map-item{min-height:66px!important;border-radius:12px!important;background:#0a1927!important;border:1px solid #12314a!important;padding:10px 12px!important;box-shadow:inset 3px 0 var(--map-color,#2d91ff)!important}
 .map-category-header,.category-header{background:#071522!important;border-bottom:1px solid #15344e!important;color:#dcecff!important}
 #lpt-checksum-button,#lpt-reliability-button{position:static!important;inset:auto!important;transform:none!important;width:100%!important;box-shadow:none!important}
 .lp-mobile-dock{display:grid!important;grid-template-columns:repeat(5,1fr)!important;position:fixed!important;left:10px!important;right:10px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;height:66px!important;padding:4px!important;border-radius:18px!important;background:rgba(4,14,24,.98)!important;border:1px solid #173a56!important;box-shadow:0 14px 40px rgba(0,0,0,.6)!important;z-index:9999!important}
 .lp-mobile-dock button{height:56px!important;font-size:9px!important}.lp-mobile-dock .lp-plus{width:58px!important;height:58px!important;margin:-15px auto 0!important;border-radius:50%!important;background:linear-gradient(180deg,#167cff,#083c91)!important;border:1px solid #4aa8ff!important;font-size:32px!important}
}
/* 16.9.0 — précision puissance, codeblocks et panneaux réductibles */
.power-precision-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.power-precision-bar label{display:flex;flex-direction:column;gap:6px;color:#91a7bc;font-size:12px}.power-precision-bar select,#mapCodeblockFilter{min-height:42px;border:1px solid #21445f;border-radius:10px;background:#071522;color:#eaf5ff;padding:8px 10px}.inline-map-toolbar{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) minmax(150px,1fr) auto!important}
#corpusLearningBar,#mapValidationLab{position:relative}#corpusLearningBar>summary,#mapValidationLab>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;color:#dceeff;font-weight:800}#corpusLearningBar>summary::-webkit-details-marker,#mapValidationLab>summary::-webkit-details-marker{display:none}.collapsible-body{padding:0 12px 12px}
@media(max-width:700px){.power-precision-bar{grid-template-columns:1fr}.inline-map-toolbar{grid-template-columns:1fr 1fr!important}.inline-map-toolbar>input{grid-column:1/-1}.inline-map-toolbar>label{grid-column:1/-1}}

/* v16.9.5.7 — sélecteurs de fichiers natifs Safari/iOS */
.native-picker-card{display:block;cursor:pointer;overflow:hidden;box-sizing:border-box}.card-native-file{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer!important;pointer-events:auto!important;font-size:100px!important;z-index:20!important}.native-picker-card>*:not(.card-native-file){pointer-events:none}.native-picker-card:active{transform:scale(.985)}
/* v16.9.5.8 — boutons d'accueil natifs, sans champ fichier superposé */
#homeNewProject,#homeOpenFile{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  text-align:left;
  color:inherit;
  font:inherit;
  cursor:pointer;
  touch-action:manipulation;
  position:relative;
  z-index:1;
}
#homeNewProject:disabled,#homeOpenFile:disabled{opacity:.65;pointer-events:none}

/* v16.9.5.9 — sélecteurs iOS natifs, sans ouverture JavaScript */
.home-native-picker{display:block;cursor:pointer;overflow:hidden;box-sizing:border-box;-webkit-tap-highlight-color:rgba(22,140,255,.22);touch-action:manipulation}
.home-native-picker>input[type=file]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;z-index:50!important;pointer-events:auto!important;cursor:pointer!important;font-size:120px!important}
.home-native-picker>*:not(input[type=file]){pointer-events:none!important}
.home-native-picker:active{transform:scale(.985)}
/* 16.9.7.2 — contrôles DAMOS ↔ ORI dans le diagnostic iPhone */
#lptDamosOnlyControls{margin:12px 14px;padding:13px;border:1px solid rgba(96,165,250,.35);border-radius:14px;background:rgba(15,23,42,.92);color:#e5eefc}
.lpt-damos-mode-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}.lpt-damos-mode-row strong{display:block;font-size:14px}.lpt-damos-mode-row small{display:block;color:#9fb0c8;font-size:11px;margin-top:3px;line-height:1.35}#lptDamosOnlyBadge{flex:none;background:#0f766e;color:#ecfeff;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:800}#lptDamosOnlyBadge.off{background:#334155;color:#e2e8f0}.lpt-damos-switch{display:flex;align-items:center;gap:10px;padding:10px;border-radius:11px;background:#0b1220}.lpt-damos-switch input{position:absolute;opacity:0}.lpt-damos-switch span{width:42px;height:24px;border-radius:99px;background:#475569;position:relative;flex:none;transition:.2s}.lpt-damos-switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:white;border-radius:50%;transition:.2s}.lpt-damos-switch input:checked+span{background:#14b8a6}.lpt-damos-switch input:checked+span:after{transform:translateX(18px)}.lpt-damos-switch b{font-size:12px;line-height:1.3}#lptDamosOnlyRun{width:100%;margin-top:10px;border:0;border-radius:10px;padding:11px;background:#2563eb;color:white;font-weight:800}
/* 16.9.7.4 — Corpus et laboratoire réservés au mode développeur */
html:not(.lpt-developer-mode) #corpusLearningBar,
html:not(.lpt-developer-mode) #mapValidationLab{display:none!important}
#lptDeveloperModeToggle:not(:checked)~b{opacity:.8}
#lptGoogleDriveDamos{margin:12px 0;border:1px solid #24506d;border-radius:14px;background:#071521}#lptGoogleDriveDamos>summary{padding:14px;cursor:pointer;font-weight:800;color:#eaf6ff}.lpt-drive-body{padding:0 14px 14px;display:grid;gap:10px}.lpt-drive-body label{display:grid;gap:5px;color:#bcd0df;font-size:13px}.lpt-drive-body input{min-height:42px;border:1px solid #29465b;border-radius:10px;background:#03101a;color:#fff;padding:8px 10px}.lpt-drive-actions{display:flex;gap:8px;flex-wrap:wrap}.lpt-drive-actions button{min-height:40px}.lpt-drive-files{max-height:300px;overflow:auto;border:1px solid #203d51;border-radius:10px;padding:6px}.lpt-drive-file{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:10px!important;padding:9px;border-bottom:1px solid #132b3b}.lpt-drive-file input{min-height:auto}.lpt-drive-file span{display:grid}.lpt-drive-file small{color:#7895aa}.lpt-drive-note{font-size:12px;color:#7895aa;margin:0}#lptDriveStatus[data-type=error]{color:#ff7b7b}#lptDriveStatus[data-type=ok]{color:#5ce29a}#lptDriveStatus[data-type=warn]{color:#ffc66d}
/* 16.9.7.61 — carte ECU plus compacte sur mobile. */
@media (max-width:760px){
  .ecu-header-card{
    width:min(154px,36vw)!important;
    min-width:0!important;
    max-width:154px!important;
    min-height:70px!important;
    padding:7px 8px!important;
    border-radius:12px!important;
  }
  .ecu-header-card strong{font-size:13px!important;line-height:1.1!important}
  .ecu-header-card small{font-size:9px!important;margin-top:4px!important;gap:1px!important}
  .lp-mobile-dock button[data-lpt-mobile="settings"]{font-size:8.5px!important}
}

/* 16.9.7.62 — format ECU minimal, trois lignes conservées. */
@media (max-width:760px){
  .ecu-header-card{
    width:min(126px,31vw)!important;
    max-width:126px!important;
    min-height:58px!important;
    padding:5px 6px!important;
    border-radius:10px!important;
  }
  .ecu-header-card strong{font-size:11px!important;line-height:1!important}
  .ecu-header-card small{font-size:7.5px!important;line-height:1.05!important;margin-top:3px!important;gap:0!important}
}

/* --- style.css --- */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{background:#080808}body{margin:0;background:radial-gradient(circle at top,#242424,#080808 48%);color:#f5f5f5;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}button,input{font:inherit}.topbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:20px max(16px,env(safe-area-inset-left));border-bottom:1px solid #303030;background:linear-gradient(#191919,#0a0a0a);position:sticky;top:0;z-index:5}.topbar h1{margin:0;font-size:28px;letter-spacing:3px}.topbar p{margin:3px 0 0;color:#7e7e7e;font-size:12px}.open-file,.toolbar button,.map-tools button,.selection-bar button,.tabs button,#addMapPackBtn{border:0;border-radius:12px;background:linear-gradient(135deg,#0095ff,#0052d9);color:#fff;font-weight:750;padding:12px 14px;min-height:44px}.open-file input{position:absolute;opacity:0;width:1px;height:1px}.toolbar{display:flex;gap:8px;overflow:auto;padding:10px 14px;background:#0d0d0d;border-bottom:1px solid #292929;position:sticky;top:85px;z-index:4}.toolbar button{flex:0 0 auto;background:#1d1d1d;border:1px solid #353535}main{max-width:1450px;margin:auto;padding:14px}.panel{background:linear-gradient(145deg,#1d1d1d,#101010);border:1px solid #303030;border-radius:18px;padding:16px;margin-bottom:14px;box-shadow:0 12px 32px #0008}.panel h2{margin:0;color:#4da3ff;font-size:18px}.info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.info-grid div{background:#080808;border:1px solid #282828;border-radius:12px;padding:10px}.info-grid span{display:block;color:#777;font-size:11px;text-transform:uppercase}.info-grid strong{display:block;margin-top:4px;font:13px ui-monospace,monospace;word-break:break-word}.workspace{display:grid;grid-template-columns:320px 1fr;gap:14px}.panel-head,.editor-head,.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:10px}.panel-head input{background:#090909;color:#fff;border:1px solid #333;border-radius:10px;padding:10px;width:170px}.map-category h3{font-size:13px;color:#aaa;margin:14px 0 7px;display:flex;justify-content:space-between}.map-category h3 span{background:#282828;border-radius:99px;padding:1px 7px}.map-item{width:100%;text-align:left;background:#111;color:#fff;border:1px solid #303030;border-radius:12px;padding:12px;margin:5px 0}.map-item strong,.map-item small{display:block}.map-item small{color:#888;margin-top:4px}.active-map{border-color:#159bff;box-shadow:0 0 0 1px #159bff inset}.editor-head p{color:#8b8b8b;font:12px ui-monospace,monospace;margin:5px 0 0}.badge{border-radius:99px;background:#292929;padding:7px 10px;font-size:12px}.confirmee{background:#0b5932}.probable{background:#3c4b0d}.candidate{background:#593c0b}.map-tools{display:grid;grid-template-columns:repeat(9,1fr);gap:6px;margin:14px 0}.map-tools button{background:#222;border:1px solid #383838;padding:8px;font-size:12px}.selection-bar{background:#090909;border:1px solid #292929;border-radius:12px;padding:8px 10px}.selection-bar button{min-height:34px;padding:6px 10px;background:#222;border:1px solid #3a3a3a}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:12px 0}.tabs button{background:#1f1f1f;border:1px solid #353535}.tabs .active-view{background:linear-gradient(135deg,#0095ff,#0052d9);border-color:#168fff}.map-grid-wrap{overflow:auto;max-height:560px;border:1px solid #303030;border-radius:12px;-webkit-overflow-scrolling:touch}.map-grid{border-collapse:collapse;background:#080808;min-width:900px}.map-grid td{border:1px solid #242424;padding:2px}.map-grid td.selected{outline:2px solid #11a8ff;outline-offset:-2px}.map-grid td.modified input{color:#57ff8a}.map-grid input{width:68px;background:#111;color:#fff;border:0;padding:10px 4px;text-align:center;font-size:12px}canvas{display:block;width:100%;height:auto;max-height:520px;background:#050505;border:1px solid #303030;border-radius:12px}#hexArea pre{overflow:auto;max-height:550px;padding:12px;background:#050505;border:1px solid #303030;border-radius:12px;color:#b9e3ff;font:11px ui-monospace,monospace;line-height:1.5}#mappackList{list-style:none;padding:0}#mappackList li{background:#101010;border:1px solid #303030;border-radius:10px;padding:10px;margin-top:7px}#mappackList small{display:block;color:#888;margin-top:3px}.compare-panel #compareResult{margin-top:12px;background:#080808;border:1px solid #282828;border-radius:12px;padding:12px;font-family:ui-monospace,monospace}.empty{color:#777}footer{text-align:center;color:#666;padding:28px;font-size:12px}@media(max-width:900px){.workspace{grid-template-columns:1fr}.maps-panel{max-height:380px;overflow:auto}.map-tools{grid-template-columns:repeat(3,1fr)}.info-grid{grid-template-columns:repeat(2,1fr)}.topbar{position:relative}.toolbar{top:0}.panel-head{align-items:flex-start;flex-direction:column}.panel-head input{width:100%}}@media(max-width:520px){.topbar{padding-top:max(16px,env(safe-area-inset-top));align-items:flex-start;flex-direction:column}.open-file{width:100%;text-align:center}.editor-head{align-items:flex-start;flex-direction:column}.map-tools{grid-template-columns:repeat(3,1fr)}main{padding:10px}.panel{padding:13px;border-radius:15px}}

.head-actions{display:flex;gap:7px}.head-actions button,#exportCsvBtn,.danger{border:1px solid #3a3a3a;border-radius:10px;background:#202020;color:#fff;padding:9px 12px;font-weight:700}.danger{border-color:#6b2929;background:#331515}.toggle-line{display:flex;gap:8px;align-items:center;color:#aaa;font-size:12px;margin:10px 0}.modified-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#55e58a;margin-right:6px}.compare-map{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;background:#0b0b0b;border:1px solid #2d2d2d;border-radius:11px;padding:10px;margin-top:8px}.compare-map small{color:#888}.compare-map button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:7px 9px}dialog{width:min(720px,calc(100vw - 24px));border:1px solid #3a3a3a;border-radius:18px;background:#111;color:#fff;padding:0;box-shadow:0 24px 80px #000}dialog::backdrop{background:#000b}.dialog-head,.dialog-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px;border-bottom:1px solid #2b2b2b}.dialog-actions{border-top:1px solid #2b2b2b;border-bottom:0;justify-content:flex-end}.dialog-head h2{margin:0;color:#4da3ff}.icon-btn{border:0;background:transparent;color:#fff;font-size:20px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.form-grid label{font-size:12px;color:#aaa}.form-grid input,.form-grid select{display:block;width:100%;margin-top:6px;background:#080808;color:#fff;border:1px solid #363636;border-radius:9px;padding:11px}.estimate{margin:0 16px 16px;padding:12px;background:#08111b;border:1px solid #174a72;border-radius:11px;color:#a9d8ff;font:12px ui-monospace,monospace}.dialog-actions button{border:1px solid #3b3b3b;border-radius:10px;background:#222;color:#fff;padding:11px 14px}.dialog-actions #saveMapDefinition{background:linear-gradient(135deg,#0095ff,#0052d9);border:0}.map-axis-head{position:sticky;top:0;background:#161616!important;color:#73baff!important;font-weight:700}.map-row-head{position:sticky;left:0;background:#161616!important;color:#73baff!important;font-weight:700;min-width:42px}.original-value{display:block;color:#777;font-size:9px;margin-top:2px}.map-item.modified-map{border-left:3px solid #55e58a}@media(max-width:520px){.form-grid{grid-template-columns:1fr}.compare-map{grid-template-columns:1fr auto}.compare-map small{grid-column:1/-1}}

.map-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.map-stat{background:#090909;border:1px solid #2d2d2d;border-radius:10px;padding:9px}.map-stat span{display:block;color:#777;font-size:10px;text-transform:uppercase}.map-stat strong{display:block;margin-top:4px;font:12px ui-monospace,monospace}.axis-unit{display:block;color:#666;font-size:9px}.map-grid .map-axis-head,.map-grid .map-row-head{white-space:nowrap}.clipboard-ready{border-color:#159bff!important;box-shadow:0 0 0 1px #159bff inset}.checksum-note{color:#ffca6b}@media(max-width:700px){.map-stats{grid-template-columns:repeat(2,1fr)}}

.profile-select{display:flex;align-items:center;gap:6px;color:#aaa;font-size:12px}.profile-select select{background:#171717;color:#eee;border:1px solid #333;border-radius:8px;padding:7px}.selection-bar{flex-wrap:wrap}.selection-bar button{min-height:34px}

/* LP TUNE 2.7 — fenêtres de travail */
.editor-only{display:block}.editor-only .editor-panel{min-height:62vh}.tool-window{width:min(520px,calc(100vw - 20px));max-width:none;height:min(78vh,760px);padding:0;border:1px solid #3c3c3c;border-radius:16px;background:#111;color:#fff;box-shadow:0 28px 90px #000d;overflow:hidden}.tool-window.wide-window{width:min(820px,calc(100vw - 20px))}.tool-window::backdrop{background:#000a;backdrop-filter:blur(3px)}.window-shell{display:flex;flex-direction:column;height:100%;min-height:0}.window-titlebar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:linear-gradient(#202020,#121212);border-bottom:1px solid #333;flex:0 0 auto}.window-titlebar h2{margin:0;color:#4da3ff;font-size:18px}.window-titlebar small{display:block;color:#777;margin-top:3px}.window-close{width:40px;height:40px;border-radius:10px;border:1px solid #3a3a3a;background:#1c1c1c;color:#fff;font-size:18px}.window-content{padding:14px;overflow:auto;-webkit-overflow-scrolling:touch;min-height:0}.window-content .panel-head{margin-bottom:8px}.window-content .panel-head input{width:100%}.window-content #mapCategories{padding-bottom:20px}.toolbar #mapsWindowBtn,.toolbar #mappackWindowBtn,.toolbar #compareWindowBtn{background:linear-gradient(135deg,#0d5d98,#173b75);border-color:#297bbb}.tool-window #mappackList li{display:flex;align-items:center;justify-content:space-between;gap:10px}.tool-window #mappackList li>div{flex:1;cursor:pointer}.tool-window #mappackList button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:8px 10px}.tool-window #compareResult{margin:12px 0;background:#080808;border:1px solid #282828;border-radius:12px;padding:12px;font-family:ui-monospace,monospace}.window-content .danger{margin-bottom:4px}.window-empty-state{display:grid;place-items:center;min-height:220px;color:#777;text-align:center}.quick-hint{color:#777;font-size:12px;margin:8px 0 0}
@media(max-width:700px){.tool-window,.tool-window.wide-window{width:100vw;height:calc(100dvh - env(safe-area-inset-top));max-height:none;border-radius:16px 16px 0 0;margin:auto 0 0 0}.window-titlebar{padding-top:max(14px,env(safe-area-inset-top))}.window-content{padding-bottom:max(18px,env(safe-area-inset-bottom))}.toolbar{scroll-snap-type:x proximity}.toolbar button{scroll-snap-align:start}.editor-only .editor-panel{min-height:70vh}}

/* LP TUNE 2.8 calculators */
.calc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.calc-grid label{display:flex;flex-direction:column;gap:6px;color:#aaa;font-size:.86rem}.calc-grid input,.calc-grid select{background:#111;border:1px solid #333;color:#eee;border-radius:9px;padding:11px;min-width:0}.primary-action{width:100%;padding:12px;margin:4px 0 14px}.result-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.result-card{background:#111;border:1px solid #292929;border-radius:11px;padding:13px}.result-card small{display:block;color:#888;margin-bottom:5px}.result-card strong{font-size:1.15rem}.calc-canvas{width:100%;height:230px;background:#0d0d0d;border:1px solid #292929;border-radius:11px;margin-top:14px}.calc-warning{color:#b7a56b;font-size:.8rem;line-height:1.4}.conversion-results{display:grid;gap:9px;margin-top:12px}.conversion-row{display:grid;grid-template-columns:110px 1fr;gap:10px;background:#111;border:1px solid #292929;border-radius:9px;padding:10px}.conversion-row code{white-space:pre-wrap;word-break:break-all;color:#8dd7ff}@media(max-width:700px){.calc-grid{grid-template-columns:1fr}.result-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.conversion-row{grid-template-columns:85px 1fr}}

/* v3.4 — calculateur simplifié */
.simple-calc-grid{grid-template-columns:repeat(2,minmax(0,1fr));padding:2px}.advanced-calc{margin:4px 0 14px;border:1px solid #2f2f2f;border-radius:12px;background:#0b0b0b;overflow:hidden}.advanced-calc summary,.result-details summary{cursor:pointer;list-style:none;padding:13px 14px;color:#9dcbff;font-weight:700}.advanced-calc summary::-webkit-details-marker,.result-details summary::-webkit-details-marker{display:none}.advanced-calc-grid{padding:0 14px 14px;margin:0}.simple-actions{display:grid;grid-template-columns:1fr 1.4fr;gap:10px;margin:8px 0 14px}.simple-actions button{border:1px solid #3b3b3b;border-radius:10px;background:#202020;color:#fff;padding:12px;font-weight:750}.simple-actions .primary-action{margin:0;background:linear-gradient(135deg,#0095ff,#0052d9);border:0}.simple-results{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-results>.hero-result{border-color:#176da9;background:linear-gradient(145deg,#10253a,#0c1117)}.hero-result strong{font-size:1.55rem;color:#78c8ff}.result-card em{display:block;color:#777;font-size:.75rem;margin-top:4px;font-style:normal}.result-details{grid-column:1/-1;border:1px solid #2b2b2b;border-radius:12px;background:#0a0a0a}.detail-results{padding:0 12px 12px;grid-template-columns:repeat(3,minmax(0,1fr))}.warning-card{border-color:#7c4b18;background:#2b1c0b}@media(max-width:700px){.simple-calc-grid{grid-template-columns:1fr 1fr}.advanced-calc-grid{grid-template-columns:1fr 1fr}.detail-results{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.simple-calc-grid,.advanced-calc-grid{grid-template-columns:1fr}.simple-actions{grid-template-columns:1fr}.simple-results{grid-template-columns:1fr 1fr}.hero-result strong{font-size:1.35rem}}

/* v3.5 — calculateur dépliant et outils de map contextuels */
.power-accordion{padding:0;overflow:hidden}.power-accordion>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none}.power-accordion>summary::-webkit-details-marker{display:none}.power-accordion>summary span{color:#4da3ff;font-weight:800;font-size:18px}.power-accordion>summary small{color:#777}.power-accordion[open]>summary{border-bottom:1px solid #303030}.power-accordion-content{padding:16px}.map-edit-panel{margin:12px 0;border:1px solid #303030;border-radius:12px;background:#0b0b0b}.map-edit-panel>summary{padding:12px 14px;color:#9dcbff;font-weight:800;cursor:pointer;list-style:none}.map-edit-panel>summary::-webkit-details-marker{display:none}.map-edit-panel .map-tools{padding:0 10px}.map-edit-panel .selection-bar{margin:0 10px 10px}.three-actions{grid-template-columns:1fr 1fr 1.25fr}.compact-estimate{margin:0 0 12px}.curve-editor{border:1px solid #2c2c2c;border-radius:12px;background:#090909;margin-top:12px}.curve-editor>summary{padding:12px 14px;color:#9dcbff;font-weight:750;cursor:pointer}.curve-table{padding:0 12px 12px}.curve-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:7px}.curve-row input{width:100%;background:#111;color:#fff;border:1px solid #333;border-radius:8px;padding:9px}.curve-head{color:#777;font-size:11px;text-transform:uppercase}.curve-legend{display:flex;gap:16px;justify-content:center;margin-top:8px;font-size:12px}.legend-power{color:#248dff}.legend-torque{color:#ff3b3b}.torque-result{border-color:#9c2b2b!important;background:linear-gradient(145deg,#351313,#130b0b)!important}.torque-result strong{color:#ff6868!important}
@media(max-width:700px){.three-actions{grid-template-columns:1fr}.power-accordion>summary{align-items:flex-start;flex-direction:column}.curve-row{grid-template-columns:1fr 1fr 1fr}}

/* v3.6 — éditeur d’axes et vues refermables */
.axis-edit-panel{margin-top:10px;border-top:1px solid var(--line,#303030);padding-top:8px}.axis-edit-panel summary{cursor:pointer;font-weight:700}.axis-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.axis-editor-grid section{background:#111;border:1px solid #303030;border-radius:12px;padding:12px}.axis-editor-grid h3{margin:0 0 8px}.axis-editor-grid label{display:grid;gap:5px;margin-top:8px;font-size:.85rem}.axis-editor-grid textarea{width:100%;box-sizing:border-box;resize:vertical;background:#080808;color:#eee;border:1px solid #3a3a3a;border-radius:8px;padding:9px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.axis-actions,.axis-save-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.axis-save-row{justify-content:space-between}.axis-save-row span{color:#aaa;font-size:.82rem}.closed-view-message{padding:26px;text-align:center;color:#999;border:1px dashed #3a3a3a;border-radius:12px;margin-top:10px}.tabs button.active-view:after{content:" ×";opacity:.7}.tabs button{position:relative}
@media(max-width:720px){.axis-editor-grid{grid-template-columns:1fr}.axis-save-row .primary-action{width:100%}}

.axis-memory{margin-top:10px;border:1px solid #30343a;border-radius:10px;background:#101216}.axis-memory>summary{padding:9px 11px;cursor:pointer;color:#b9c8d8}.axis-memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px}.axis-memory-grid label{font-size:12px}.axis-memory-grid input,.axis-memory-grid select{width:100%}.axis-bin-known{color:#63d88b!important}.axis-bin-partial{color:#ffcc66!important}.axis-bin-unknown{color:#9aa4af!important}@media(max-width:700px){.axis-memory-grid{grid-template-columns:1fr}}

/* v3.7.1 — édition directe des axes, sans modification de l’interface */
.editable-axis{cursor:pointer;user-select:none}.editable-axis:active{filter:brightness(1.35);outline:1px solid #4da3ff;outline-offset:-1px}

/* v3.7.2 — saisie tactile directe des axes */
.editable-axis{cursor:text;touch-action:manipulation;-webkit-user-select:none;user-select:none}
.axis-inline-input{width:100%;min-width:64px;box-sizing:border-box;border:2px solid #2d8cff!important;border-radius:5px;background:#07182b!important;color:#fff!important;font:inherit;text-align:center;padding:8px 4px!important;outline:none;-webkit-appearance:none;appearance:none}
.axis-inline-input:focus{box-shadow:0 0 0 3px rgba(45,140,255,.25)}

.editor-head-actions{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap}.editor-head-actions button{padding:.45rem .7rem}.compare-toolbar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:.8rem}.file-pick{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .75rem;border:1px solid #29445b;border-radius:8px;background:#0d1a25}.file-pick input{max-width:180px}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem}.analysis-grid article{background:#0b1620;border:1px solid #20394d;border-radius:10px;padding:1rem}.analysis-grid h3{margin-top:0;color:#7cc7ff}.analysis-wide{grid-column:1/-1}.dialog-actions.compact{justify-content:flex-start;margin:.4rem 0}.curve-legend .legend-power{color:#4aa8ff}.curve-legend .legend-torque{color:#ff5656}
/* v3.9 */
.project-panel{display:block}.project-file-card{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid #293744;border-radius:10px;background:#0d151d;margin-bottom:10px;min-width:0}.project-file-card span,.project-detail-row span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#7890a5}.project-file-card strong{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-detail-row{display:grid;grid-template-columns:minmax(120px,.8fr) minmax(180px,1.5fr) minmax(110px,.7fr) minmax(110px,.7fr) minmax(130px,.8fr);gap:8px}.project-detail-row>div{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid #24313d;border-radius:8px;background:#0a1118;min-width:0}.project-detail-row strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-ecu-wide{min-width:0}
.hex-toolbar{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px;background:#0b1219;border:1px solid #283745;border-radius:8px 8px 0 0}.hex-toolbar label{display:flex;align-items:center;gap:5px;color:#9eb1c2;font-size:12px}.hex-toolbar input{width:120px}.hex-toolbar span{margin-left:auto;color:#7790a5;font:11px ui-monospace,monospace}.hex-editor{overflow:auto;max-height:62vh;border:1px solid #283745;border-top:0;background:#05090d;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.hex-row{display:grid;grid-template-columns:86px minmax(520px,1fr) 140px;align-items:center;min-height:27px;border-bottom:1px solid #111b24}.hex-row:hover{background:#0b141d}.hex-address{border:0;background:transparent;color:#58a9ef;text-align:right;padding:4px 10px 4px 4px;font:inherit}.hex-bytes{display:grid;grid-template-columns:repeat(16,32px);gap:1px;padding:2px 6px}.hex-byte{width:30px;height:23px;padding:0;border:1px solid transparent;border-radius:3px;background:transparent;color:#d0dbe5;font:inherit}.hex-byte:hover,.hex-byte:focus{border-color:#3188ca;background:#10283a}.hex-byte.in-map{background:#153047;color:#8ed0ff}.hex-byte.changed{background:#183f2c;color:#71e5a2}.hex-byte-input{width:30px;height:23px;padding:0;text-align:center;border:1px solid #4ea5e6;border-radius:3px;background:#0d2231;color:#fff;font:inherit}.hex-ascii{color:#8296a8;white-space:pre;padding-left:8px}.hex-empty{display:inline-block;width:30px}
@media(max-width:760px){.project-detail-row{grid-template-columns:1fr 1fr}.project-ecu-wide{grid-column:1/-1}.hex-row{grid-template-columns:76px minmax(520px,1fr) 130px}.hex-editor{max-height:58vh}.hex-toolbar span{width:100%;margin-left:0}.project-file-card strong{font-size:14px}}

/* v3.9.1 — projet, vues et tableau */
.project-detail-row{grid-template-columns:minmax(110px,.75fr) minmax(120px,.8fr) minmax(180px,1.45fr) minmax(105px,.65fr) minmax(105px,.65fr) minmax(125px,.75fr)}
.map-stats{grid-template-columns:repeat(4,1fr)}
.map-grid-wrap{max-width:100%;background:#070b0f}
.map-grid{min-width:max-content;table-layout:fixed}
.map-grid td{padding:0;min-width:62px;height:42px}
.map-grid input{width:100%;min-width:62px;height:40px;padding:5px 4px;font-size:13px;font-variant-numeric:tabular-nums;background:#0c1218;border-radius:0}
.map-grid input:focus{outline:2px solid #168cff;outline-offset:-2px;background:#112236}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:68px;padding:7px 6px;text-align:center;background:#121b24;color:#c7d8e8;font:600 11px ui-monospace,SFMono-Regular,Menlo,monospace;position:sticky;z-index:2}
.map-grid .map-axis-head{top:0}
.map-grid .map-row-head{left:0}
.map-grid tr:first-child td:first-child{left:0;top:0;z-index:4}
.original-value{display:block;padding:1px 3px 3px;text-align:center;font-size:8px;color:#768899;background:#091018}
.tabs button{cursor:pointer;touch-action:manipulation}
@media(max-width:760px){.project-detail-row{grid-template-columns:1fr 1fr}.map-grid td{min-width:58px}.map-grid input{min-width:58px;font-size:12px}.map-stats{grid-template-columns:repeat(2,1fr)}}

/* v3.9.2 — HEX séparé, projet repliable, grille compacte */
.project-panel{padding:0;overflow:hidden}
.project-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;cursor:pointer;list-style:none;color:#4da3ff;font-weight:800}
.project-summary::-webkit-details-marker{display:none}
.project-summary small{color:#75889a;font-size:11px;font-weight:500}
.project-panel[open] .project-summary{border-bottom:1px solid #2b3945}
.project-content{padding:14px 16px 16px}
.hex-window{width:min(1180px,calc(100vw - 18px))}
.hex-window .window-shell{max-height:92vh}
.hex-window .window-content{padding:12px;overflow:hidden}
.map-tabs{grid-template-columns:repeat(3,1fr)}
.map-grid td{min-width:48px;height:36px}
.map-grid input{min-width:48px;height:34px;padding:3px 2px;font-size:11px}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:54px;padding:5px 3px;font-size:10px}
#closeMapBtn{background:#251416;border:1px solid #68343b;color:#ff9ba6;border-radius:8px}
@media(max-width:760px){
  .map-grid td{min-width:44px;height:34px}
  .map-grid input{min-width:44px;height:32px;font-size:10px}
  .map-grid .map-axis-head,.map-grid .map-row-head{min-width:50px;font-size:9px}
  .project-summary{padding:13px}
  .project-content{padding:10px}
}

/* 16.9.7.50 — titre de la map sélectionnée plus compact. */
.editor-head #mapTitle{
  max-width:100%!important;
  font-size:clamp(16px,4.5vw,20px)!important;
  line-height:1.22!important;
  font-weight:750!important;
  letter-spacing:-.01em!important;
  overflow-wrap:anywhere!important;
}
@media(max-width:520px){
  .editor-head #mapTitle{font-size:17px!important;line-height:1.25!important}
}

/* 16.9.7.52 — logo d'en-tête intégré comme une icône. */
@media(max-width:760px){
  .app-header .brand-zone{display:flex!important;align-items:center!important;justify-content:center!important;padding:0!important;overflow:visible!important}
  .app-header .lpt-header-logo{
    display:block!important;
    width:112px!important;
    height:112px!important;
    max-width:112px!important;
    padding:3px!important;
    object-fit:cover!important;
    object-position:center!important;
    border:1px solid rgba(40,145,255,.55)!important;
    border-radius:25px!important;
    background:linear-gradient(145deg,#071524,#020711)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 0 22px rgba(18,126,255,.22)!important;
    filter:none!important;
  }
}
@media(max-width:390px){.app-header .lpt-header-logo{width:102px!important;height:102px!important;max-width:102px!important;border-radius:23px!important}}

/* 16.9.7.53 — centrage vertical précis du bouton Home. */
@media(max-width:760px){.lp-mobile-dock .lp-plus{transform:translateY(12px)!important}}

/* 16.9.7.48 — nouveau logo LPT dans l'application, l'accueil et la connexion. */
.lpt-header-logo{
  display:block!important;
  width:min(270px,48vw)!important;
  height:92px!important;
  max-width:100%!important;
  object-fit:contain!important;
  object-position:left center!important;
  border-radius:18px!important;
  filter:drop-shadow(0 0 16px rgba(22,132,255,.22));
}
.home-brand img{
  display:block;
  width:min(310px,72vw);
  height:auto;
  border-radius:24px;
  filter:drop-shadow(0 0 24px rgba(22,132,255,.22));
}
.lpt-auth-logo{
  display:block!important;
  width:76px!important;
  height:76px!important;
  padding:0!important;
  object-fit:cover!important;
  border-radius:20px!important;
  box-shadow:0 0 0 4px rgba(33,140,255,.15),0 0 24px rgba(22,132,255,.28)!important;
}
@media(max-width:760px){
  .lpt-header-logo{width:min(250px,52vw)!important;height:86px!important;border-radius:16px!important}
  .home-brand img{width:min(260px,72vw);border-radius:21px}
}

/* 16.9.7.48 — identification ECU parfaitement centrée dans sa carte. */
@media(max-width:760px){
  .ecu-header-card{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    justify-self:end!important;
    width:min(190px,42vw)!important;
    min-height:84px!important;
    box-sizing:border-box!important;
    padding:9px 10px!important;
    text-align:center!important;
  }
  .ecu-header-card strong{
    display:block!important;
    width:100%!important;
    max-width:100%!important;
    margin:0!important;
    text-align:center!important;
    line-height:1.15!important;
  }
  .ecu-header-card small{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    width:100%!important;
    margin:5px 0 0!important;
    gap:2px!important;
    text-align:center!important;
    line-height:1.2!important;
  }
  .ecu-header-card small span{display:block!important;width:100%!important;text-align:center!important}
  .lp-mobile-dock .lp-plus{transform:translateY(12px)!important}
}


/* v3.9.3 — tableau compact, HEX continu et panneaux repliables */
.project-panel.power-accordion{padding:0;overflow:hidden}
.project-panel.power-accordion>summary{border-radius:inherit}
.project-panel.power-accordion[open]>summary{border-bottom:1px solid #2b3945}
.project-panel .project-content{padding:14px 16px 16px}
.map-display-panel{margin-top:12px;border:1px solid #293744;border-radius:12px;background:#090e13;overflow:hidden}
.map-display-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;color:#9dcbff;font-weight:800}
.map-display-panel>summary::-webkit-details-marker{display:none}
.map-display-panel>summary small{color:#75889a;font-size:11px;font-weight:500}
.map-display-panel[open]>summary{border-bottom:1px solid #293744}
.map-display-content{padding:10px}
.map-grid td{min-width:40px;height:32px}
.map-grid input{min-width:40px;height:30px;padding:2px 1px;font-size:10px}
.map-grid .map-axis-head,.map-grid .map-row-head{min-width:46px;padding:4px 2px;font-size:9px}
.hex-continuous{position:relative;height:68vh;overflow:auto;border:1px solid #283745;border-top:0;background:#05090d;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;overscroll-behavior:contain}
.hex-virtual-spacer{position:relative;min-width:780px}
.hex-visible-rows{position:absolute;top:0;left:0;right:0;will-change:transform}
.hex-row.continuous-row{display:grid;grid-template-columns:86px minmax(560px,1fr) 145px;align-items:center;border-bottom:1px solid #111b24;box-sizing:border-box}
.hex-values{display:grid;gap:2px;padding:2px 6px;align-items:center}
.hex-values.bits-8{grid-template-columns:repeat(16,minmax(30px,1fr))}
.hex-values.bits-16{grid-template-columns:repeat(8,minmax(58px,1fr))}
.hex-values.bits-32{grid-template-columns:repeat(4,minmax(112px,1fr))}
.hex-values.base-bin.bits-8{grid-template-columns:repeat(16,minmax(68px,1fr))}
.hex-values.base-bin.bits-16{grid-template-columns:repeat(8,minmax(132px,1fr))}
.hex-values.base-bin.bits-32{grid-template-columns:repeat(4,minmax(260px,1fr))}
.hex-value{height:23px;padding:0 3px;border:1px solid transparent;border-radius:3px;background:transparent;color:#d0dbe5;font:inherit;white-space:nowrap}
.hex-value:hover,.hex-value:focus{border-color:#3188ca;background:#10283a}
.hex-value.in-map{background:#153047;color:#8ed0ff}.hex-value.changed{background:#183f2c;color:#71e5a2}
.hex-value-input{width:100%;height:23px;padding:0 3px;text-align:center;border:1px solid #4ea5e6;border-radius:3px;background:#0d2231;color:#fff;font:inherit;box-sizing:border-box}
.hex-empty-value{display:block;height:23px}
@media(max-width:760px){
 .map-grid td{min-width:36px;height:30px}.map-grid input{min-width:36px;height:28px;font-size:9px}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:42px;font-size:8px}
 .map-display-panel>summary{align-items:flex-start;flex-direction:column}
 .hex-continuous{height:70vh}.hex-row.continuous-row{grid-template-columns:76px minmax(560px,1fr) 130px}
}

/* v3.9.4 — vues de map en grandes fenêtres indépendantes */
.map-view-window{width:min(98vw,1500px);height:min(94vh,1000px)}
.map-view-window .window-shell{height:100%;display:flex;flex-direction:column}
.map-view-window .window-content{flex:1;min-height:0;overflow:auto}
.map-window-content{padding:10px}
#tableWindowArea{min-width:0;overflow:auto;height:100%}
.large-view-area{height:calc(94vh - 100px);min-height:520px}
.large-view-area canvas{width:100%!important;height:100%!important;max-height:none!important;display:block}
.view-launchers{display:flex;gap:8px;flex-wrap:wrap}
.view-launchers button{min-width:120px}
.hex-visible-rows{transform:none!important;will-change:top}
@media(max-width:760px){.map-view-window{width:100vw;height:100dvh;max-width:none;max-height:none;border-radius:0}.large-view-area{height:calc(100dvh - 90px);min-height:420px}.map-window-content{padding:5px}}

/* v3.9.5 — Mappack sous Projet, grille plus compacte et HEX réellement relié au BIN */
.mappack-panel{margin-top:-4px}.mappack-accordion-content{padding-top:12px}.mappack-actions{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px}.mappack-actions button{border:1px solid #35516b;border-radius:10px;background:#132638;color:#fff;padding:9px 11px;font-weight:700}.mappack-panel #mappackList{margin:0}.mappack-panel #mappackList li{display:flex;align-items:center;justify-content:space-between;gap:8px}.mappack-panel #mappackList li>div{flex:1;min-width:0;cursor:pointer}.mappack-panel #mappackList button{border:1px solid #3b3b3b;background:#1e1e1e;color:#fff;border-radius:8px;padding:7px 9px}
.map-grid td{min-width:30px!important;width:30px!important;height:27px!important}.map-grid input{min-width:30px!important;width:30px!important;height:25px!important;padding:1px!important;font-size:8.5px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:36px!important;width:36px!important;padding:2px 1px!important;font-size:7.5px!important}.map-grid-wrap{max-height:72vh}.map-grid input[data-digits="long"]{font-size:7.5px!important}
.hex-visible-rows{position:relative!important;top:auto!important;left:auto!important;right:auto!important;transform:none!important;will-change:auto!important;min-width:780px}.hex-scroll-spacer{width:1px;pointer-events:none}.hex-continuous{overflow:auto;contain:strict}.hex-row.continuous-row{min-width:780px}
@media(max-width:760px){.map-grid td{min-width:28px!important;width:28px!important}.map-grid input{min-width:28px!important;width:28px!important;font-size:8px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:34px!important;width:34px!important;font-size:7px!important}.mappack-actions button{flex:1 1 45%}}

/* Animation du titre — discrète et optimisée mobile */
.brand-block{min-width:0}
.animated-brand{position:relative;display:inline-block;overflow:hidden;background:linear-gradient(100deg,#f7f7f7 0%,#f7f7f7 36%,#55b8ff 48%,#ffffff 54%,#f7f7f7 66%,#f7f7f7 100%);background-size:260% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 0 rgba(0,149,255,0));animation:brandIntro .72s cubic-bezier(.2,.8,.2,1) both,brandSweep 4.8s ease-in-out 1s infinite,brandGlow 3.2s ease-in-out 1.2s infinite;will-change:transform,background-position,filter}
.animated-brand span:last-child{color:#4da3ff;-webkit-text-fill-color:#4da3ff;text-shadow:0 0 14px rgba(77,163,255,.28)}
.animated-brand::after{content:"";position:absolute;inset:0 auto 0 -35%;width:22%;transform:skewX(-18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:titleShine 4.8s ease-in-out 1s infinite;pointer-events:none}
@keyframes brandIntro{0%{opacity:0;transform:translateY(-8px) scale(.97);letter-spacing:8px}100%{opacity:1;transform:none;letter-spacing:3px}}
@keyframes brandSweep{0%,60%,100%{background-position:100% 0}20%,38%{background-position:0 0}}
@keyframes titleShine{0%,58%,100%{left:-35%;opacity:0}12%{opacity:.8}30%{left:118%;opacity:0}}
@keyframes brandGlow{0%,100%{filter:drop-shadow(0 0 0 rgba(0,149,255,0))}50%{filter:drop-shadow(0 0 7px rgba(0,149,255,.28))}}
@media(max-width:520px){.animated-brand{font-size:25px;letter-spacing:2px}.animated-brand span{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){.animated-brand,.animated-brand::after{animation:none!important}.animated-brand{background:#f7f7f7;-webkit-background-clip:text;background-clip:text}.animated-brand span:last-child{color:#4da3ff;-webkit-text-fill-color:#4da3ff}}

/* =========================================================
   V4.0 — Interface portrait iPhone inspirée de la maquette
   ========================================================= */
:root{--bg:#05080c;--panel:#0b1118;--panel2:#0e1620;--line:#233242;--blue:#2d9cff;--blue2:#75c5ff;--text:#ecf4fb;--muted:#8294a5;--green:#57e26f}
*{box-sizing:border-box}
html,body{background:radial-gradient(circle at 50% -15%,#102235 0,#071019 34%,#04070a 72%);color:var(--text)}
body{margin:0;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;padding-bottom:env(safe-area-inset-bottom)}
button,input,select,textarea{font:inherit}
.app-header{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"boot boot" "brand ecu" "actions actions";gap:10px;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;background:linear-gradient(180deg,#071019,#05090d);border-bottom:1px solid #243343;box-shadow:0 8px 28px rgba(0,0,0,.38);overflow:hidden}
.app-header:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--blue),transparent);opacity:.7}
.boot-sequence{grid-area:boot;display:grid;gap:2px;padding:7px 9px;border:1px solid #183a2c;border-radius:9px;background:#050b08;color:var(--green);font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.2px;max-height:96px;overflow:hidden;transition:max-height .45s ease,opacity .45s ease,padding .45s ease,border-width .45s ease}
.boot-sequence.done{max-height:0;opacity:0;padding-top:0;padding-bottom:0;border-width:0}
.boot-sequence span{opacity:.12;transform:translateX(-4px);transition:.25s ease}
.boot-sequence span.on{opacity:1;transform:none}.boot-sequence span.ok{color:#8aff9c}
.boot-progress{height:3px;background:#102017;border-radius:99px;overflow:hidden;margin-top:4px}.boot-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#24c84d,#79ff95);box-shadow:0 0 10px #45e56a;transition:width .35s ease}
.brand-zone{grid-area:brand;min-width:0;padding-top:2px}.pro-brand{margin:0;font-size:clamp(20px,6.3vw,31px);font-style:italic;font-weight:900;letter-spacing:.8px;line-height:1.04;color:#f4f7fa;text-shadow:0 2px 0 #68717a,0 0 18px rgba(70,160,255,.22);white-space:nowrap}.brand-zone p{margin:5px 0 0;color:#cbd6df;font-size:10px;letter-spacing:1.25px}
.ecu-header-card{grid-area:ecu;align-self:center;text-align:right;padding-left:8px;border-left:1px solid #263442;min-width:90px}.ecu-header-card strong{display:block;color:var(--blue2);font-size:14px}.ecu-header-card small{display:block;color:#b7c3ce;font-size:9px;margin-top:3px;white-space:nowrap}
.header-actions{grid-area:actions;display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.icon-action{height:42px;border:1px solid #293b4c;border-radius:10px;background:linear-gradient(#101923,#0a1118);color:#eaf4ff;display:grid;place-items:center;font-size:19px}.icon-action:active{transform:scale(.97);background:#12283a}.open-file{position:relative;overflow:hidden}.open-file input{position:absolute;inset:0;opacity:0;width:100%;height:100%}
.main-nav{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:#081019;border-bottom:1px solid #203143;box-shadow:0 8px 18px rgba(0,0,0,.35)}.main-nav button{min-width:0;height:54px;padding:6px 2px;border:0;border-right:1px solid #1a2836;background:transparent;color:#c5d2de;font-size:8px;font-weight:750;letter-spacing:.35px}.main-nav button span{display:block;color:#a8bed0;font-size:19px;line-height:21px;margin-bottom:3px}.main-nav button.active,.main-nav button:active{color:#fff;background:linear-gradient(180deg,#12263a,#0b1723);box-shadow:inset 0 -2px var(--blue)}.main-nav button.active span{color:var(--blue)}
.secondary-actions{display:flex;gap:7px;overflow-x:auto;padding:9px 12px;background:#070c12;border-bottom:1px solid #1d2b38;scrollbar-width:none}.secondary-actions::-webkit-scrollbar{display:none}.secondary-actions button{flex:0 0 auto;border:1px solid #2a3c4d;border-radius:8px;background:#0d1721;color:#dbe7f1;padding:8px 11px;font-size:11px;font-weight:700}
main{padding:10px;max-width:820px;margin:0 auto}.panel,.power-accordion,.editor-panel{background:linear-gradient(180deg,rgba(14,22,31,.98),rgba(8,13,19,.98));border:1px solid #223344;border-radius:12px;box-shadow:0 8px 22px rgba(0,0,0,.24)}
.power-accordion>summary,.map-display-panel>summary,.axis-edit-panel>summary,.map-edit-panel>summary{background:linear-gradient(90deg,#0c1a27,#0a121a);color:#48a8ff;border-radius:11px 11px 0 0}.power-accordion>summary span,.map-display-panel>summary span{font-weight:850;letter-spacing:.3px}.power-accordion>summary small,.map-display-panel>summary small{color:#71869a}
.project-file-card{background:#05090d;border:1px solid #263849;border-radius:9px;padding:12px}.project-detail-row>div{background:#080e14;border:1px solid #1e2e3c;border-radius:9px;padding:9px}.project-detail-row span,.project-file-card span{color:#74899b;text-transform:uppercase;font-size:9px;letter-spacing:.7px}.project-detail-row strong,.project-file-card strong{color:#edf5fc}
.editor-panel{padding:0;overflow:hidden}.editor-head{padding:13px 14px;background:linear-gradient(90deg,#0b1722,#080f16);border-bottom:1px solid #213141}.editor-head h2{font-size:17px;margin:0;color:#fff}.editor-head p{font-size:10px;color:#7e93a6;margin-top:4px}.badge{border:1px solid #31516a;background:#102338;color:#89c9ff}
.view-launchers{display:grid!important;grid-template-columns:repeat(3,1fr);gap:6px!important}.view-launchers button{min-width:0!important;border:1px solid #294158;border-radius:9px;background:#0d1a26;color:#d5e5f2;padding:10px 4px;font-size:11px;font-weight:800}.view-launchers button:active{background:#173653;color:#fff}
.tool-window{padding:0;border:1px solid #304457;border-radius:14px;background:#070c12;color:#eef6fd;box-shadow:0 24px 80px rgba(0,0,0,.7)}.tool-window::backdrop{background:rgba(0,4,8,.78);backdrop-filter:blur(5px)}.window-shell{background:linear-gradient(180deg,#0b121a,#060a0f)}.window-titlebar{background:linear-gradient(90deg,#0e2030,#08131d);border-bottom:1px solid #284159}.window-titlebar h2{color:#f5f9fc}.window-titlebar small{color:#8396a7}.window-close{background:#122130!important;border:1px solid #344b5e!important;color:#fff!important}
.mapsDialog{}.panel-head input,#mapSearch{width:100%;background:#05090d;border:1px solid #2a4155;color:#fff;border-radius:9px;padding:11px}.toggle-line{color:#91a3b4;font-size:11px}
#mapCategories{display:grid;gap:10px;margin-top:10px}.map-category{border:1px solid #223548;border-radius:11px;overflow:hidden;background:#080e14}.map-category h3{position:sticky;top:0;z-index:2;margin:0;padding:10px 12px;background:linear-gradient(90deg,#102438,#0a1722);color:#57b2ff;font-size:12px;text-transform:uppercase;letter-spacing:.7px}.map-category h3 span{float:right;border:1px solid #31546e;border-radius:20px;padding:1px 7px;color:#cce8ff}.map-item{width:100%;display:grid;grid-template-columns:1fr auto;text-align:left;gap:3px 8px;padding:10px 12px;border:0;border-top:1px solid #172532;background:#080e14;color:#eef5fb}.map-item strong{font-size:12px}.map-item small{grid-column:1/-1;color:#758b9f;font:9px ui-monospace,SFMono-Regular,Menlo,monospace}.map-item:active,.map-item.active-map{background:#10283d;box-shadow:inset 3px 0 var(--blue)}.modified-map strong{color:#79e3a1}
.map-grid-wrap{border:1px solid #26394a;border-radius:9px;background:#05090d}.map-grid{border-collapse:collapse}.map-grid td{border:1px solid #162532}.map-grid input{background:#081018;color:#dbe9f4}.map-grid input:focus{background:#12304a}.map-grid .map-axis-head,.map-grid .map-row-head{background:#101d28;color:#80c6ff}
.calc-grid label,.form-grid label{color:#889caf}.calc-grid input,.form-grid input,.form-grid select,.form-grid textarea{background:#05090e;border:1px solid #283c4f;color:#fff;border-radius:8px}.result-card{background:#080f16;border:1px solid #213649}.hero-result strong{color:#4daaff}.torque-result strong{color:#ff6161}
footer{color:#4f6273;text-align:center;font-size:9px;padding:20px 10px}
@media(max-width:430px){main{padding:8px}.pro-brand{font-size:21px}.brand-zone p{font-size:8.5px}.ecu-header-card strong{font-size:12px}.ecu-header-card small{font-size:8px}.secondary-actions{padding-left:8px;padding-right:8px}.secondary-actions button{font-size:10px;padding:7px 9px}.project-detail-row{grid-template-columns:1fr 1fr!important}.tool-window,.map-view-window,.hex-window{width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;border-radius:0!important}.window-titlebar{padding-top:calc(10px + env(safe-area-inset-top))}.window-content{padding-bottom:calc(12px + env(safe-area-inset-bottom))}.map-grid td{min-width:27px!important;width:27px!important}.map-grid input{min-width:27px!important;width:27px!important;font-size:7.7px!important}.map-grid .map-axis-head,.map-grid .map-row-head{min-width:33px!important;width:33px!important}}

/* v4.0.1 — finitions navigation, identité et classification couleur */
.pro-brand{display:flex;align-items:baseline;gap:.28em;flex-wrap:wrap}
.pro-brand .brand-accent{color:#248dff;text-shadow:0 0 18px rgba(36,141,255,.3)}
.main-nav button{transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease}
.main-nav button.active,.main-nav button.nav-selected{background:linear-gradient(180deg,#123b67,#0c2747)!important;border-color:#248dff!important;color:#fff!important;box-shadow:0 0 0 1px rgba(36,141,255,.35) inset,0 0 18px rgba(36,141,255,.28);transform:translateY(-1px)}
.main-nav button.active span,.main-nav button.nav-selected span{color:#55b3ff;filter:drop-shadow(0 0 5px rgba(36,141,255,.8))}
.checksum-note{color:#ff9f2f!important;background:rgba(255,159,47,.1);border:1px solid rgba(255,159,47,.35);border-radius:7px;padding:3px 7px;display:inline-block}
.checksum-note.checksum-valid{color:#52dc88!important;background:rgba(82,220,136,.1);border-color:rgba(82,220,136,.4)}
.checksum-note.checksum-invalid{color:#ff5a5f!important;background:rgba(255,90,95,.1);border-color:rgba(255,90,95,.4)}
.map-color-legend{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:0 0 8px;font-size:10px;color:#8d99a6}
.map-color-legend span{padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.08)}
.legend-low{background:#123f69;color:#a9d8ff}.legend-mid{background:#79620f;color:#fff1a3}.legend-high{background:#7b2528;color:#ffd0d2}
.map-grid td.data-heat-cell{transition:filter .12s ease,box-shadow .12s ease}
.map-grid td.data-heat-cell:hover{filter:brightness(1.16)}
.map-grid td.data-heat-cell input{background:transparent!important;color:#fff;text-shadow:0 1px 2px #000;font-weight:700}
.map-grid td.data-heat-cell.heat-dark input{color:#e9f5ff}
.map-grid td.data-heat-cell.heat-light input{color:#101820;text-shadow:none}
.map-grid td.selected{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #248dff!important;outline:0!important}
.map-grid td.modified{box-shadow:inset 0 -3px 0 #5cff91}
.map-item[data-color-category="limiters"]{border-left:4px solid #ff6b57}
.map-item[data-color-category="injection"]{border-left:4px solid #9b7bff}
.map-item[data-color-category="air"]{border-left:4px solid #4da3ff}
.map-item[data-color-category="rail"]{border-left:4px solid #ffbf47}
.map-item[data-color-category="temperature"]{border-left:4px solid #ff7a9e}
.map-item[data-color-category="pedal"]{border-left:4px solid #48d597}
.map-item[data-color-category="other"]{border-left:4px solid #788391}
@media(max-width:520px){.pro-brand{gap:.2em}.pro-brand .brand-accent{display:inline-block}.main-nav{grid-template-columns:repeat(4,1fr)!important}}

/* v4.0.2 navigation + corrected HEX/3D */
.main-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}
.hex-visible-rows{position:relative!important;min-width:780px;height:auto;transform:none!important}
.hex-row.continuous-row{left:0;right:0;box-sizing:border-box;margin:0!important}
.hex-source-status{color:#69b8f7;font-size:10px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.large-view-area{position:relative;overflow:hidden;background:#050b12}
.large-view-area canvas{width:100%!important;height:100%!important;object-fit:fill}
@media(max-width:520px){.main-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important}.main-nav button{font-size:7px}.main-nav button span{font-size:18px}}

/* v4.1 — comparaison, HEX cartographié et contrôle de sauvegarde */
.compare-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.compare-dashboard article{background:#071019;border:1px solid #24394c;border-radius:10px;padding:10px}.compare-dashboard span{display:block;color:#8298aa;font-size:9px;text-transform:uppercase;letter-spacing:.6px}.compare-dashboard strong{display:block;color:#eef7ff;font-size:17px;margin:3px 0}.compare-dashboard small{color:#6f8293;font-size:9px}.warn-text{color:#ffad45!important}.compare-filters{display:flex;gap:14px;padding:8px 0;color:#9db0c0;font-size:11px}.compare-map.detailed{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:start}.compare-map-main details{margin-top:7px}.compare-map-main summary{color:#67b8ff;font-size:10px}.mini-diff-table{display:grid;grid-template-columns:auto 1fr auto 1fr 1fr;gap:3px 7px;margin-top:6px;font:9px ui-monospace,monospace;color:#a8b8c5}.mini-diff-table .pos{color:#5ee58d}.mini-diff-table .neg{color:#ff7777}.compare-map-actions{display:flex;flex-direction:column;gap:5px}.compare-map-actions button{white-space:nowrap}
.hex-legend{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 9px;color:#abc0d0;font-size:9px}.hex-legend span{border-radius:999px;padding:3px 7px;border:1px solid rgba(255,255,255,.12)}.legend-axis-x,.hex-value.region-axis-x{background:#133f64!important}.legend-axis-y,.hex-value.region-axis-y{background:#174a35!important}.legend-map-data,.hex-value.region-map-data{background:#4b3515!important}.legend-hex-change{background:#4a1d2a!important}.legend-hex-selection,.hex-value.hex-selected{background:#523c88!important;box-shadow:inset 0 0 0 2px #c6adff!important}.hex-toolbar .active-tool{background:#184c78!important;border-color:#44aaff!important}.hex-selection-status{color:#c6adff;font:10px ui-monospace,monospace}.hex-toolbar button:disabled{opacity:.38}
.validation-window{width:min(720px,96vw)}.validation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.validation-summary article{background:#071019;border:1px solid #263b4c;border-radius:10px;text-align:center;padding:10px}.validation-summary strong{display:block;font-size:22px}.validation-summary span{font-size:10px;color:#8da1b1}.validation-item{display:grid;grid-template-columns:100px 1fr;gap:9px;border:1px solid #263748;border-radius:8px;padding:9px;margin:6px 0;font-size:11px}.validation-item.critical{border-color:#71303a;background:#251017}.validation-item.critical strong{color:#ff6c79}.validation-item.warning{border-color:#765423;background:#241b0d}.validation-item.warning strong{color:#ffb54e}.validation-item.info{border-color:#285176;background:#0c1c2b}.validation-item.info strong{color:#62baff}.validation-item.ok{border-color:#27613d;background:#0d2115}.validation-item.ok strong{color:#5ee58d}
@media(max-width:520px){.compare-map.detailed{grid-template-columns:1fr}.compare-map-actions{flex-direction:row;overflow-x:auto}.compare-dashboard{grid-template-columns:1fr 1fr}.hex-toolbar{align-items:end}.validation-item{grid-template-columns:1fr}.validation-summary strong{font-size:18px}}

/* v4.1.1 correctifs de stabilité */
#tableWindowArea{display:block;min-height:240px;overflow:auto}
.map-grid-wrap{display:block;overflow:auto;-webkit-overflow-scrolling:touch}
.axis-inline-input{width:100%;min-width:48px;height:34px;padding:2px 4px;border:1px solid #168cff;border-radius:5px;background:#071522;color:#fff;text-align:center;font:inherit;box-sizing:border-box}
.editable-axis{cursor:text;touch-action:manipulation}

/* v4.1.2 stability and home Maps panel */
.maps-home-content{display:grid;gap:10px;padding:12px}.maps-home-content p{margin:0;color:#8fa6b8;font-size:12px;line-height:1.45}.wide-action{width:100%;min-height:44px}.tool-window[open]{display:block}.map-view-window[open] .window-shell{min-height:min(88vh,760px)}

/* v4.1.3 — rendering stability */
#tableWindowArea{display:block!important;min-height:60vh!important;overflow:auto!important}
#tableWindowArea .map-grid-wrap{display:block!important;min-height:200px}
#view3DWindowArea{display:block!important;min-height:calc(100dvh - 100px)!important;background:#050b12}
#view3DWindowArea canvas{display:block!important;width:100%!important;height:100%!important;max-height:none!important}
#mapDialog[open]{display:block!important;z-index:10000}
#mapDialog .dialog-head{position:sticky;top:0;z-index:3;background:#0b121a;padding-top:8px}
.map-grid th{border:1px solid #162532}

/* v4.1.7 - fenêtre unique Tableau / 2D / 3D */
.unified-map-window{width:min(1100px,96vw);height:min(900px,94dvh);max-width:none;max-height:none}
.unified-map-window .window-shell{height:100%;display:flex;flex-direction:column}
.map-view-switcher{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:8px;border-bottom:1px solid #27445c;background:#07111a}
.map-view-switcher button{min-height:42px;border:1px solid #2b465b;background:#0d1924;color:#b9cad8;border-radius:9px;font-weight:700}
.map-view-switcher button.active-view{background:linear-gradient(135deg,#0878d8,#0c4f9e);color:#fff;border-color:#2998ff;box-shadow:0 0 0 1px #2998ff inset,0 0 16px #0076d744}
.unified-map-window .map-window-content{flex:1;min-height:0;overflow:hidden}
.unified-map-area{height:100%;min-height:0;overflow:auto;background:#050b12}
.unified-map-area>canvas{width:100%!important;height:100%!important;max-height:none!important}
.unified-map-area .map-grid-wrap{max-height:none;height:100%;border:0;border-radius:0}
@media(max-width:760px){.unified-map-window{width:100vw;height:100dvh;border-radius:0}.map-view-switcher{position:sticky;top:0;z-index:3}.unified-map-area{height:calc(100dvh - 154px)}}

.viewer-edit-tools{margin:0 14px 10px;border:1px solid #24506f;border-radius:14px;background:#091521;overflow:hidden}.viewer-edit-tools summary{padding:12px 14px;font-weight:800;color:#dceeff;cursor:pointer}.viewer-selection-row{display:flex;gap:8px;align-items:center;padding:0 12px 10px;flex-wrap:wrap}.viewer-selection-row span{flex:1;min-width:140px;color:#8fb3cf}.viewer-tools{padding:0 12px 12px}.unified-map-area input[type=text]{min-width:42px;width:100%;font-size:16px;text-align:center;background:transparent;color:inherit;border:0;outline:none;padding:8px 3px}.unified-map-area input[type=text]:focus{background:#fff;color:#111;box-shadow:inset 0 0 0 2px #2f9cff;border-radius:4px}.viewer-edit-tools[hidden]{display:none!important}

/* v4.1.9 — navigateur de maps intégré et palette type VAGTuner */
.inline-maps-browser{padding:10px!important;display:grid;gap:8px}
.inline-map-toolbar{display:flex;align-items:center;gap:8px;position:sticky;top:0;z-index:4;background:#0a131c;padding:6px;border:1px solid #213648;border-radius:10px}
.inline-map-toolbar input[type=text],#mapsInlineSearch{flex:1;min-width:0;background:#071019;color:#e9f5ff;border:1px solid #29455d;border-radius:8px;padding:9px 10px}
.inline-map-toolbar label{display:flex;align-items:center;gap:4px;color:#9db4c6;font-size:11px;white-space:nowrap}
.inline-map-categories{display:grid;gap:7px;max-height:52vh;overflow:auto;-webkit-overflow-scrolling:touch}
.inline-map-category{border:1px solid #21384b;border-radius:10px;background:#09121a;overflow:hidden}
.inline-map-category>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:10px 11px;color:#f4c64e;font-weight:800;cursor:pointer;background:linear-gradient(90deg,#102233,#0b1722)}
.inline-map-category>summary::-webkit-details-marker{display:none}.inline-map-category>summary:before{content:'›';font-size:20px;margin-right:7px;transition:.15s}.inline-map-category[open]>summary:before{transform:rotate(90deg)}
.inline-map-category>summary span:last-child{background:#d7b441;color:#111827;border-radius:99px;padding:2px 8px;font-size:10px}
.inline-map-items{padding:5px;display:grid;gap:4px}.inline-map-item{width:100%;border:0;border-left:3px solid #2f92ff;border-radius:6px;background:#101e2b;color:#eaf4fc;text-align:left;padding:8px 9px;display:grid;gap:3px}
.inline-map-item strong{font-size:12px}.inline-map-item small{font:9px ui-monospace,monospace;color:#8fa9bb}.inline-map-item.active-map{background:#163653;box-shadow:inset 0 0 0 1px #399cff}.inline-map-item.modified-map{border-left-color:#66e68c}
.viewer-edit-tools{margin:0 10px 8px;border:1px solid #29435a;border-radius:10px;background:#09141e}.viewer-edit-tools>summary{padding:9px 11px;color:#75c0ff;font-weight:800}.viewer-edit-tools[open]>summary{border-bottom:1px solid #23394b}.viewer-edit-tools .viewer-tools{padding:7px;margin:0;grid-template-columns:repeat(4,minmax(0,1fr))}.viewer-edit-tools .viewer-tools button{padding:8px 3px;font-size:10px}.viewer-selection-row{padding:7px 9px}
.map-grid td.data-heat-cell{border-color:#202a32!important}.map-grid td.data-heat-cell input{font-weight:800!important;letter-spacing:-.15px}.map-grid td.selected{box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 4px #168cff!important}
.hex-quick-zones{display:flex;gap:5px;flex-wrap:wrap}.hex-quick-zones button{padding:7px 9px;background:#132638;border:1px solid #2e526e;color:#cceaff;border-radius:7px;font-size:10px}.hex-source-status strong{color:#57baff}
@media(max-width:430px){.inline-map-categories{max-height:47vh}.viewer-edit-tools .viewer-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* v4.1.10 corrections mobile */
.inline-map-categories{height:58dvh!important;max-height:58dvh!important;overflow-y:auto!important;overflow-x:hidden!important;touch-action:pan-y!important;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-right:3px}
.inline-map-category{overflow:visible!important}
.inline-map-category>summary{font-size:11px!important;padding:7px 9px!important;color:#72bfff!important;background:linear-gradient(90deg,#0d2437,#091620)!important;border-left:3px solid #168cff}
.inline-map-category>summary:before{font-size:16px!important}.inline-map-category>summary span:last-child{background:#123a5a!important;color:#9ed6ff!important;font-size:9px!important}
.inline-map-items{max-height:none!important;overflow:visible!important}.inline-map-item{font-size:10px!important;padding:7px 8px!important;min-height:38px!important}.inline-map-item small{font-size:8.5px!important}
.viewer-edit-tools .viewer-tools button{min-height:34px!important;padding:5px 2px!important;font-size:9px!important;border-radius:7px!important}.viewer-selection-row button{min-height:30px!important;padding:4px 8px!important;font-size:9px!important}
.hex-visible-rows{position:relative!important;height:auto!important;min-width:780px}.hex-row.continuous-row{position:relative!important;top:auto!important}.hex-scroll-spacer{display:block;width:1px;flex:none}.hex-continuous{overflow:auto!important;contain:none!important;-webkit-overflow-scrolling:touch}
#mapViewerArea canvas{touch-action:none!important;user-select:none;-webkit-user-select:none}

/* v4.1.11 correctifs définitifs */
.maps-home-panel[open]{max-height:78dvh;overflow:hidden}.maps-home-panel[open] .maps-home-content{height:68dvh;min-height:0;overflow:hidden;display:flex;flex-direction:column}.inline-map-toolbar{flex:0 0 auto}.inline-map-categories{flex:1 1 auto;height:auto!important;max-height:none!important;min-height:0!important;overflow-y:scroll!important;overscroll-behavior-y:auto!important;touch-action:pan-y!important;padding-bottom:90px!important}.inline-map-category>summary{font-size:10px!important;font-weight:750!important;letter-spacing:.15px!important;color:#b9dcf7!important;background:linear-gradient(90deg,#102334,#0b1823)!important;border-left-color:#2f92ff!important}.inline-map-category>summary span:last-child{background:#183c57!important;color:#bfe6ff!important}.inline-map-item strong{font-size:10.5px!important}.viewer-edit-tools .viewer-tools button{font-size:9px!important;min-height:32px!important;padding:4px 2px!important}.hex-source-status{font-size:10px!important}.hex-quick-zones{display:flex;gap:4px;flex-wrap:wrap}.hex-quick-zones button{font-size:9px;padding:6px 8px}.unified-map-area canvas{touch-action:none!important}

/* Validation et apprentissage v4.5 */
.map-verification-panel{margin:14px 18px;padding:14px;border:1px solid #28506f;border-radius:16px;background:linear-gradient(180deg,#07131f,#050c13);font-size:14px;color:#b9d5ea}.map-verification-panel h3{margin:0 0 9px;color:#55adff;font-size:16px}.map-verification-panel .verify-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.map-verification-panel .verify-item{padding:9px 10px;border-radius:11px;background:#0b1a27;border:1px solid #1c3548}.map-verification-panel .ok{border-color:#257a59;color:#b9f6d8}.map-verification-panel .warn{border-color:#9b711c;color:#ffe1a1}.map-verification-panel .bad{border-color:#943949;color:#ffc0ca}.editor-head-actions #confirmMapBtn{border-color:#26795c;color:#a9f1d0}.editor-head-actions #verifyMapBtn{border-color:#266ca2;color:#9dd4ff}.editor-head-actions #rejectMapBtn{border-color:#8d3542;color:#ffb2bd}.learning-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.learning-summary span{padding:6px 9px;border-radius:999px;background:#0e2638;border:1px solid #265477;color:#9fd4ff;font-size:12px}@media(max-width:700px){.map-verification-panel .verify-grid{grid-template-columns:1fr}.editor-head-actions{gap:6px}.editor-head-actions button{font-size:12px;padding:8px 10px}}


/* v4.5.3 — palette tableaux type VAGTuner */
.map-color-legend{justify-content:stretch!important;gap:0!important;border:1px solid #263746;border-radius:8px;overflow:hidden;background:#0b1117;padding:0!important}
.map-color-legend span{flex:1;border:0!important;border-radius:0!important;text-align:center;padding:5px 7px!important;font-weight:800;text-shadow:0 1px 2px rgba(0,0,0,.75)}
.map-color-legend .legend-low{background:linear-gradient(90deg,#182b91,#145bb2,#1a9bb2)!important;color:#eef8ff!important}
.map-color-legend .legend-mid{background:linear-gradient(90deg,#25b067,#82be26,#e0b723)!important;color:#071019!important;text-shadow:none!important}
.map-color-legend .legend-high{background:linear-gradient(90deg,#e76f1f,#c7242b)!important;color:#fff!important}
.map-grid{background:#080d12!important}
.map-grid td.data-heat-cell{border-color:#27313a!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05);transition:filter .12s ease,box-shadow .12s ease,transform .08s ease}
.map-grid td.data-heat-cell:hover{filter:brightness(1.12) saturate(1.08)}
.map-grid td.data-heat-cell input{font-weight:850!important;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.9)!important}
.map-grid td.data-heat-cell.heat-light input{color:#081018!important;text-shadow:0 1px 0 rgba(255,255,255,.25)!important}
.map-grid .map-axis-head,.map-grid .map-row-head{background:linear-gradient(180deg,#171c21,#101419)!important;color:#f3f5f7!important;border-color:#303942!important;font-weight:800!important}
.map-grid td.selected{position:relative;z-index:1;box-shadow:inset 0 0 0 2px #f7fbff,inset 0 0 0 5px #168cff,0 0 10px rgba(22,140,255,.7)!important}
.map-grid td.modified{box-shadow:inset 0 -3px 0 #61ef8c}

/* La Performance Tuner 4.5.4 — outils de modification style VAGTuner */
.viewer-edit-tools{
  margin:0 12px 12px!important;
  border:1px solid #294a63!important;
  border-radius:18px!important;
  background:linear-gradient(180deg,#0a1823 0%,#07131d 100%)!important;
  box-shadow:inset 0 1px 0 #ffffff0c,0 10px 28px #0006!important;
  overflow:hidden!important;
}
.viewer-edit-tools>summary{
  padding:14px 16px!important;
  min-height:52px;
  display:flex;
  align-items:center;
  color:#75c4ff!important;
  font-size:16px!important;
  font-weight:800!important;
  letter-spacing:.1px;
}
.viewer-edit-tools[open]>summary{border-bottom:1px solid #284257!important}
.viewer-selection-row{
  padding:12px 16px 10px!important;
  gap:10px!important;
}
.viewer-selection-row span{
  color:#8fb9d7!important;
  font-size:15px!important;
}
.viewer-selection-row button{
  min-width:74px!important;
  min-height:42px!important;
  padding:8px 16px!important;
  border-radius:999px!important;
  border:1px solid #d9dde3!important;
  background:linear-gradient(180deg,#fff,#e7e8eb)!important;
  color:#0878ef!important;
  font-size:14px!important;
  font-weight:500!important;
  box-shadow:inset 0 1px 0 #fff,0 2px 7px #0005!important;
}
.viewer-edit-tools .viewer-tools,
.map-edit-panel .styled-map-tools{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
  padding:10px 16px 16px!important;
}
.viewer-edit-tools .viewer-tools button,
.map-edit-panel .styled-map-tools button{
  min-height:58px!important;
  padding:10px 8px!important;
  border-radius:13px!important;
  border:1px solid #34424c!important;
  background:linear-gradient(145deg,#171c20,#0f1418)!important;
  color:#eef5fb!important;
  font-size:14px!important;
  font-weight:700!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  box-shadow:inset 0 1px 0 #ffffff0a,0 3px 8px #0005!important;
  text-shadow:0 1px 1px #000;
}
.viewer-edit-tools .viewer-tools button:active,
.map-edit-panel .styled-map-tools button:active{
  transform:translateY(1px);
  border-color:#2f9cff!important;
  background:linear-gradient(145deg,#172b3b,#0d1c29)!important;
}
.tool-icon{
  color:#56b2ff!important;
  font-size:22px!important;
  line-height:1!important;
  font-weight:500!important;
  min-width:20px;
  text-align:center;
  text-shadow:0 0 8px #168cff55;
}
.viewer-edit-tools .viewer-tools button[data-op="smooth"] .tool-icon{font-size:25px!important}
.viewer-edit-tools .viewer-tools button[data-op="copy"] .tool-icon,
.viewer-edit-tools .viewer-tools button[data-op="paste"] .tool-icon{font-size:20px!important}
.map-edit-panel .styled-map-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important}

@media(max-width:430px){
  .viewer-edit-tools{margin:0 9px 9px!important;border-radius:16px!important}
  .viewer-edit-tools>summary{padding:12px 13px!important;font-size:15px!important}
  .viewer-selection-row{padding:10px 12px 8px!important}
  .viewer-selection-row span{font-size:14px!important}
  .viewer-selection-row button{min-width:68px!important;min-height:38px!important;padding:7px 13px!important;font-size:13px!important}
  .viewer-edit-tools .viewer-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;padding:8px 12px 13px!important}
  .viewer-edit-tools .viewer-tools button{min-height:54px!important;font-size:12px!important;border-radius:12px!important;padding:8px 5px!important;gap:5px!important}
  .tool-icon{font-size:19px!important;min-width:17px}
}

/* 16.9.7.36 — le sixième bouton Diagnostic reste visible sur iPhone. */
@media(max-width:760px){
  .lp-mobile-dock{grid-template-columns:repeat(6,minmax(0,1fr))!important}
  .lp-mobile-dock button{min-width:0!important;font-size:8px!important;padding-left:1px!important;padding-right:1px!important}
  .lp-mobile-dock button span{font-size:19px!important}
  .lp-mobile-dock .lp-plus{width:52px!important;height:52px!important;font-size:29px!important}
  #lptMobileDebugBtn{display:grid!important;visibility:visible!important}
  .lp-mobile-dock .lp-plus span{font-size:27px!important;line-height:22px!important}
  .lp-mobile-dock .lp-plus b{font-size:8px!important;line-height:10px!important;font-weight:800!important}
}

/* v4.5.5 — dégradé continu VAGTuner amélioré */
.map-grid td.data-heat-cell{
  background-clip:padding-box!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.16)!important;
}
.map-grid td.data-heat-cell input{
  font-variant-numeric:tabular-nums;
  text-rendering:geometricPrecision;
}
.map-grid td.selected{
  filter:saturate(1.08) brightness(1.07);
  box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 5px #087dff,0 0 12px rgba(0,126,255,.55)!important;
}

/* v4.5.6 — rendu heatmap plus sobre et professionnel */
.map-grid{border-spacing:0!important}
.map-grid td.data-heat-cell{
  border-color:rgba(18,29,38,.72)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),inset 0 -1px 0 rgba(0,0,0,.20)!important;
  filter:saturate(.93) contrast(1.02);
}
.map-grid td.data-heat-cell:hover{filter:saturate(1.00) brightness(1.07)!important}
.map-grid td.data-heat-cell input{
  text-shadow:0 1px 2px rgba(0,0,0,.68)!important;
  letter-spacing:-.1px!important;
}
.map-grid td.data-heat-cell.heat-light input{
  color:#111a20!important;
  text-shadow:0 1px 0 rgba(255,255,255,.28)!important;
}
.map-grid td.selected{
  filter:saturate(1.03) brightness(1.05)!important;
  box-shadow:inset 0 0 0 2px #f8fbff,inset 0 0 0 4px #138cff,0 0 8px rgba(19,140,255,.46)!important;
}

/* v4.5.7 — heatmap intelligente : axes/constantes exclus, relief doux */
.map-grid td.data-heat-cell{
  border-color:rgba(28,43,54,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.065),inset 0 -1px 0 rgba(0,0,0,.18)!important;
  filter:saturate(.89) contrast(1.015)!important;
}
.map-grid td.data-heat-cell.heat-structural{
  filter:saturate(.35) brightness(.82)!important;
  border-color:#35414b!important;
}
.map-grid td.data-heat-cell.heat-structural input{
  color:#c6d1d9!important;
  font-style:italic;
  text-shadow:0 1px 2px #000!important;
}
.map-grid td.data-heat-cell:hover{filter:saturate(.97) brightness(1.055)!important}
.map-grid td.selected{filter:saturate(.98) brightness(1.06)!important}

/* ===== Accueil projets v4.5.8 ===== */
[hidden]{display:none!important}.project-home{min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) 22px max(28px,env(safe-area-inset-bottom));background:radial-gradient(circle at 72% 7%,rgba(22,91,145,.22),transparent 30%),linear-gradient(160deg,#020910 0%,#06111c 45%,#02070d 100%);color:#eef6ff;box-sizing:border-box}.project-home:before{content:"";position:absolute;inset:0 0 auto 38%;height:250px;pointer-events:none;opacity:.32;background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(45,128,190,.12) 23px 24px),repeating-linear-gradient(0deg,transparent 0 22px,rgba(45,128,190,.08) 23px 24px);mask-image:linear-gradient(to bottom,#000,transparent)}.project-home button{font:inherit}.project-home-hero{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:190px;gap:18px}.home-brand h1{margin:0;font-style:italic;font-weight:950;letter-spacing:-1.5px;line-height:.95;font-size:clamp(29px,7vw,46px)}.home-brand h1 span{display:block}.home-brand h1 span:last-child{color:#168cff;margin-top:11px}.home-project-state{text-align:right;color:#aebed0;font-size:14px;line-height:1.45}.home-project-state strong{display:block;color:#f4f8fc;font-size:17px;margin-bottom:6px}.home-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.home-action-card{position:relative;min-height:210px;text-align:left;padding:20px;border-radius:18px;border:1px solid #168cff;background:linear-gradient(145deg,rgba(8,28,45,.96),rgba(3,15,26,.96));color:#fff;box-shadow:inset 0 0 28px rgba(0,126,255,.04)}.home-action-card:active{transform:scale(.985);background:#0a2944}.home-action-icon{display:grid;place-items:center;width:58px;height:58px;border:1px solid #1495ff;border-radius:13px;color:#fff;font-size:37px;box-shadow:0 0 20px rgba(0,132,255,.24);margin-bottom:20px}.home-action-card strong{display:block;font-size:19px;letter-spacing:.5px}.home-action-card small{display:block;color:#bac8d8;font-size:14px;line-height:1.55;margin-top:8px;padding-right:18px}.home-action-card>b{position:absolute;right:20px;top:50%;font-size:34px;color:#a7b5c7}.home-continue,.home-recent{margin-top:24px;border:1px solid #183c58;border-radius:17px;background:linear-gradient(145deg,rgba(5,20,33,.96),rgba(3,13,23,.96));padding:18px}.home-continue>header,.home-recent>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.home-continue>header{justify-content:flex-start;gap:10px}.home-continue>header span,.home-recent>header span{color:#1296ff;font-size:23px}.home-continue>button{width:100%;display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:14px;text-align:left;border:1px solid #17364f;border-radius:14px;background:#061521;color:#fff;padding:13px}.ecu-chip-icon{display:grid;place-items:center;width:58px;height:58px;border-radius:11px;background:#092b4a;color:#1499ff;font-size:34px}.home-continue button span:nth-child(2) strong,.home-continue button span:nth-child(2) small{display:block}.home-continue button span:nth-child(2) small{color:#9fb1c4;margin-top:6px}.home-continue button>b{background:linear-gradient(135deg,#0868e8,#0d8cff);padding:17px;border-radius:11px;white-space:nowrap}.home-recent>header>div{display:flex;align-items:center;gap:10px}.home-recent>header button{border:0;background:none;color:#1c9cff}.home-search-row{display:flex;gap:12px;margin-bottom:15px}.home-search-row label{flex:1;display:flex;align-items:center;gap:8px;border:1px solid #1b3c55;border-radius:12px;padding:0 13px;color:#95a9bd}.home-search-row input{width:100%;height:44px;border:0;outline:0;background:transparent;color:#fff;font-size:15px}.home-filters{display:flex;gap:8px;overflow:auto}.home-filters button{border:1px solid #1b3c55;background:#061522;color:#dce7f2;border-radius:10px;padding:0 14px}.home-filters button.active{background:#0b3b71;border-color:#167fe5}.home-project-list{display:grid;gap:9px}.home-project-row{display:grid;grid-template-columns:54px 1fr auto;gap:13px;align-items:center;width:100%;text-align:left;padding:12px;border:1px solid #17364d;border-radius:13px;background:#061521;color:#fff}.home-project-row:hover{border-color:#168cff}.home-project-row .project-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:10px;background:#0a2a47;color:#168cff;font-size:27px}.home-project-main strong,.home-project-main small{display:block}.home-project-main strong{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw}.home-project-main small{color:#1b9cff;margin-top:4px}.home-project-main em{display:block;color:#98a9bc;font-style:normal;font-size:12px;margin-top:4px}.home-project-side{text-align:right;color:#a8b7c8;font-size:12px;line-height:1.45}.home-project-side b{display:inline-block;margin-top:5px;border:1px solid #167ce1;border-radius:7px;padding:3px 7px;color:#dfeeff;font-weight:500}.home-empty{display:grid;place-items:center;gap:9px;min-height:190px;color:#8799ac;text-align:center}.home-empty>span{font-size:47px;color:#31516b}.home-empty strong{color:#dbe6ef}.back-projects-btn{width:42px;height:42px;border:1px solid #27445d;border-radius:12px;background:#071522;color:#dbe9f6;font-size:30px;flex:0 0 auto}.editor-app{min-height:100dvh}@media(max-width:620px){.project-home{padding-left:16px;padding-right:16px}.project-home-hero{min-height:165px}.home-primary-actions{gap:10px}.home-action-card{min-height:190px;padding:16px}.home-action-card strong{font-size:16px}.home-action-card small{font-size:12px}.home-search-row{display:block}.home-filters{margin-top:10px}.home-filters button{height:40px}.home-continue>button{grid-template-columns:50px 1fr}.home-continue button>b{grid-column:1/-1;text-align:center}.ecu-chip-icon{width:48px;height:48px}.home-project-main strong{max-width:45vw}}

/* v4.5.9 — vrais contrôles interactifs de l’accueil */
.native-file-input{position:fixed!important;left:-9999px!important;top:-9999px!important;width:1px!important;height:1px!important;opacity:.01!important;pointer-events:none!important}
.home-project-dialog{width:min(430px,92vw);border:1px solid #1b5d91;border-radius:18px;background:linear-gradient(145deg,#071827,#03101b);color:#eef7ff;padding:0;box-shadow:0 25px 80px #000b}
.home-project-dialog::backdrop{background:#000b;backdrop-filter:blur(5px)}
.home-project-dialog form{padding:22px}.home-project-dialog h2{margin:0 0 8px;color:#fff}.home-project-dialog p{margin:0 0 18px;color:#9fb4c7;line-height:1.45}.home-project-dialog label{display:grid;gap:8px;color:#b9cada;font-size:13px}.home-project-dialog input{height:46px;border:1px solid #255071;border-radius:11px;background:#04111c;color:#fff;padding:0 13px;font-size:16px;outline:none}.home-project-dialog input:focus{border-color:#168cff;box-shadow:0 0 0 3px #168cff22}.home-project-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.home-project-dialog button{min-height:44px;border:1px solid #2b4a62;border-radius:10px;background:#0a1722;color:#e7f2fb;padding:0 16px;font-weight:700}.home-project-dialog .primary-action{background:linear-gradient(135deg,#075fe0,#0b8dff);border-color:#168cff}

/* v4.6.3 — affichage robuste des vues sur Safari iOS */
#mapViewerDialog[open]{display:block!important;position:fixed!important;inset:0!important;margin:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;z-index:10000!important}
#mapViewerDialog .window-shell{height:100%!important;min-height:100%!important}
#mapViewerDialog .map-window-content{display:flex!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
#mapViewerArea{display:block!important;flex:1 1 auto!important;width:100%!important;min-height:320px!important;overflow:auto!important}
#mapViewerArea .map-grid-wrap{height:auto!important;min-height:100%!important}


/* v4.6.9 — outils compacts et navigation directe entre Tableau / 2D / 3D */
.dialog-view-switcher{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:12px 18px;border-bottom:1px solid #29465d;background:#071522;position:sticky;top:0;z-index:7}
.dialog-view-switcher button{min-height:58px;border:2px solid #31536d;border-radius:14px;background:#0b1823;color:#dceaf5;font-size:17px;font-weight:800;padding:8px 10px}
.dialog-view-switcher button.active-view{background:linear-gradient(135deg,#0e80e8,#1761b7);border-color:#39a4ff;color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.compact-map-edit{margin:0 8px 14px;border:1px solid #31536d;border-radius:18px;background:#06121c;overflow:hidden}
.compact-map-edit>summary{padding:16px 20px;color:#58b2ff;font-size:18px;font-weight:800;border-bottom:1px solid #31536d;list-style:none}
.compact-map-edit>summary::-webkit-details-marker{display:none}
.compact-selection{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:10px!important;align-items:center!important;padding:14px 18px 8px!important;background:transparent!important;border:0!important}
.compact-selection span{font-size:16px;color:#9bc8e7}
.compact-selection button{min-height:44px!important;padding:7px 18px!important;border-radius:999px!important;font-size:15px!important;font-weight:700!important}
.compact-tools{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:10px!important;padding:10px 18px 18px!important}
.compact-tools button{min-height:78px!important;padding:10px 8px!important;border-radius:15px!important;font-size:16px!important;line-height:1.1!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important}
.compact-tools .tool-icon{font-size:25px!important;line-height:1!important}
#tableDialog .map-window-content{padding:0 10px 16px!important}
#tableDialog .map-color-legend{margin:8px 8px 10px}
@media(max-width:520px){
 .dialog-view-switcher{gap:7px;padding:10px 14px}
 .dialog-view-switcher button{min-height:54px;font-size:15px;padding:7px 5px}
 .compact-map-edit{margin:0 2px 12px;border-radius:16px}
 .compact-map-edit>summary{padding:14px 16px;font-size:17px}
 .compact-selection{grid-template-columns:minmax(0,1fr) auto auto!important;padding:12px 12px 6px!important;gap:7px!important}
 .compact-selection span{font-size:14px}
 .compact-selection button{min-height:40px!important;padding:6px 14px!important;font-size:14px!important}
 .compact-tools{gap:8px!important;padding:8px 12px 14px!important}
 .compact-tools button{min-height:68px!important;font-size:14px!important;border-radius:13px!important;padding:8px 5px!important}
 .compact-tools .tool-icon{font-size:21px!important}
}


/* v4.7.0 — outils d’édition plus compacts, légende retirée, tableau agrandi */
#tableDialog .map-color-legend{display:none!important}
#tableDialog .map-window-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:0 6px max(8px,env(safe-area-inset-bottom))!important;
}
#tableDialog .compact-map-edit{
  flex:0 0 auto!important;
  margin:0 4px 6px!important;
  border-radius:12px!important;
}
#tableDialog .compact-map-edit>summary{
  padding:8px 12px!important;
  font-size:14px!important;
  line-height:1.1!important;
}
#tableDialog .compact-selection{
  padding:6px 9px 3px!important;
  gap:5px!important;
}
#tableDialog .compact-selection span{font-size:12px!important}
#tableDialog .compact-selection button{
  min-height:30px!important;
  padding:3px 10px!important;
  font-size:12px!important;
}
#tableDialog .compact-tools{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:5px!important;
  padding:5px 8px 8px!important;
}
#tableDialog .compact-tools button{
  min-height:42px!important;
  padding:4px 3px!important;
  border-radius:9px!important;
  font-size:10.5px!important;
  line-height:1.05!important;
  gap:3px!important;
}
#tableDialog .compact-tools .tool-icon{
  font-size:15px!important;
  min-width:13px!important;
}
#tableDialog #tableWindowArea{
  flex:1 1 auto!important;
  min-height:0!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  max-height:none!important;
  height:100%!important;
  min-height:260px!important;
  border-radius:8px!important;
}
#tableDialog #tableWindowArea .map-grid{
  margin:0!important;
}
@media(max-width:520px){
  #tableDialog .window-titlebar{padding:10px 12px!important}
  #tableDialog .window-titlebar h2{font-size:17px!important;line-height:1.15!important}
  #tableDialog .window-titlebar small{font-size:11px!important}
  #tableDialog .dialog-view-switcher{gap:5px!important;padding:6px 8px!important}
  #tableDialog .dialog-view-switcher button{
    min-height:42px!important;
    padding:4px 3px!important;
    border-radius:9px!important;
    font-size:12px!important;
  }
  #tableDialog .compact-map-edit{margin:0 2px 5px!important}
  #tableDialog .compact-map-edit>summary{padding:7px 10px!important;font-size:13px!important}
  #tableDialog .compact-selection{padding:5px 7px 2px!important}
  #tableDialog .compact-selection span{font-size:11px!important}
  #tableDialog .compact-selection button{min-height:28px!important;padding:2px 8px!important;font-size:11px!important}
  #tableDialog .compact-tools{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:4px!important;padding:4px 6px 6px!important}
  #tableDialog .compact-tools button{min-height:38px!important;font-size:9.5px!important;border-radius:8px!important;padding:3px 2px!important;gap:2px!important}
  #tableDialog .compact-tools .tool-icon{font-size:14px!important;min-width:12px!important}
  #tableDialog #tableWindowArea .map-grid-wrap{min-height:320px!important}
}

/* v4.7.1 — la map devient prioritaire, outils réellement compacts et repliables */
#tableDialog .window-shell{height:100dvh!important;min-height:0!important}
#tableDialog .map-window-content{flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow:hidden!important}
#tableDialog .compact-map-edit{flex:0 0 auto!important;margin:0 2px 4px!important;border-radius:9px!important}
#tableDialog .compact-map-edit>summary{
  min-height:34px!important;padding:6px 9px!important;font-size:12px!important;line-height:1!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important
}
#tableDialog .compact-map-edit>summary::after{content:'⌄';font-size:15px;color:#73bdff;transform:rotate(0deg);transition:transform .15s ease}
#tableDialog .compact-map-edit[open]>summary::after{transform:rotate(180deg)}
#tableDialog .compact-selection{padding:4px 6px 2px!important;gap:4px!important}
#tableDialog .compact-selection span{font-size:10px!important;min-width:0!important}
#tableDialog .compact-selection button{min-height:25px!important;padding:2px 7px!important;font-size:9.5px!important;border-radius:7px!important}
#tableDialog .compact-tools{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:3px!important;padding:3px 5px 5px!important
}
#tableDialog .compact-tools button{
  min-height:32px!important;height:32px!important;padding:2px 2px!important;border-radius:6px!important;
  font-size:8.5px!important;line-height:1!important;gap:2px!important;white-space:nowrap!important
}
#tableDialog .compact-tools .tool-icon{font-size:12px!important;min-width:10px!important}
#tableDialog #tableWindowArea{flex:1 1 0!important;min-height:0!important;overflow:auto!important}
#tableDialog #tableWindowArea .map-grid-wrap{
  height:100%!important;min-height:calc(100dvh - 245px)!important;max-height:none!important;
  overflow:auto!important;border-radius:6px!important
}
#tableDialog #tableWindowArea .map-grid{min-width:max-content!important;width:max-content!important}
#tableDialog #tableWindowArea .map-grid input{padding-top:7px!important;padding-bottom:7px!important}
@media(max-width:520px){
  #tableDialog .window-titlebar{padding:8px 10px!important}
  #tableDialog .window-titlebar h2{font-size:15px!important;line-height:1.12!important}
  #tableDialog .window-titlebar small{font-size:9.5px!important;margin-top:2px!important}
  #tableDialog .window-close{width:38px!important;height:38px!important}
  #tableDialog .dialog-view-switcher{gap:4px!important;padding:5px 7px!important}
  #tableDialog .dialog-view-switcher button{min-height:38px!important;font-size:11px!important;padding:3px 2px!important}
  #tableDialog .compact-map-edit>summary{min-height:31px!important;padding:5px 8px!important;font-size:11px!important}
  #tableDialog .compact-tools{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:2px!important;padding:3px 4px 4px!important}
  #tableDialog .compact-tools button{min-height:29px!important;height:29px!important;font-size:7.8px!important;border-radius:5px!important}
  #tableDialog .compact-tools .tool-icon{font-size:11px!important}
  #tableDialog #tableWindowArea .map-grid-wrap{min-height:calc(100dvh - 205px)!important}
}


/* v4.7.2 — dimensionnement adaptatif du tableau selon la taille de la map */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
  width:max-content!important;
  min-width:0!important;
  table-layout:fixed!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  height:var(--adaptive-cell-h)!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid input{
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  height:calc(var(--adaptive-cell-h) - 2px)!important;
  padding:2px 3px!important;
  font-size:var(--adaptive-font)!important;
  box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-axis-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-row-head{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
  height:var(--adaptive-cell-h)!important;
  font-size:max(8px,calc(var(--adaptive-font) - 1px))!important;
  box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  display:block!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
}

/* v4.7.4 — largeur renforcée : maps 8x10, 4x10 et 16 colonnes compactées */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid.grid-fits-width{
  margin-left:auto!important;
  margin-right:auto!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid:not(.grid-fits-width){
  margin-left:0!important;
  margin-right:0!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  overscroll-behavior:contain;
  scroll-behavior:auto;
}

/* v4.7.4 — cellules étroites lisibles sur iPhone */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid input{
  overflow:hidden!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
  padding:0!important;
}


/* v4.7.5 — les en-têtes X suivent la largeur des cellules.
   Avant, .map-axis-head recevait la largeur de l'axe Y et Safari élargissait
   chaque colonne, surtout sur les maps 10, 15, 16 et 19 colonnes. */
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
  width:var(--adaptive-cell-w)!important;
  min-width:var(--adaptive-cell-w)!important;
  max-width:var(--adaptive-cell-w)!important;
  height:var(--adaptive-cell-h)!important;
  padding:1px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  text-overflow:clip!important;
  font-size:max(6px,calc(var(--adaptive-font) - .5px))!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
  width:var(--adaptive-axis-w)!important;
  min-width:var(--adaptive-axis-w)!important;
  max-width:var(--adaptive-axis-w)!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
  max-width:var(--adaptive-cell-w)!important;
}


/* v4.7.9 — éditeur HEX enrichi */
.hex-search-box{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:min(100%,420px)}
.hex-search-box input{min-width:190px;flex:1 1 210px}
.hex-search-box button{min-width:38px}
#hexSearchStatus{font-size:12px;color:#91b8d7;white-space:nowrap}
.hex-value.identified-map{box-shadow:inset 0 0 0 1px rgba(23,151,255,.42)}
.hex-value.map-start{box-shadow:inset 3px 0 0 #00c2ff,inset 0 0 0 1px rgba(23,151,255,.55)}
.hex-value.hex-search-hit{outline:2px solid #ffd23f!important;outline-offset:-2px;filter:brightness(1.28)}
.legend-map-start::before{background:#00c2ff!important}
#exportCsvBtn:disabled{opacity:1!important;filter:none!important;pointer-events:auto!important}


/* v4.8.0 */
.hex-map-navigator{display:flex;align-items:end;gap:8px;flex:1 1 100%;padding:6px;border:1px solid #28465b;border-radius:10px;background:#071521}
.hex-map-navigator label{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1;color:#8fb2ca;font-size:12px}
.hex-map-navigator select{width:100%;min-height:40px;background:#0b1823;color:#eef8ff;border:1px solid #35566c;border-radius:8px;padding:6px 9px}
.hex-map-navigator button{min-height:40px;white-space:nowrap}
.cell-select-mode-toggle{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid #36556a;border-radius:10px;background:#0b1823;color:#cbe8fb;font-size:13px;font-weight:700;white-space:nowrap}
.cell-select-mode-toggle input{width:20px;height:20px;accent-color:#1598ff}
.map-grid td.selected{outline:3px solid #1598ff;outline-offset:-3px}
@media(max-width:600px){.hex-map-navigator{align-items:stretch;flex-direction:column}.hex-map-navigator button{width:100%}.cell-select-mode-toggle{width:100%;justify-content:center;order:5}}

/* v4.8.1 — transition rapide entre projets */
#projectSwitchLoader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:rgba(2,10,18,.74);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);opacity:0;pointer-events:none;transition:opacity .14s ease;color:#eef7ff}
#projectSwitchLoader.visible{opacity:1;pointer-events:auto}
#projectSwitchLoader[hidden]{display:none}
#projectSwitchLoader strong{font-size:16px;letter-spacing:.02em}
.project-switch-spinner{width:40px;height:40px;border-radius:50%;border:4px solid rgba(65,164,255,.22);border-top-color:#2c9cff;animation:projectSpin .7s linear infinite}
@keyframes projectSpin{to{transform:rotate(360deg)}}

/* v4.8.3 — actions iOS par glissement sur les projets */
.home-project-swipe{position:relative;overflow:hidden;border-radius:13px;touch-action:pan-y;background:#071522}.home-project-swipe .home-project-row{position:relative;z-index:2;margin:0;transition:transform .22s cubic-bezier(.22,.61,.36,1);will-change:transform;touch-action:pan-y}.home-project-swipe .home-project-row.dragging{transition:none}.home-project-actions{position:absolute;z-index:1;inset:0 0 0 auto;width:148px;display:grid;grid-template-columns:74px 74px;overflow:hidden;border-radius:0 13px 13px 0}.home-project-actions button{border:0;border-radius:0;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-weight:750;padding:0}.home-project-actions button span{font-size:24px;line-height:1}.home-project-actions button small{font-size:10px;color:inherit}.project-rename-action{background:#5956d9}.project-delete-action{background:#ff3b30}.home-project-actions button:active{filter:brightness(.86)}.home-project-swipe.open .home-project-row{transform:translateX(-148px)}
@media(max-width:620px){.home-project-actions{width:144px;grid-template-columns:72px 72px}.home-project-swipe.open .home-project-row{transform:translateX(-144px)}}


/* v4.8.4 — glissement iOS pour renommer/supprimer une map */
.map-swipe{position:relative;overflow:hidden;border-radius:7px;touch-action:pan-y;background:#071522}.map-swipe+.map-swipe{margin-top:4px}.map-swipe-content{position:relative!important;z-index:2!important;margin:0!important;transition:transform .22s cubic-bezier(.22,.61,.36,1)!important;will-change:transform;touch-action:pan-y}.map-swipe-content.dragging{transition:none!important}.map-swipe-actions{position:absolute;z-index:1;inset:0 0 0 auto;width:144px;display:grid;grid-template-columns:72px 72px;overflow:hidden;border-radius:0 7px 7px 0}.map-swipe-actions button{border:0;border-radius:0;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:750;padding:0}.map-swipe-actions button span{font-size:21px;line-height:1}.map-swipe-actions button small{font-size:9px;color:inherit}.map-rename-action{background:#5956d9}.map-delete-action{background:#ff3b30}.map-swipe-actions button:active{filter:brightness(.86)}.map-swipe.open .map-swipe-content{transform:translateX(-144px)}.map-category .map-swipe{border-radius:0}.map-category .map-swipe+.map-swipe{margin-top:0;border-top:1px solid #172532}.map-category .map-swipe-content{border-top:0!important}.inline-map-items .map-swipe{width:100%}

/* v4.8.5 — HEX compact, outils repliables et navigation directe par map */
.hex-map-picker{display:flex;align-items:end;gap:6px;margin:0 0 6px;padding:6px 7px;border:1px solid #28465b;border-radius:9px;background:#071521}
.hex-map-picker label{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;color:#8fb2ca;font-size:10px}
.hex-map-picker select{width:100%;min-height:34px;background:#0b1823;color:#eef8ff;border:1px solid #35566c;border-radius:7px;padding:4px 7px;font-size:11px}
.hex-map-picker button{width:36px;min-width:36px;height:34px;min-height:34px;padding:0;border-radius:7px;font-size:18px}
.hex-tools-panel{margin:0 0 5px;border:1px solid #28465b;border-radius:9px;overflow:hidden;background:#07131d}
.hex-tools-panel>summary{display:flex;align-items:center;justify-content:space-between;list-style:none;padding:7px 10px;color:#69baff;font-size:12px;font-weight:800;cursor:pointer}
.hex-tools-panel>summary::-webkit-details-marker{display:none}.hex-tools-panel>summary span{transition:transform .15s}.hex-tools-panel[open]>summary span{transform:rotate(90deg)}
.hex-tools-panel .hex-toolbar{position:static;border:0;border-top:1px solid #243746;border-radius:0;padding:6px;gap:4px}
.hex-tools-panel .hex-toolbar label{font-size:9.5px;gap:3px}.hex-tools-panel .hex-toolbar select,.hex-tools-panel .hex-toolbar input{min-height:30px;height:30px;font-size:11px;padding:3px 6px}
.hex-tools-panel .hex-toolbar button{min-height:30px;height:30px;padding:3px 8px;font-size:10.5px;border-radius:8px}
.hex-tools-panel .hex-search-box{gap:4px;min-width:100%}.hex-tools-panel .hex-search-box input{min-width:150px;flex-basis:170px}
.hex-tools-panel #hexSearchStatus{font-size:10px}.hex-tools-panel .hex-source-status{font-size:8.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hex-tools-panel .hex-selection-status{font-size:9px}.hex-legend{margin:4px 0 5px;font-size:8px;gap:4px}.hex-legend span{padding:2px 5px}
.hex-window .window-content{display:flex;flex-direction:column;min-height:0}.hex-window #hexArea{display:flex;flex-direction:column;min-height:0;flex:1}.hex-continuous{flex:1 1 auto;min-height:0;max-height:none!important;height:auto!important}
@media(max-width:520px){.hex-window .window-titlebar{padding-bottom:8px}.hex-window .window-content{padding:7px 8px calc(8px + env(safe-area-inset-bottom))}.hex-tools-panel .hex-toolbar{align-items:end}.hex-tools-panel .hex-search-box button{min-width:34px;padding-left:6px;padding-right:6px}.hex-map-picker select{font-size:10.5px}}


/* v4.8.6 — navigateur de maps HEX façon liste Maps + restauration outils */
.hex-maps-panel,.hex-tools-panel{flex:0 0 auto;margin:0 0 5px;border:1px solid #28465b;border-radius:9px;overflow:hidden;background:#07131d}
.hex-maps-panel>summary,.hex-tools-panel>summary{display:flex;align-items:center;gap:7px;list-style:none;padding:8px 10px;color:#69baff;font-size:12px;font-weight:800;cursor:pointer;min-height:38px}
.hex-maps-panel>summary::-webkit-details-marker,.hex-tools-panel>summary::-webkit-details-marker{display:none}
.hex-maps-panel>summary span,.hex-tools-panel>summary:first-letter{flex:1}.hex-maps-panel>summary b{margin-left:auto;background:#16496a;color:#bfe7ff;border-radius:999px;padding:2px 8px;font-size:10px}.hex-maps-panel>summary i,.hex-tools-panel>summary span{font-style:normal;margin-left:auto;transition:transform .15s}.hex-maps-panel[open]>summary i,.hex-tools-panel[open]>summary span{transform:rotate(90deg)}
.hex-maps-browser{border-top:1px solid #243746;padding:6px;max-height:min(48vh,440px);overflow:auto;background:#06111a}
.hex-map-browser-search{position:sticky;top:0;z-index:4;padding:0 0 6px;background:#06111a}.hex-map-browser-search input{width:100%;height:34px;min-height:34px;border-radius:8px;font-size:11px;padding:5px 9px}
.hex-map-category{border:1px solid #203849;border-radius:8px;overflow:hidden;margin-bottom:5px;background:#091824}.hex-map-category>summary{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;color:#d2eaff;font-size:11px;font-weight:800;list-style:none;cursor:pointer}.hex-map-category>summary::-webkit-details-marker{display:none}.hex-map-category>summary b{background:#16496a;border-radius:999px;padding:1px 7px;font-size:9px}.hex-map-category-list{padding:4px;display:grid;gap:4px}.hex-map-card{display:flex!important;flex-direction:column!important;align-items:flex-start!important;width:100%;height:auto!important;min-height:48px!important;padding:7px 9px!important;border-radius:7px!important;border:1px solid #173246!important;border-left:4px solid #249eff!important;background:#0b1d2a!important;color:#eef8ff!important;text-align:left!important}.hex-map-card strong{font-size:11px;line-height:1.25}.hex-map-card small{font-size:9px;color:#8fb2ca;margin-top:3px}.hex-map-card.active{background:#123754!important;border-color:#299fff!important;box-shadow:inset 0 0 0 1px rgba(41,159,255,.35)}
.hex-tools-panel[open] .hex-toolbar{display:flex!important}.hex-tools-panel:not([open]) .hex-toolbar{display:none!important}.hex-tools-panel .hex-toolbar{max-height:min(46vh,410px);overflow:auto}
.hex-tools-panel .hex-search-box{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;width:100%}.hex-tools-panel .hex-search-box input{grid-column:1/-1;width:100%;min-width:0;flex-basis:auto}.hex-tools-panel #hexSearchStatus{grid-column:1/-1}
@media(max-width:520px){.hex-maps-browser{max-height:42vh}.hex-map-card{min-height:45px!important}.hex-tools-panel .hex-toolbar{max-height:42vh}.hex-tools-panel>summary,.hex-maps-panel>summary{padding:7px 9px;min-height:36px}}


/* v4.8.7 — actions de glissement confinées et masquées pendant le scroll */
.home-project-swipe,.map-swipe{isolation:isolate;contain:paint;clip-path:inset(0 round 13px)}
.map-swipe{clip-path:inset(0 round 7px)}
.home-project-actions,.map-swipe-actions{opacity:0;visibility:hidden;pointer-events:none;transform:translateZ(0);backface-visibility:hidden;transition:opacity .08s linear}
.home-project-swipe.open .home-project-actions,.home-project-swipe.swiping .home-project-actions,.map-swipe.open .map-swipe-actions,.map-swipe.swiping .map-swipe-actions{opacity:1;visibility:visible;pointer-events:auto}
.home-project-row,.map-swipe-content{backface-visibility:hidden;transform:translateZ(0)}

/* v4.8.8 — catégories de maps compactes lorsqu'elles sont repliées */
.inline-map-category:not([open]) > .inline-map-items{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  overflow:hidden!important;
}
.inline-map-category:not([open]){
  min-height:0!important;
  height:auto!important;
}
.inline-map-categories{
  align-content:start!important;
  grid-auto-rows:max-content!important;
  row-gap:7px!important;
}

/* v4.8.9 — catégories réellement compactes + surface 3D recentrée */
.inline-map-categories{
  display:block!important;
  align-content:initial!important;
  grid-auto-rows:initial!important;
  row-gap:0!important;
}
.inline-map-category{
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0 0 7px 0!important;
}
.inline-map-category:last-child{margin-bottom:0!important}
.inline-map-category:not([open]){
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  overflow:hidden!important;
}
.inline-map-category:not([open]) > summary{
  margin:0!important;
}
.inline-map-category:not([open]) > .inline-map-items{
  display:none!important;
  height:0!important;
  min-height:0!important;
  max-height:0!important;
  padding:0!important;
  margin:0!important;
  border:0!important;
  overflow:hidden!important;
}


/* v4.9.0 — palette tableau et surface 3D plus fluide */
.map-grid td.data-heat-cell{
  border-color:rgba(15,28,40,.78)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(0,0,0,.28)!important;
}
.map-grid td.data-heat-cell input{
  letter-spacing:.05px;
  text-shadow:0 1px 2px rgba(0,0,0,.72)!important;
}
.map-grid td.data-heat-cell.heat-light input{
  color:#07131d!important;
  text-shadow:0 1px 0 rgba(255,255,255,.35)!important;
}
.map-grid td.selected{
  box-shadow:inset 0 0 0 2px #f8fcff,inset 0 0 0 5px #1998ff,0 0 12px rgba(25,152,255,.72)!important;
}

/* ===== Atelier PRO 5.2.0 ===== */
.pro-drawer{position:fixed;inset:0;z-index:5000;pointer-events:none;visibility:hidden}.pro-drawer.open{pointer-events:auto;visibility:visible}.pro-drawer-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);opacity:0;transition:opacity .2s}.pro-drawer.open .pro-drawer-backdrop{opacity:1}.pro-drawer-panel{position:absolute;top:0;right:0;bottom:0;width:min(520px,96vw);background:linear-gradient(180deg,#111927,#080d15);border-left:1px solid #2e6aa0;box-shadow:-20px 0 50px rgba(0,0,0,.55);transform:translateX(102%);transition:transform .24s ease;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.pro-drawer.open .pro-drawer-panel{transform:translateX(0)}.pro-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid #26384c}.pro-drawer-head strong{display:block;font-size:20px}.pro-drawer-head small{display:block;color:#91a6ba;margin-top:3px}.pro-drawer-head button{width:42px;height:42px;border-radius:12px}.pro-tabs{display:flex;gap:6px;overflow-x:auto;padding:10px;border-bottom:1px solid #25374a}.pro-tabs button{flex:0 0 auto;min-height:36px;padding:7px 11px;border-radius:10px;font-size:12px}.pro-tabs button.active{background:#1677ff;color:white;border-color:#4b9cff}.pro-drawer-body{overflow:auto;flex:1;padding:14px 14px calc(20px + env(safe-area-inset-bottom))}.pro-tab{display:none}.pro-tab.active{display:block}.pro-quick-actions,.pro-export-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.pro-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pro-stat{background:#111d2b;border:1px solid #28425d;border-radius:14px;padding:13px}.pro-stat span{display:block;color:#8fa5ba;font-size:12px}.pro-stat strong{display:block;font-size:20px;margin-top:4px}.pro-section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.pro-section-head h3{margin:0}.pro-list{display:grid;gap:8px}.pro-list-item{background:#101b28;border:1px solid #253e57;border-radius:12px;padding:11px;display:flex;gap:10px;align-items:center;justify-content:space-between}.pro-list-item>div{min-width:0}.pro-list-item strong,.pro-list-item small{display:block}.pro-list-item small{color:#8ca1b5;margin-top:3px;overflow-wrap:anywhere}.pro-list-actions{display:flex;gap:6px}.pro-list-actions button{padding:7px 9px;min-height:34px}.pro-version-create{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:12px}.pro-search{width:100%;margin-bottom:12px}.pro-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pro-form-grid label{font-size:12px;color:#a9bbcc}.pro-form-grid input,.pro-form-grid textarea{width:100%;margin-top:5px}.pro-form-grid .wide{grid-column:1/-1}.pro-file-button{display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid #31577c;border-radius:12px;padding:10px;background:#13263a;cursor:pointer}.pro-validation{margin-top:12px;display:grid;gap:7px}.pro-validation div{padding:10px;border-radius:10px;border:1px solid #334b61;background:#111b25}.pro-validation .warning{border-color:#8a6822;background:#2a210e}.pro-validation .critical{border-color:#8e2c38;background:#2b1116}.pro-selection-extra{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.pro-selection-extra button{min-height:32px;padding:6px 9px;font-size:11px}
@media (orientation:landscape) and (min-width:700px){.pro-drawer-panel{width:min(620px,65vw)}.editor-app main{max-width:none}.map-view-window .window-shell{width:98vw;height:96vh}.inline-maps-browser{max-height:58vh}}

/* v5.4.9 — base stable 5.2, accueil compact et en-tête mobile reconstruit */
html,body{max-width:100%;overflow-x:hidden!important}
.project-home{overflow-x:hidden!important}
.project-home-hero{min-height:132px!important;justify-content:flex-start!important;align-items:flex-start!important}
.home-project-state{display:none!important}
.home-brand{width:100%;position:relative;z-index:1}
.home-brand h1{font-size:clamp(31px,8vw,46px)!important}
.home-continue-top{margin-top:6px!important;margin-bottom:18px!important}
.home-primary-actions{margin-top:0!important}

.app-header{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-areas:"brand ecu" "actions actions"!important;
  column-gap:12px!important;
  row-gap:10px!important;
  padding:calc(10px + env(safe-area-inset-top)) 14px 10px!important;
}
.boot-sequence{grid-area:boot;display:none!important}
.brand-zone{grid-area:brand!important;min-width:0!important;display:flex!important;align-items:center!important;overflow:hidden!important;padding:0!important}
.pro-brand{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  font-size:clamp(21px,6.8vw,31px)!important;
  line-height:.95!important;
  white-space:normal!important;
  overflow:visible!important;
}
.pro-brand>span{display:block!important;max-width:100%!important;white-space:nowrap!important}
.pro-brand .brand-accent{margin:0!important}
.ecu-header-card{
  grid-area:ecu!important;
  justify-self:end!important;
  align-self:center!important;
  width:auto!important;
  max-width:44vw!important;
  min-width:112px!important;
  margin:0!important;
  padding:8px 0 8px 12px!important;
  border-left:1px solid #263442!important;
  text-align:right!important;
  overflow:hidden!important;
}
.ecu-header-card strong{font-size:15px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.ecu-header-card small{font-size:8.5px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.header-actions{
  grid-area:actions!important;
  display:grid!important;
  grid-template-columns:repeat(5,48px)!important;
  justify-content:center!important;
  align-items:center!important;
  gap:8px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:visible!important;
}
.icon-action,.back-projects-btn{
  width:48px!important;
  height:48px!important;
  min-width:48px!important;
  min-height:48px!important;
  padding:0!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:11px!important;
  font-size:20px!important;
  line-height:1!important;
}
.back-projects-btn{font-size:30px!important}
.main-nav{grid-template-columns:repeat(6,minmax(0,1fr))!important;width:100%!important;max-width:100%!important;overflow:hidden!important}
.main-nav button{min-width:0!important;padding-left:2px!important;padding-right:2px!important;font-size:8px!important}
.main-nav button span{font-size:18px!important}
.secondary-actions{max-width:100%!important}

@media(max-width:430px){
  .app-header{grid-template-columns:minmax(0,1fr) minmax(112px,42vw)!important;padding-left:12px!important;padding-right:12px!important}
  .pro-brand{font-size:clamp(19px,6vw,25px)!important}
  .ecu-header-card{min-width:108px!important;max-width:42vw!important;padding-left:9px!important}
  .header-actions{grid-template-columns:repeat(5,44px)!important;gap:7px!important}
  .icon-action,.back-projects-btn{width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important}
  .main-nav button{font-size:7px!important}
  .main-nav button span{font-size:17px!important}
  .project-home-hero{min-height:110px!important}
}


/* ===== v5.5.0 — en-tête compact et accordéons sans espace mort ===== */
.app-header{
  grid-template-columns:minmax(0,1fr) minmax(128px,38vw)!important;
  column-gap:10px!important;
  row-gap:7px!important;
  padding:calc(8px + env(safe-area-inset-top)) 12px 8px!important;
}
.brand-zone{overflow:visible!important;padding-right:2px!important}
.pro-brand{
  font-size:clamp(23px,7.2vw,32px)!important;
  line-height:.92!important;
  letter-spacing:-.2px!important;
}
.ecu-header-card{
  width:100%!important;
  min-width:128px!important;
  max-width:38vw!important;
  padding:5px 0 5px 9px!important;
}
.ecu-header-card strong{font-size:14px!important;line-height:1.05!important}
.ecu-header-card small{display:grid!important;gap:2px!important;margin-top:4px!important;font-size:8px!important;line-height:1.15!important}
.ecu-header-card small span{display:block!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.header-actions{
  grid-template-columns:repeat(5,38px)!important;
  gap:7px!important;
  justify-content:center!important;
}
.icon-action,.back-projects-btn{
  width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;
  border-radius:9px!important;font-size:17px!important;
}
.back-projects-btn{font-size:25px!important}

/* Le menu de présentation du BIN est absorbé dans Affichage de la map. */
.editor-panel.no-current-map>.editor-head{display:none!important}
.map-display-bin-info{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin:0 0 9px;padding:9px 11px;border:1px solid #23435e;border-radius:10px;
  background:#081725;color:#dcecff;font-size:11px;
}
.map-display-bin-info[hidden]{display:none!important}
.map-display-bin-info strong{color:#54b0ff;font-size:13px}
.map-display-bin-info span{color:#8197aa;text-align:right}

/* Un accordéon fermé ne conserve plus la grande hauteur de l’éditeur. */
.workspace.editor-only{display:block!important;margin:0!important;padding:0!important}
.editor-only .editor-panel{min-height:0!important}
.editor-panel:has(.map-display-panel:not([open])){min-height:0!important;margin-bottom:0!important}
.map-display-panel:not([open]){margin-bottom:0!important}
.map-display-panel:not([open])+.anything{margin-top:0!important}
#powerAccordion{margin-top:10px!important}
.workspace.editor-only:has(.map-display-panel:not([open])) + #powerAccordion{margin-top:0!important}

@media(max-width:430px){
  .app-header{grid-template-columns:minmax(0,1fr) minmax(122px,39vw)!important;padding-left:10px!important;padding-right:10px!important}
  .pro-brand{font-size:clamp(22px,7vw,27px)!important}
  .ecu-header-card{min-width:122px!important;max-width:39vw!important;padding-left:8px!important}
  .header-actions{grid-template-columns:repeat(5,36px)!important;gap:6px!important}
  .icon-action,.back-projects-btn{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important}
  .map-display-bin-info{align-items:flex-start;flex-direction:column;gap:3px}
  .map-display-bin-info span{text-align:left}
}

/* ===== v5.5.1 — liste de maps compacte, logo sans séparateur, vue 2D lecture seule ===== */
/* Le trait vertical provenait de la bordure du bloc ECU et traversait visuellement le logo. */
.ecu-header-card{border-left:0!important;box-shadow:none!important}

/* Quand toutes les catégories sont fermées, la zone Maps reprend sa hauteur naturelle. */
.maps-home-panel.maps-all-collapsed[open]{
  max-height:none!important;
  height:auto!important;
  overflow:visible!important;
}
.maps-home-panel.maps-all-collapsed[open] .maps-home-content{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
.maps-home-panel.maps-all-collapsed[open] .inline-map-categories{
  flex:0 0 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:0!important;
}
.maps-home-panel.maps-all-collapsed[open] + .workspace,
.maps-home-panel.maps-all-collapsed[open] ~ .workspace{
  margin-top:10px!important;
}

/* La vue 2D est désormais strictement en lecture seule. */
.view-2d-readonly{
  pointer-events:none!important;
  user-select:none!important;
  -webkit-user-select:none!important;
  touch-action:pan-y!important;
}
.view-2d-readonly-note{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:8px;
  padding:3px 7px;
  border:1px solid #29445b;
  border-radius:999px;
  color:#9db3c6;
  background:#0b1823;
  font-size:10px;
  font-weight:700;
}


/* ===== v5.5.2 : espacement, sélection visible et boîte PRO harmonisée ===== */
/* Même séparation entre les deux accordéons fermés que les panneaux Projet/Mappack/Maps. */
.workspace.editor-only{margin-bottom:14px!important}
.workspace.editor-only .editor-panel{margin-bottom:0!important}
.workspace.editor-only:has(#mapDisplayPanel:not([open])){margin-bottom:14px!important}
#mapDisplayPanel:not([open]){margin:0!important}
#powerAccordion{margin-top:0!important;margin-bottom:14px!important}
#powerAccordion:not([open]){margin-top:0!important}

/* Cellules sélectionnées : bordure lumineuse + voile bleu + coche discrète. */
.map-grid td.selected{
 position:relative!important;
 z-index:3!important;
 outline:0!important;
 box-shadow:inset 0 0 0 3px #eaf7ff,inset 0 0 0 6px #0b8dff,0 0 0 2px rgba(11,141,255,.45),0 0 16px rgba(11,141,255,.85)!important;
 filter:brightness(1.14) saturate(1.15)!important;
}
.map-grid td.selected::after{
 content:"✓";position:absolute;right:3px;top:2px;width:18px;height:18px;border-radius:50%;
 display:grid;place-items:center;background:#087ee9;color:#fff;font-size:12px;font-weight:900;
 box-shadow:0 1px 5px #0008;pointer-events:none
}
.map-grid td.selected input{color:#fff!important;text-shadow:0 1px 2px #000,0 0 5px #000!important}

/* La boîte PRO reprend exactement les volumes, contours et bleu de l'application. */
.pro-drawer-panel{background:linear-gradient(180deg,#081624,#050b12)!important;border-left:1px solid #2b4d68!important}
.pro-drawer-head{background:linear-gradient(90deg,#0d2132,#08131e)!important;border-bottom:1px solid #29445b!important}
.pro-tabs{background:#07111a!important;border-bottom:1px solid #29445b!important;gap:8px!important}
.pro-tabs button,.pro-quick-actions button,.pro-export-grid button,.pro-list-actions button,.pro-version-create button,
.pro-selection-extra button,.pro-drawer-panel button:not(.danger){
 background:linear-gradient(180deg,#13283a,#0a1824)!important;
 border:1px solid #315773!important;color:#eef8ff!important;border-radius:12px!important;
 min-height:40px!important;padding:8px 12px!important;font-weight:750!important;box-shadow:none!important
}
.pro-tabs button.active,.pro-drawer-panel button.primary,.pro-quick-actions button:active,.pro-selection-extra button:active{
 background:linear-gradient(135deg,#168cff,#075bc7)!important;border-color:#4aa8ff!important;color:#fff!important
}
.pro-drawer-panel button.danger{background:linear-gradient(180deg,#52202a,#2b1017)!important;border:1px solid #9a3c4b!important;color:#ffb4be!important;border-radius:12px!important}
.pro-stat,.pro-list-item,.pro-validation div{background:linear-gradient(180deg,#0d1d2b,#09131d)!important;border:1px solid #29465f!important;border-radius:14px!important}
.pro-drawer-panel input,.pro-drawer-panel textarea,.pro-drawer-panel select{background:#06111b!important;border:1px solid #31536f!important;color:#fff!important;border-radius:11px!important}
.pro-selection-extra{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}


/* ===== Version 1.0 : titres uniformes, HEX intégré et sélection par axes ===== */
:root{--lpt-panel-title-size:clamp(22px,5.8vw,32px)}
#projectPanel>summary>span,
#mappackPanel>summary>span,
#mapsPanel>summary>span,
#hexPanel>summary>span,
#mapDisplayPanel>summary>span,
#powerAccordion>summary>span{
  font-size:var(--lpt-panel-title-size)!important;
  line-height:1.12!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
  color:#55adff!important;
}
#projectPanel>summary,#mappackPanel>summary,#mapsPanel>summary,#hexPanel>summary,#powerAccordion>summary,
#mapDisplayPanel>summary{min-height:92px!important;padding:20px 24px!important;box-sizing:border-box}
#projectPanel>summary>small,#mappackPanel>summary>small,#mapsPanel>summary>small,#hexPanel>summary>small,#mapDisplayPanel>summary>small,#powerAccordion>summary>small{
  font-size:15px!important;line-height:1.35!important;color:#8ba3b9!important;margin-top:8px!important
}
.hex-inline-panel{overflow:hidden}
.hex-inline-content{padding:10px 12px 16px;min-height:180px}
.hex-inline-panel:not([open]) .hex-inline-content{display:none!important}
#hexArea{min-width:0;max-width:100%;overflow:hidden}
#hexArea .hex-continuous{height:min(62vh,680px)!important;min-height:360px}
#hexArea .hex-toolbar{position:relative;top:auto}
/* Les axes deviennent des commandes de sélection lorsque la case est cochée. */
.cell-select-mode-active .editable-axis,.cell-select-mode-active .map-corner,
body:has(#cellSelectModeTable:checked) #tableDialog .editable-axis,
body:has(#cellSelectModeTable:checked) #tableDialog .map-corner{
  cursor:pointer!important;box-shadow:inset 0 0 0 1px rgba(60,169,255,.42)
}
/* Les anciens boutons Ligne, Colonne, Modifiées, Inverser et Plage de valeurs ne sont plus affichés. */
.pro-selection-extra,.advanced-selection-hidden{display:none!important}
footer{font-size:13px!important;letter-spacing:.02em}
@media(max-width:520px){
  :root{--lpt-panel-title-size:24px}
  #projectPanel>summary,#mappackPanel>summary,#mapsPanel>summary,#hexPanel>summary,#powerAccordion>summary,#mapDisplayPanel>summary{padding:16px 18px!important;min-height:78px!important}
  #projectPanel>summary>small,#mappackPanel>summary>small,#mapsPanel>summary>small,#hexPanel>summary>small,#mapDisplayPanel>summary>small,#powerAccordion>summary>small{font-size:13px!important}
  .hex-inline-content{padding:8px 6px 12px}
}


/* Version 1.0 — harmonisation des outils HEX avec l’interface principale */
.hex-tools-panel{
  border:1px solid #29465d;
  border-radius:14px;
  overflow:hidden;
  background:linear-gradient(180deg,#091521 0%,#07111a 100%);
  box-shadow:0 10px 24px rgba(0,0,0,.22);
}
.hex-tools-panel>summary{
  min-height:48px;
  padding:11px 14px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#56adff;
  background:linear-gradient(90deg,#0d2030,#091722);
  border-bottom:1px solid transparent;
  font-weight:850;
  font-size:16px;
  letter-spacing:.1px;
  list-style:none;
}
.hex-tools-panel[open]>summary{border-bottom-color:#29465d}
.hex-tools-panel>summary::-webkit-details-marker{display:none}
.hex-tools-panel .hex-toolbar{
  position:static!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
  padding:12px!important;
  max-height:none!important;
  overflow:visible!important;
  border:0!important;
  border-radius:0!important;
  background:#07111a!important;
}
.hex-tools-panel .hex-toolbar label{
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:7px;
  color:#9bb0c3;
  font-size:12px;
  line-height:1.2;
}
.hex-tools-panel .hex-toolbar select,
.hex-tools-panel .hex-toolbar input{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  padding:7px 34px 7px 11px!important;
  color:#eaf4ff!important;
  background-color:#091824!important;
  border:1px solid #31536c!important;
  border-radius:10px!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 2px 7px rgba(0,0,0,.18);
  font-size:13px!important;
  font-weight:650;
  outline:none;
}
.hex-tools-panel .hex-toolbar select{
  background-image:linear-gradient(45deg,transparent 50%,#53adff 50%),linear-gradient(135deg,#53adff 50%,transparent 50%);
  background-position:calc(100% - 16px) 16px,calc(100% - 11px) 16px;
  background-size:5px 5px,5px 5px;
  background-repeat:no-repeat;
}
.hex-tools-panel .hex-toolbar select:focus,
.hex-tools-panel .hex-toolbar input:focus{
  border-color:#1d91ff!important;
  box-shadow:0 0 0 2px rgba(29,145,255,.2),inset 0 1px 0 rgba(255,255,255,.04);
}
.hex-tools-panel .hex-toolbar button,
.hex-tools-panel .hex-quick-zones button{
  min-width:0!important;
  min-height:40px!important;
  height:40px!important;
  padding:7px 11px!important;
  border:1px solid #31536c!important;
  border-radius:10px!important;
  color:#dceeff!important;
  background:linear-gradient(180deg,#102334,#0a1824)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 3px 8px rgba(0,0,0,.2);
  font-size:12px!important;
  font-weight:750;
  white-space:nowrap;
}
.hex-tools-panel .hex-toolbar button:active{
  transform:translateY(1px);
  filter:brightness(1.15);
}
.hex-tools-panel .hex-toolbar button.active-tool,
.hex-tools-panel .hex-toolbar button:hover{
  color:#fff!important;
  border-color:#1d91ff!important;
  background:linear-gradient(180deg,#167bd0,#10518d)!important;
}
.hex-tools-panel .hex-toolbar button:disabled{
  color:#718091!important;
  border-color:#243543!important;
  background:#111a22!important;
  box-shadow:none!important;
  opacity:.55!important;
}
.hex-tools-panel #hexJumpBtn{align-self:end}
.hex-tools-panel .hex-search-box{
  grid-column:1/-1;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 48px 48px!important;
  gap:7px!important;
  width:100%;
}
.hex-tools-panel .hex-search-box input{
  grid-column:1/-1!important;
  height:42px!important;
  padding-right:11px!important;
}
.hex-tools-panel #hexSearchBtn{
  grid-column:1/2;
  width:100%;
}
.hex-tools-panel #hexPrevResult,
.hex-tools-panel #hexNextResult{
  width:48px;
  padding:0!important;
  font-size:15px!important;
}
.hex-tools-panel #hexSearchStatus{
  grid-column:1/-1!important;
  min-height:20px;
  margin:0!important;
  color:#83a5bd!important;
  font:11px ui-monospace,SFMono-Regular,Menlo,monospace!important;
}
.hex-tools-panel .hex-quick-zones{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
}
.hex-tools-panel #hexSelectBtn,
.hex-tools-panel #hexCreateMapBtn,
.hex-tools-panel #hexClearSelectionBtn{
  width:100%;
}
.hex-tools-panel .hex-selection-status,
.hex-tools-panel .hex-source-status{
  grid-column:1/-1;
  width:100%;
  margin:0!important;
  color:#86a1b6!important;
  font:10.5px ui-monospace,SFMono-Regular,Menlo,monospace!important;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:520px){
  .hex-tools-panel .hex-toolbar{grid-template-columns:1fr 1fr;padding:10px!important;gap:8px}
  .hex-tools-panel .hex-toolbar label{grid-template-columns:1fr;gap:4px;font-size:11px}
  .hex-tools-panel .hex-toolbar select,
  .hex-tools-panel .hex-toolbar input{height:38px!important;min-height:38px!important;font-size:12px!important}
  .hex-tools-panel .hex-toolbar button{height:38px!important;min-height:38px!important;font-size:11.5px!important}
  .hex-tools-panel .hex-search-box{grid-template-columns:minmax(0,1fr) 44px 44px!important}
  .hex-tools-panel #hexPrevResult,.hex-tools-panel #hexNextResult{width:44px}
}

/* Bibliothèque DAMOS intégrée */
.damos-match-status{margin:10px 0;padding:10px 12px;border:1px solid #343434;border-radius:8px;background:#111;color:#bbb;font-size:12px}.damos-match-status.match{border-color:#7a5b00;color:#ffd75c}.damos-library-dialog{width:min(920px,96vw);height:min(760px,90vh);padding:0;border:1px solid #3a3a3a;border-radius:12px;background:#0b0b0b;color:#eee}.damos-library-dialog::backdrop{background:#000b}.damos-library-dialog .dialog-shell{display:flex;flex-direction:column;height:100%}.damos-library-dialog header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #2b2b2b}.damos-library-dialog header h2{margin:0}.damos-library-dialog header p{margin:4px 0 0;color:#999;font-size:12px}.damos-library-dialog header button{background:#222;color:#fff;border:1px solid #444;border-radius:7px;padding:8px 11px}.damos-toolbar{display:grid;grid-template-columns:1fr 210px;gap:10px;padding:12px}.damos-toolbar input,.damos-toolbar select{background:#151515;color:#eee;border:1px solid #383838;border-radius:8px;padding:11px}.damos-results{overflow:auto;padding:0 12px 14px}.damos-card{border:1px solid #303030;border-radius:9px;background:#121212;margin-bottom:9px;padding:12px}.damos-card.match{border-color:#a77b00;background:#191500}.damos-card-head{display:flex;justify-content:space-between;gap:10px}.damos-card h3{margin:0;color:#f3c433;font-size:15px}.damos-card p{margin:6px 0;color:#bbb;font-size:12px}.damos-card small{color:#777}.damos-files{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.damos-file-chip{font-size:11px;padding:4px 7px;border:1px solid #333;border-radius:999px;background:#1b1b1b;color:#ccc}.damos-score{font-weight:700;color:#f3c433;white-space:nowrap}@media(max-width:650px){.damos-toolbar{grid-template-columns:1fr}.damos-library-dialog{width:100vw;height:92vh;border-radius:12px 12px 0 0;margin:auto 0 0}.damos-card-head{display:block}.damos-score{display:block;margin-top:5px}}
/* Correctif DAMOS v3 : repli pour Safari/iOS et ouverture locale */
.damos-library-dialog.dialog-fallback-open[open]{display:block;position:fixed;inset:4vh 2vw;z-index:10000;margin:auto;max-width:96vw;max-height:92vh;box-shadow:0 0 0 100vmax rgba(0,0,0,.78)}
#damosLibraryBtn,#autoDamosBtn{touch-action:manipulation;position:relative;z-index:1}

.damos-engine-ready{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:rgba(46,204,113,.16);border:1px solid rgba(46,204,113,.45);font-size:11px;font-weight:700}

.damos-card{cursor:pointer}.damos-card.selected{outline:2px solid #21a0ff;box-shadow:0 0 0 4px rgba(33,160,255,.18)}
.damos-use-btn{width:100%;margin-top:14px;padding:13px 12px;border-radius:12px;border:1px solid #2f91d8;background:#12304a;color:#fff;font-weight:800;font-size:16px}.damos-use-btn:active{transform:scale(.985)}

/* Dossiers de maps v1.9 */
.map-category-folder{border:1px solid var(--line,#29445c);border-radius:14px;margin:10px 0;overflow:hidden;background:rgba(7,18,28,.72)}.map-category-folder>summary{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:800;cursor:pointer;background:rgba(12,37,55,.9)}.map-category-folder>summary span:last-child{min-width:36px;text-align:center;border-radius:999px;padding:3px 9px;background:#174a6d}.map-folder-items{display:grid;gap:8px;padding:10px}.map-category-folder:not([open]) .map-folder-items{display:none}
.map-display-base-control{display:flex;justify-content:flex-end;padding:8px 10px;border-bottom:1px solid rgba(80,160,220,.22)}
.map-display-base-control label{display:flex;align-items:center;gap:8px;font-weight:700;color:#b9d7ef}
.map-display-base-control select{min-height:38px;border-radius:10px;background:#0b1925;color:#fff;border:1px solid #345c78;padding:6px 10px}
.map-description{display:block;margin-top:8px;line-height:1.45;color:#a9c0d6;font-size:.82rem;max-width:900px}.map-description strong{color:#58adff}.editor-head #mapMeta span{display:block}
/* v9.0 */
.map-advanced-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.map-advanced-filters select{min-width:0;width:100%;background:#07121d;color:#dceeff;border:1px solid #284b65;border-radius:12px;padding:11px}.force-edc-btn{width:100%;margin:10px 0 14px}.similar-maps-dialog .window-shell{max-width:720px}.similar-map-list{display:grid;gap:8px;max-height:52vh;overflow:auto;margin:12px 0}.similar-map-list label{display:flex;gap:12px;align-items:center;padding:12px;border:1px solid #24445b;border-radius:12px;background:#081521}.similar-map-list span{display:grid;gap:3px}.similar-map-list small{color:#8da9bd}.reset-3d-btn{position:absolute;z-index:3;right:12px;top:10px;background:#10283a;color:#cfeaff;border:1px solid #2f6c95;border-radius:10px;padding:8px 10px}.large-view-area,#mapViewerArea{position:relative}.map-swipe-actions small{font-size:11px}@media(max-width:700px){.map-advanced-filters{grid-template-columns:1fr}.similar-maps-dialog .window-shell{width:96vw}}
/* v9.1 — fusion multi-sources et IA locale */
.detection-modes-btn{width:100%;margin:10px 0}.detection-modes-dialog .window-shell{max-width:720px}.detect-policy{padding:12px;border:1px solid #28506e;border-radius:12px;background:#071723;color:#b9d5e8}.detect-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.detect-mode-grid label{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #29465b;border-radius:12px;background:#08141e}.detect-mode-grid label span{display:grid;gap:4px}.detect-mode-grid small{color:#8fa8ba}.fusion-order{margin-top:12px;padding:12px;border-radius:12px;background:#0a1c2b;display:grid;gap:5px}.map-source-badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.map-source-badges span{font-size:10px;line-height:1;padding:5px 7px;border-radius:999px;background:#173047;color:#d9efff}.map-source-badges .src-edcsuite{background:#0d5b97}.map-source-badges .src-damos{background:#46651c}.map-source-badges .src-mappack{background:#684c16}.map-source-badges .src-ai{background:#5b2b78}.map-source-badges .src-heuristic{background:#444b54}@media(max-width:700px){.detect-mode-grid{grid-template-columns:1fr}}
#lptLoadErrorBox{position:fixed;inset:0;z-index:999999;background:rgba(8,12,18,.78);display:grid;place-items:center;padding:18px}.lpt-load-error-card{max-width:520px;background:#151d26;border:1px solid #a94747;border-radius:14px;padding:18px;color:#eef4fa;box-shadow:0 18px 60px #000}.lpt-load-error-card strong{display:block;font-size:17px;margin-bottom:8px}.lpt-load-error-card p{line-height:1.45;color:#cbd5df}.lpt-load-error-card button{padding:9px 16px;border-radius:8px}
/* v9.3 — commandes mappack cohérentes */
.tool-command-button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;margin:8px 0;border:1px solid #303846;border-radius:10px;background:linear-gradient(180deg,#202631,#171c24);color:#eef3f8;box-shadow:0 2px 10px #0005}
.tool-command-button:active{transform:translateY(1px);background:#252d39}.tool-command-button:disabled{opacity:.55}
.tool-command-button .tool-command-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#0d73d8;color:white;font-size:18px;flex:0 0 34px}
.tool-command-button span:last-child{display:flex;flex-direction:column;gap:2px}.tool-command-button strong{font-size:13px}.tool-command-button small{font-size:10px;color:#aeb8c6;font-weight:400}
.detect-mode-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:10px 0}.detect-mode-grid label{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid #303846;border-radius:9px;background:#171c24}.detect-mode-grid label span{display:flex;flex-direction:column}.detect-mode-grid small{color:#aeb8c6;margin-top:2px}.fusion-order{display:flex;flex-direction:column;gap:4px;padding:10px;border-radius:8px;background:#121720;border:1px solid #2a3340}.fusion-progress{margin-top:10px}.fusion-progress>div{height:7px;border-radius:6px;background:#111720;overflow:hidden;margin-top:5px}.fusion-progress i{display:block;height:100%;width:0;background:#1686f2;transition:width .2s}.map-source-badges{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.map-source-badges em{font-style:normal;font-size:8px;padding:2px 5px;border-radius:9px;background:#273242;color:#dbe7f4}.source-edcsuite{background:#075fae!important}.source-damos{background:#446c1e!important}.source-mappack{background:#714b9d!important}
/* v10.0 - centre de stabilité */
#lptLoadGuard{position:fixed;inset:0;z-index:99999;background:rgba(6,10,18,.78);display:grid;place-items:center;padding:20px;backdrop-filter:blur(8px)}#lptLoadGuard[hidden]{display:none}.lpt-load-card{width:min(420px,92vw);background:#111a27;border:1px solid #31445f;border-radius:18px;padding:24px;box-shadow:0 24px 80px #0009;text-align:center}.lpt-load-spinner{width:42px;height:42px;border:4px solid #30435d;border-top-color:#65b8ff;border-radius:50%;margin:0 auto 16px;animation:lptSpin .8s linear infinite}@keyframes lptSpin{to{transform:rotate(360deg)}}.lpt-load-progress{height:8px;background:#263548;border-radius:99px;overflow:hidden;margin:16px 0}.lpt-load-progress i{display:block;height:100%;width:5%;background:linear-gradient(90deg,#4f9cff,#72d6ff);transition:width .25s}.lpt-load-actions{display:flex;gap:10px;justify-content:center}.lpt-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.lpt-health-grid div{padding:12px;border:1px solid #2d4057;border-radius:12px;background:#121d2b}.lpt-health-grid small{display:block;opacity:.7}.lpt-health-grid strong{font-size:1.05rem}.lpt-diagnostic-log{max-height:42vh;overflow:auto;margin-top:14px;display:grid;gap:8px}.lpt-diagnostic-log article{padding:10px 12px;border-radius:10px;background:#111a26;border-left:3px solid #7087a4}.lpt-diagnostic-log article.log-error,.lpt-diagnostic-log article.log-promise,.lpt-diagnostic-log article.log-timeout{border-left-color:#ff6767}.lpt-diagnostic-log article.log-warning{border-left-color:#ffc45d}.lpt-diagnostic-log article p{margin:4px 0 0}.lpt-diagnostic-log time{float:right;font-size:.72rem;opacity:.55}.lpt-safe-mode .tool-command-button{contain:content}
/* ===== Version 10.1 — commandes interface réparées ===== */
.visually-hidden-file{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;clip-path:inset(50%)!important}
.app-action-button{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:42px;padding:.62rem .9rem;border:1px solid #2f5e7b;border-radius:10px;background:linear-gradient(180deg,#17334a,#102638);color:#eaf7ff;font:inherit;font-weight:700;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.06),0 4px 12px rgba(0,0,0,.18);transition:transform .12s ease,border-color .12s ease,background .12s ease}
.app-action-button:hover,.app-action-button:focus-visible{border-color:#63bdf0;background:linear-gradient(180deg,#1c405b,#143149);outline:none}.app-action-button:active{transform:translateY(1px) scale(.99)}
.compare-toolbar .app-action-button{min-width:170px}.compare-file-button{user-select:none}
#proSaveProjectInfoBtn.saved-ok{border-color:#35c979;background:linear-gradient(180deg,#17613d,#10472e)}
.map-swipe-actions .map-edit-action small{font-weight:700}
.lpt-force-edc{width:100%;display:flex!important;align-items:center;gap:14px;padding:15px 18px!important;border:1px solid #315778!important;border-radius:16px!important;background:linear-gradient(180deg,#13283b,#0c1b29)!important;color:#eef7ff!important;text-align:left!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.lpt-force-edc .tool-command-icon{display:grid;place-items:center;min-width:42px;height:42px;border-radius:12px;background:#0a76d8;font-size:21px}.lpt-force-edc strong,.lpt-force-edc small{display:block}.lpt-force-edc strong{font-size:16px}.lpt-force-edc small{margin-top:3px;color:#91a9bc;font-size:12px}

/* v10.7 diagnostics et stabilité */
.lpt-diagnostic-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.lpt-action-btn{min-height:46px;border:1px solid #31506a;border-radius:12px;background:linear-gradient(180deg,#142536,#0a1723);color:#eef6ff;font-weight:800;padding:10px 12px;box-shadow:inset 0 1px 0 #ffffff0d,0 5px 16px #0005}.lpt-action-btn.primary{border-color:#168cff;background:linear-gradient(135deg,#086fe8,#0d91ff)}.lpt-action-btn.danger{border-color:#87414a;background:linear-gradient(180deg,#35171d,#211015);color:#ffb4bd}.lpt-action-btn:active{transform:translateY(1px);filter:brightness(1.08)}@media(max-width:620px){.lpt-diagnostic-actions{grid-template-columns:1fr}.lpt-action-btn{width:100%}}

/* v13.2 — commande EDC Suite cohérente avec les actions de la bibliothèque */
.lpt-edcsuite-force-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #35516b;border-radius:10px;background:#132638;color:#fff;padding:9px 11px;font-weight:700;font:inherit;min-height:38px;touch-action:manipulation}
.lpt-edcsuite-force-btn:active{transform:translateY(1px);background:#19334a}
.lpt-edcsuite-force-btn:disabled{opacity:.55}
.lpt-edcsuite-force-btn[hidden]{display:none!important}
@media(max-width:760px){.lpt-edcsuite-force-btn{flex:1 1 45%}}

/* v13.7 — classification visuelle des maps */
.map-item[data-color-category],.inline-map-item[data-color-category]{--map-category-color:#788391}
.map-item[data-color-category="turbo"],.inline-map-item[data-color-category="turbo"]{--map-category-color:#348cff}
.map-item[data-color-category="egr"],.inline-map-item[data-color-category="egr"]{--map-category-color:#35c96f}
.map-item[data-color-category="limiters"],.inline-map-item[data-color-category="limiters"]{--map-category-color:#ff5148}
.map-item[data-color-category="injection"],.inline-map-item[data-color-category="injection"]{--map-category-color:#a77cff}
.map-item[data-color-category="rail"],.inline-map-item[data-color-category="rail"]{--map-category-color:#ffc247}
.map-item[data-color-category="air"],.inline-map-item[data-color-category="air"]{--map-category-color:#42c8e8}
.map-item[data-color-category="temperature"],.inline-map-item[data-color-category="temperature"]{--map-category-color:#ff8b55}
.map-item[data-color-category="pedal"],.inline-map-item[data-color-category="pedal"]{--map-category-color:#45d7b0}
.map-item[data-color-category="other"],.inline-map-item[data-color-category="other"]{--map-category-color:#7e8b98}
.map-color-marker{display:inline-block;width:8px;height:8px;min-width:8px;border-radius:50%;margin-right:7px;background:var(--map-category-color);box-shadow:0 0 0 2px color-mix(in srgb,var(--map-category-color) 25%,transparent);vertical-align:1px}
.map-item[data-color-category],.inline-map-item[data-color-category]{border-left-color:var(--map-category-color)!important}
.map-color-legend{display:flex;gap:7px;align-items:center;overflow-x:auto;padding:7px 2px 9px;scrollbar-width:none}.map-color-legend::-webkit-scrollbar{display:none}.map-color-legend span{display:inline-flex;align-items:center;white-space:nowrap;color:#9db0bf;font-size:9px}.map-color-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px;background:var(--legend-color)}

/* ===== v13.8 — panneau Maps plein écran et légende toujours visible ===== */
.maps-home-panel[open]:not(.maps-all-collapsed){
  height:var(--maps-expanded-height,calc(100dvh - 150px))!important;
  min-height:430px!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
.maps-home-panel[open]:not(.maps-all-collapsed)>summary{flex:0 0 auto!important}
.maps-home-panel[open]:not(.maps-all-collapsed) .maps-home-content{
  flex:1 1 auto!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
}
#mapsPanel .inline-map-toolbar{
  flex:0 0 auto!important;
  position:relative!important;
  z-index:4!important;
}
#mapsPanel .map-color-legend{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  flex:0 0 auto!important;
  min-height:48px!important;
  max-height:none!important;
  overflow:visible!important;
  margin:0 0 7px!important;
  padding:5px!important;
  gap:4px!important;
  border:1px solid #25445b!important;
  border-radius:10px!important;
  background:#071521!important;
  position:relative!important;
  z-index:3!important;
}
#mapsPanel .map-color-legend span{
  min-width:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  padding:4px 5px!important;
  border:0!important;
  border-radius:7px!important;
  background:#0b1d2a!important;
  color:#c7d9e7!important;
  font-size:9px!important;
  line-height:1.15!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  text-align:left!important;
  text-shadow:none!important;
}
#mapsPanel .map-color-legend i{flex:0 0 7px!important;width:7px!important;height:7px!important;margin-right:5px!important}
#mapsPanel .inline-map-categories{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  padding-bottom:max(80px,env(safe-area-inset-bottom))!important;
}
@media(max-width:520px){
  .maps-home-panel[open]:not(.maps-all-collapsed){min-height:400px!important}
  #mapsPanel .map-color-legend{grid-template-columns:repeat(2,minmax(0,1fr))!important;min-height:78px!important}
  #mapsPanel .map-color-legend span{font-size:9.5px!important;padding:5px 6px!important}
}

/* v13.9 — état DAMOS actif */
.active-damos-status{display:flex;align-items:center;gap:10px;margin:8px 0 10px;padding:10px 12px;border:1px solid rgba(34,197,94,.65);border-radius:12px;background:rgba(34,197,94,.09);color:#eefaf2}
.active-damos-status[hidden]{display:none!important}.active-damos-check{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#22c55e;color:#06150b;font-weight:900;flex:0 0 auto}.active-damos-status>span:nth-child(2){display:flex;flex-direction:column;min-width:0;flex:1}.active-damos-status small{color:#a9c7b2;margin-top:2px}.active-damos-status button{border:1px solid #31506b;background:#081827;color:#b9d8ef;border-radius:9px;padding:7px 9px}.damos-card.selected{border-color:#22c55e!important;box-shadow:0 0 0 1px rgba(34,197,94,.35) inset}.damos-card.selected .damos-use-btn::before{content:'✓ ';color:#22c55e;font-weight:900}
@media(max-width:700px){.active-damos-status{align-items:flex-start;flex-wrap:wrap}.active-damos-status button{margin-left:34px}}

/* v14.4 — choix de la méthode de détection */
.detection-method-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid rgba(148,163,184,.25);border-radius:12px;background:rgba(15,23,42,.55);margin:10px 0 14px}.detection-method-line span{display:flex;flex-direction:column;gap:3px}.detection-method-line small{opacity:.72}.detection-method-line select{min-width:240px;max-width:100%;padding:10px;border-radius:9px;background:#111827;color:#f8fafc;border:1px solid rgba(148,163,184,.35)}@media(max-width:680px){.detection-method-line{align-items:stretch;flex-direction:column}.detection-method-line select{width:100%;min-width:0}}

/* ===== v14.6 Qualité, validation et banc de test ===== */
.quality-map-filters{display:flex;gap:6px;align-items:center;overflow-x:auto;padding:7px 0;flex:0 0 auto;-webkit-overflow-scrolling:touch}.quality-map-filters button{white-space:nowrap;padding:6px 9px;border-radius:999px;font-size:11px}.quality-map-filters button.active{border-color:#5da9ff;box-shadow:0 0 0 1px #5da9ff inset}.quality-map-filters label{display:flex;align-items:center;gap:5px;white-space:nowrap;font-size:11px;opacity:.9}.quality-detection-report{flex:0 0 auto;border:1px solid rgba(130,160,200,.22);border-radius:10px;padding:8px;background:rgba(10,18,30,.68);margin-bottom:7px}.quality-report-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.quality-report-head>div{display:flex;flex-direction:column}.quality-report-head small{opacity:.65;font-size:10px}.quality-report-head button{padding:6px 9px;font-size:11px}.quality-report-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-top:7px}.quality-report-grid span{display:flex;flex-direction:column;align-items:center;padding:5px 2px;border-radius:7px;background:rgba(255,255,255,.04);font-size:9px;white-space:nowrap}.quality-report-grid b{font-size:15px}.q-confirmed b{color:#45d483}.q-probable b{color:#5da9ff}.q-review b{color:#f4b942}.q-rejected b{color:#f06464}.map-quality-badge{margin-left:auto;padding:2px 5px;border-radius:999px;font-style:normal;font-size:9px;line-height:1.2;border:1px solid currentColor;opacity:.92}.inline-map-item strong,.map-item strong{display:flex;align-items:center;gap:5px;width:100%}.quality-confirmed{color:#45d483}.quality-probable{color:#5da9ff}.quality-review{color:#f4b942}.quality-rejected{color:#f06464}.quality-benchmark-dialog .window-shell{max-width:860px}.quality-benchmark-results{overflow:auto;max-height:55vh}.quality-benchmark-results table{width:100%;border-collapse:collapse;font-size:12px}.quality-benchmark-results th,.quality-benchmark-results td{padding:8px;border-bottom:1px solid rgba(255,255,255,.1);text-align:left}@media(max-width:700px){.quality-report-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.quality-detection-report{padding:7px}.quality-map-filters{padding:5px 0}.quality-benchmark-results table{min-width:660px}}

/* ===== v14.7 — liste Maps pleine hauteur, légende compacte et filtres fiables ===== */
#mapsPanel.maps-home-panel[open]{height:var(--maps-expanded-height,calc(100dvh - 16px))!important;max-height:none!important;min-height:500px!important;overflow:hidden!important}
#mapsPanel[open] .maps-home-content{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
#mapsPanel[open] .inline-map-toolbar,#mapsPanel[open] .map-advanced-filters,#mapsPanel[open] .quality-map-filters,#mapsPanel[open] .quality-detection-report{flex:0 0 auto!important}
#mapsPanel[open] .map-color-legend{display:flex!important;grid-template-columns:none!important;min-height:30px!important;height:30px!important;max-height:30px!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;padding:3px 5px!important;margin:0 0 5px!important;gap:4px!important}
#mapsPanel[open] .map-color-legend span{flex:0 0 auto!important;padding:3px 6px!important;font-size:8.5px!important;background:#0b1d2a!important}
#mapsPanel[open] .inline-map-categories{flex:1 1 0!important;min-height:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;padding-bottom:max(90px,env(safe-area-inset-bottom))!important}
#mapCodeblockFilter:disabled{opacity:.58}
@media(max-width:520px){#mapsPanel.maps-home-panel[open]{min-height:480px!important}#mapsPanel[open] .map-color-legend{height:29px!important;min-height:29px!important;max-height:29px!important}}

/* ===== v14.7 — liste Maps pleine hauteur, légende compacte et filtres fiables ===== */
#mapsPanel.maps-home-panel[open]{height:var(--maps-expanded-height,calc(100dvh - 16px))!important;max-height:none!important;min-height:500px!important;overflow:hidden!important}
#mapsPanel[open] .maps-home-content{display:flex!important;flex-direction:column!important;min-height:0!important;overflow:hidden!important}
#mapsPanel[open] .inline-map-toolbar,#mapsPanel[open] .map-advanced-filters,#mapsPanel[open] .quality-map-filters,#mapsPanel[open] .quality-detection-report{flex:0 0 auto!important}
#mapsPanel[open] .map-color-legend{display:flex!important;grid-template-columns:none!important;min-height:30px!important;height:30px!important;max-height:30px!important;overflow-x:auto!important;overflow-y:hidden!important;flex-wrap:nowrap!important;padding:3px 5px!important;margin:0 0 5px!important;gap:4px!important}
#mapsPanel[open] .map-color-legend span{flex:0 0 auto!important;padding:3px 6px!important;font-size:8.5px!important;background:#0b1d2a!important}
#mapsPanel[open] .inline-map-categories{flex:1 1 0!important;min-height:0!important;height:100%!important;max-height:none!important;overflow-y:auto!important;padding-bottom:max(90px,env(safe-area-inset-bottom))!important}
#mapCodeblockFilter:disabled{opacity:.58}
@media(max-width:520px){#mapsPanel.maps-home-panel[open]{min-height:480px!important}#mapsPanel[open] .map-color-legend{height:29px!important;min-height:29px!important;max-height:29px!important}}

/* v14.8.20 — case Maps fixe avec défilement interne, description juste après */
#mapsPanel.maps-home-panel[open]{
  height:var(--maps-expanded-height,calc(100dvh - 16px))!important;
  min-height:430px!important;
  max-height:none!important;
  overflow:hidden!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:0!important;
  height:calc(100% - var(--maps-summary-height,92px))!important;
  overflow:hidden!important;
}
#mapsPanel[open] .inline-map-toolbar,
#mapsPanel[open] .map-advanced-filters,
#mapsPanel[open] .quality-map-filters,
#mapsPanel[open] .quality-detection-report,
#mapsPanel[open] .map-color-legend{
  flex:0 0 auto!important;
}
#mapsPanel[open] .inline-map-categories{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  padding-bottom:18px!important;
}
#mapsPanel[open] .inline-map-category{overflow:visible!important}
@media(max-width:520px){
  #mapsPanel.maps-home-panel[open]{min-height:430px!important}
}
\n\n/* v14.8.21 — panneau Maps stable : hauteur fixe, scroll interne unique, aucun recalcul JS */
#mapsPanel.maps-home-panel[open]{
  height:clamp(560px,72dvh,820px)!important;
  min-height:0!important;
  max-height:820px!important;
  overflow:hidden!important;
  contain:layout paint!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  height:calc(100% - 92px)!important;
  min-height:0!important;
  overflow:hidden!important;
}
#mapsPanel[open] .inline-map-toolbar,
#mapsPanel[open] .map-advanced-filters,
#mapsPanel[open] .quality-map-filters,
#mapsPanel[open] .quality-detection-report,
#mapsPanel[open] .map-color-legend{flex:0 0 auto!important}
#mapsPanel[open] .inline-map-categories{
  flex:1 1 0!important;
  min-height:0!important;
  height:0!important;
  max-height:none!important;
  overflow-y:scroll!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior-y:contain!important;
  touch-action:pan-y!important;
  padding-bottom:22px!important;
  scrollbar-gutter:stable!important;
}
#mapsPanel[open] .inline-map-category{overflow:visible!important}
@media(max-width:520px){
 #mapsPanel.maps-home-panel[open]{height:68dvh!important;min-height:520px!important;max-height:720px!important}
 #mapsPanel[open] .maps-home-content{height:calc(100% - 88px)!important}
}

/* 14.8.22 — correction liste des maps sur iPhone/Safari */
#mapCategories{display:block!important;min-height:120px;overflow:visible!important;contain:none!important}
#mapCategories .map-category{display:block;visibility:visible;opacity:1;min-height:1px}
#mapCategories .map-item:not([hidden]){display:flex!important;visibility:visible;opacity:1}
#mapsPanel .maps-home-content{overflow:visible!important;min-height:0!important}
@media(max-width:700px){
 #mapCategories{width:100%;max-width:100%;}
 .quality-map-filters{display:flex;overflow-x:auto;max-width:100%;padding-bottom:6px;-webkit-overflow-scrolling:touch}
 .quality-map-filters>*{flex:0 0 auto}
}

/* v14.8.23 — zone réelle de la liste Maps agrandie (iPhone/Safari)
   La liste intégrée utilise sa propre hauteur au lieu d'être écrasée à 0 par les anciens calculs flex. */
#mapsPanel.maps-home-panel[open]{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
  contain:none!important;
}
#mapsPanel[open] .maps-home-content{
  display:flex!important;
  flex-direction:column!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
#mapsPanel[open] #mapsInlineCategories.inline-map-categories{
  display:block!important;
  flex:0 0 clamp(520px,64dvh,780px)!important;
  width:100%!important;
  height:clamp(520px,64dvh,780px)!important;
  min-height:520px!important;
  max-height:780px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-y!important;
  overscroll-behavior-y:contain!important;
  padding:6px 3px max(28px,env(safe-area-inset-bottom)) 0!important;
  visibility:visible!important;
  opacity:1!important;
}
#mapsPanel[open] #mapsInlineCategories > .inline-map-category{
  display:block!important;
  width:100%!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:520px){
  #mapsPanel[open] #mapsInlineCategories.inline-map-categories{
    flex-basis:620px!important;
    height:620px!important;
    min-height:620px!important;
    max-height:620px!important;
  }
}

/* 16.9.7.48 FINAL — priorité sur les anciens thèmes mobiles. */
.lpt-header-logo{
  display:block!important;width:min(270px,48vw)!important;height:92px!important;max-width:100%!important;
  object-fit:contain!important;object-position:left center!important;border-radius:18px!important;
  filter:drop-shadow(0 0 16px rgba(22,132,255,.22))!important;
}
.home-brand img{display:block!important;width:min(310px,72vw)!important;height:auto!important;border-radius:24px!important;filter:drop-shadow(0 0 24px rgba(22,132,255,.22))!important}
.lpt-auth-logo{display:block!important;width:76px!important;height:76px!important;padding:0!important;object-fit:cover!important;border-radius:20px!important;box-shadow:0 0 0 4px rgba(33,140,255,.15),0 0 24px rgba(22,132,255,.28)!important}
@media(max-width:760px){
  .lpt-header-logo{width:min(250px,52vw)!important;height:86px!important;border-radius:16px!important}
  .home-brand img{width:min(260px,72vw)!important;border-radius:21px!important}
  .ecu-header-card{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;justify-self:end!important;width:min(190px,42vw)!important;min-height:84px!important;box-sizing:border-box!important;padding:9px 10px!important;text-align:center!important}
  .ecu-header-card strong{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;text-align:center!important;line-height:1.15!important}
  .ecu-header-card small{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important;margin:5px 0 0!important;gap:2px!important;text-align:center!important;line-height:1.2!important}
  .ecu-header-card small span{display:block!important;width:100%!important;text-align:center!important}
}

/* v14.8.24 — corpus intelligent local */
.corpus-learning-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0;padding:10px 12px;border:1px solid rgba(76,140,255,.35);border-radius:10px;background:linear-gradient(180deg,rgba(16,29,52,.95),rgba(9,18,34,.95));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.corpus-learning-bar>div:first-child{display:flex;flex-direction:column;min-width:0}.corpus-learning-bar strong{font-size:13px}.corpus-learning-bar small{opacity:.72;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.corpus-learning-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.corpus-learning-actions button{min-height:30px;padding:5px 9px;font-size:11px;border-radius:7px}
@media(max-width:700px){.corpus-learning-bar{align-items:stretch;flex-direction:column}.corpus-learning-actions{display:grid;grid-template-columns:1fr 1fr 1fr}.corpus-learning-actions button{width:100%;padding:7px 4px}}
/* 14.8.25 — laboratoire de validation portable */
#mapValidationLab{margin:10px 0;padding:10px;border:1px solid #35546b;border-radius:11px;background:linear-gradient(180deg,#0d1c27,#09131b);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.validation-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.validation-head strong{display:block;color:#e7f5ff;font-size:13px}.validation-head small,#validationStats{display:block;color:#86a9bf;font-size:9px;margin-top:3px}.validation-head span{font-size:9px;font-weight:900;border:1px solid #3e657e;border-radius:999px;padding:4px 7px;color:#a9d9f5;background:#102b3d}.validation-current{margin:8px 0 6px;color:#fff;font-size:11px;font-weight:800}#validationNote{width:100%;min-height:52px;resize:vertical;background:#050b10;color:#e9f5fc;border:1px solid #294557;border-radius:8px;padding:8px;font-size:10px}.validation-actions,.validation-portable{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.validation-actions button,.validation-portable button{border:1px solid #315268;background:#122432;color:#dff3ff;border-radius:7px;padding:7px 8px;font-size:9px;font-weight:800}.validation-actions button[data-v="validated"]{border-color:#25885d;background:#103a2a}.validation-actions button[data-v="corrected"]{border-color:#2b78af;background:#12344e}.validation-actions button[data-v="rejected"]{border-color:#a94545;background:#421919}.validation-actions button[data-v="review"]{border-color:#a77a28;background:#3b2b0f}.map-item.validation-validated,.inline-map-item.validation-validated{box-shadow:inset 4px 0 #35d487!important}.map-item.validation-corrected,.inline-map-item.validation-corrected{box-shadow:inset 4px 0 #3aa9ff!important}.map-item.validation-rejected,.inline-map-item.validation-rejected{opacity:.55;box-shadow:inset 4px 0 #ff4f4f!important}.map-item.validation-review,.inline-map-item.validation-review{box-shadow:inset 4px 0 #f1b63f!important}@media(max-width:520px){.validation-actions button,.validation-portable button{flex:1 1 30%;min-height:34px}}

/* v15.1 — Multimap EDC15P */
.mm-status{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px;border:1px solid #39404a;border-radius:12px;background:#181c22;margin-bottom:12px}.mm-status span{font-size:11px;font-weight:800;padding:5px 8px;border-radius:999px;background:#343b45}.mm-ready{border-color:#2c8b57}.mm-installed{border-color:#3478bf}.mm-blocked{border-color:#a64b4b}.mm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mm-grid article{background:#15191e;border:1px solid #303640;border-radius:10px;padding:10px}.mm-grid small,.mm-grid b{display:block}.mm-grid small{color:#939da9;margin-bottom:4px}.mm-details,.mm-warning{margin-top:12px;padding:12px;border-radius:10px;background:#15191e;border:1px solid #303640}.mm-warning{border-color:#865f28;color:#e3c58e}.mm-table>div{display:grid;grid-template-columns:90px 1fr auto;gap:8px;padding:8px 0;border-bottom:1px solid #303640}.mm-table b{font-size:11px}.mm-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.mm-actions button:last-child{grid-column:1/-1}.mm-actions button:disabled{opacity:.38}.mm-actions button:nth-child(2){background:#a52424;color:white}@media(max-width:620px){.mm-grid{grid-template-columns:1fr}.mm-table>div{grid-template-columns:78px 1fr}.mm-table b{grid-column:2}.mm-actions{grid-template-columns:1fr}.mm-actions button:last-child{grid-column:auto}}


/* Multimap EDC15P V15.2 */
#lptMultimapPanel{display:grid;gap:14px;padding-bottom:24px}
.mm-status{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line,#343944);border-radius:12px;background:rgba(255,255,255,.035)}
.mm-status span{font-size:.72rem;font-weight:800;letter-spacing:.08em;padding:5px 9px;border-radius:999px;background:#3b414d}
.mm-ready span{background:#176b42}.mm-installed span{background:#285a8d}.mm-blocked span{background:#8d2d2d}.mm-none span{background:#5b6068}
.mm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.mm-grid article{padding:12px;border:1px solid var(--line,#343944);border-radius:10px;background:rgba(255,255,255,.025);display:grid;gap:5px}
.mm-grid small{opacity:.7}.mm-grid b{font-size:.9rem;overflow-wrap:anywhere}
.mm-details,.mm-warning{padding:12px;border-radius:10px;background:rgba(255,255,255,.03);line-height:1.55}
.mm-warning{border:1px solid rgba(255,174,0,.35);background:rgba(255,174,0,.08)}
.mm-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.mm-actions button{min-height:44px}
@media(max-width:700px){.mm-grid{grid-template-columns:1fr}.mm-actions{grid-template-columns:1fr}}

/* Multimap multi-HW 15.3 */
.mm-profiles article{display:flex;flex-direction:column;gap:4px}.mm-profiles article span{font-size:11px;opacity:.78}.mm-profile-active{outline:2px solid currentColor;outline-offset:-2px}

/* v15.5.4 — progression réelle du scan local */
#lptSmartScanProgress{position:fixed;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));z-index:99999;padding:14px 16px;border:1px solid rgba(29,132,255,.55);border-radius:16px;background:rgba(4,10,18,.96);box-shadow:0 14px 40px rgba(0,0,0,.5);color:#fff;opacity:0;transform:translateY(24px);pointer-events:none;transition:.22s ease;font-family:system-ui,-apple-system,sans-serif}#lptSmartScanProgress.visible{opacity:1;transform:none}.lpt-scan-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.lpt-scan-head strong{font-size:14px}.lpt-scan-head span{font-variant-numeric:tabular-nums;color:#62adff;font-weight:800}.lpt-scan-track{height:10px;border-radius:99px;overflow:hidden;background:#111d2b;border:1px solid #20344a}.lpt-scan-track i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0878e8,#55b5ff);transition:width .18s linear}.lpt-scan-track+small{display:block;margin-top:8px;color:#9db3c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(display-mode:standalone){html,body{min-height:100%;overscroll-behavior:none}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}

/* =========================================================
   LA PERFORMANCE TUNER — PORTRAIT NEON THEME 16.7.0
   Visual layer only: preserves all existing IDs and logic.
   ========================================================= */
:root{
  --lp-bg:#02070d;
  --lp-bg2:#06101a;
  --lp-panel:#081522;
  --lp-panel2:#0b1b2a;
  --lp-line:#17334d;
  --lp-line2:#23547b;
  --lp-text:#eef7ff;
  --lp-muted:#8ea6bd;
  --lp-blue:#1685ff;
  --lp-blue2:#52adff;
  --lp-green:#20d875;
  --lp-red:#ff3d49;
  --lp-purple:#9b52ef;
  --lp-amber:#ffb92f;
  --lp-cyan:#22c9e9;
  --lp-radius:18px;
  color-scheme:dark;
}
html,body{background:radial-gradient(circle at 50% -10%,#0a2340 0,#030a12 34%,#010409 75%);color:var(--lp-text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(21,112,214,.07),transparent 28%),radial-gradient(circle at 85% 15%,rgba(0,120,255,.08),transparent 25%);z-index:-1}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.editor-app{max-width:100%;padding-bottom:104px;background:transparent}
.app-header{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(150px,.9fr);gap:10px 16px;padding:22px 18px 14px;background:linear-gradient(180deg,rgba(2,9,17,.98),rgba(3,11,20,.94));border-bottom:1px solid rgba(52,131,199,.25)}
.brand-zone{min-width:0;align-self:center}.pro-brand{margin:0;font-size:clamp(23px,6vw,36px);font-weight:950;font-style:italic;line-height:.92;letter-spacing:-1.3px;text-shadow:0 0 24px rgba(27,132,255,.22)}
.pro-brand span{display:block}.pro-brand .brand-accent{color:#1685ff;margin-top:8px}
.ecu-header-card{align-self:center;justify-self:end;width:auto;max-width:100%;padding:0;border:0;background:none;box-shadow:none;text-align:left}
.ecu-header-card strong{color:var(--lp-blue2);font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ecu-header-card small{display:grid;gap:3px;color:#9fb3c7;font-size:12px;margin-top:5px}
.header-actions{grid-column:1/-1;display:flex;justify-content:center;gap:12px;margin-top:5px}
.icon-action,.header-actions .icon-action{width:58px;height:58px;border:1px solid #173956;border-radius:15px;background:linear-gradient(180deg,#0b1826,#06111d);color:white;font-size:24px;box-shadow:inset 0 1px rgba(255,255,255,.035),0 9px 24px rgba(0,0,0,.22)}
.icon-action:active{transform:scale(.96);background:#10243a}
.main-nav{position:sticky;top:0;z-index:35;display:grid;grid-template-columns:repeat(6,minmax(72px,1fr));overflow-x:auto;scrollbar-width:none;padding:0 10px;background:rgba(2,8,15,.96);border-bottom:1px solid #17334b;border-top:1px solid #102b43;backdrop-filter:blur(18px)}
.main-nav::-webkit-scrollbar{display:none}.main-nav button{min-width:86px;height:84px;border:0;border-right:1px solid rgba(42,78,108,.35);border-radius:0;background:transparent;color:#9eb0c1;font-size:11px;font-weight:750;letter-spacing:.6px;display:grid;place-items:center;align-content:center;gap:8px}.main-nav button span{font-size:24px}.main-nav button.active{color:#fff;background:linear-gradient(180deg,rgba(18,103,203,.58),rgba(7,45,86,.72));box-shadow:inset 0 -3px #1685ff,inset 0 0 28px rgba(29,133,255,.25)}
.secondary-actions{display:flex;gap:10px;overflow:auto;padding:12px 16px;background:#030a12;border-bottom:1px solid #102a40;scrollbar-width:none}.secondary-actions::-webkit-scrollbar{display:none}.secondary-actions button{flex:0 0 auto;min-height:46px;padding:0 17px;border:1px solid #21425f;border-radius:13px;background:linear-gradient(180deg,#0e1d2c,#07131f);color:#f4f8fc;font-weight:700}.secondary-actions button:nth-child(2){color:#55aaff;border-color:#185a9b;background:linear-gradient(180deg,#0b2a55,#081a31)}
main{padding:14px 16px 26px;max-width:1100px;margin:auto}
.panel,.power-accordion,.map-display-panel{border:1px solid #183851!important;border-radius:var(--lp-radius)!important;background:linear-gradient(145deg,rgba(9,23,36,.98),rgba(4,14,23,.98))!important;box-shadow:inset 0 1px rgba(255,255,255,.035),0 12px 35px rgba(0,0,0,.2)!important;overflow:hidden;margin:0 0 14px!important}
.power-accordion>summary,.panel>summary{min-height:110px;padding:22px 24px!important;display:flex!important;flex-direction:column;align-items:flex-start!important;justify-content:center;gap:13px;list-style:none;cursor:pointer}.power-accordion>summary::-webkit-details-marker{display:none}.power-accordion>summary span,.panel>summary span{color:#55aaff!important;font-size:28px!important;font-weight:850!important;letter-spacing:-.7px}.power-accordion>summary small,.panel>summary small{color:#91a7bc!important;font-size:17px!important;line-height:1.4}
details[open]>summary{border-bottom:1px solid rgba(44,93,132,.42);background:linear-gradient(90deg,rgba(17,91,166,.1),transparent)}
.project-content,.mappack-accordion-content,.maps-home-content,.power-accordion-content,.hex-inline-content{padding:15px!important}
.inline-map-toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.7fr);gap:10px;padding:4px 0 14px}.inline-map-toolbar input,.inline-map-toolbar select{height:48px;border:1px solid #1a3851;border-radius:13px;background:#040d16;color:#eaf4ff;padding:0 14px}.inline-map-toolbar label{grid-column:1/-1;color:#a6b8ca}
.inline-map-categories{display:grid;gap:12px}.inline-map-categories>*{border-radius:16px}
/* cards generated by the maps renderer */
.inline-map-categories button,.inline-map-categories .map-card,.inline-map-categories li{border:1px solid #14334c!important;background:linear-gradient(180deg,#0c1c2b,#091724)!important;color:#eff7ff!important;border-radius:15px!important;box-shadow:none!important}
.map-category-header,.category-header{background:#071520!important;color:#dcecff!important;border-color:#17354d!important}
.badge,.confidence-badge,[class*="confidence"]{border-radius:9px}
.editor-head{padding:18px!important;background:linear-gradient(180deg,#0d1c2b,#07131f)!important;border-bottom:1px solid #18354e}.editor-head h2{font-size:23px;color:#fff}.editor-head p{color:#90a7bd}
.map-display-panel>summary span{font-size:25px!important}.view-launchers{display:grid!important;grid-template-columns:repeat(3,1fr);gap:9px}.view-launchers button{min-height:54px;border:1px solid #17456f;border-radius:12px;background:#092440;color:#4ca8ff;font-weight:750}
input,select,textarea{border:1px solid #1d3d58!important;background:#040c14!important;color:#eef7ff!important;border-radius:12px!important}textarea{padding:12px}
.mappack-actions,.dialog-actions{gap:10px}.mappack-actions button,.dialog-actions button,.tabs button{border:1px solid #214560;border-radius:12px;background:#0a1926;color:#eaf4ff;min-height:46px}
.primary-action{background:linear-gradient(180deg,#117cff,#0754ca)!important;border-color:#1888ff!important;color:white!important}
button.danger,.danger{background:#4a1118!important;border-color:#b72b38!important;color:#ffdadd!important}
/* validation colors */
#confirmMapBtn,.validation-confirm,.btn-validate{background:#0c4a30!important;border-color:#1fa963!important}#correctMapBtn,.validation-correct{background:#0d426d!important;border-color:#2588da!important}#rejectMapBtn,.validation-reject{background:#56171b!important;border-color:#d04148!important}
/* dialogs */
dialog{width:min(94vw,720px);max-height:88dvh;border:1px solid #244c69!important;border-radius:22px!important;background:#06111c!important;color:#eef7ff!important;box-shadow:0 24px 90px #000!important}dialog::backdrop{background:rgba(0,3,8,.8);backdrop-filter:blur(6px)}
/* project home */
.project-home{min-height:100dvh;padding:34px 16px 100px;background:radial-gradient(circle at 50% 0,#0a2341 0,#020911 33%,#010408 78%)}.project-home-hero{min-height:150px;display:flex;align-items:center}.home-brand h1{font-style:italic;font-weight:950;letter-spacing:-1.4px}.home-brand h1 span{display:block}.home-brand h1 span:last-child{color:#1685ff}.home-action-card,.home-continue,.home-recent{border:1px solid #193954!important;border-radius:18px!important;background:linear-gradient(145deg,#0a1b2a,#06111c)!important}.home-action-card{min-height:132px}.home-action-icon{color:#4ba8ff}.home-project-dialog{background:#06111c}
/* persistent mobile dock */
.lp-mobile-dock{display:none}
@media(max-width:700px){
  body{font-size:15px}.app-header{padding-top:max(18px,env(safe-area-inset-top))}.pro-brand{font-size:25px}.ecu-header-card strong{font-size:14px}.ecu-header-card small{font-size:11px}
  main{padding:14px 14px 22px}.power-accordion>summary,.panel>summary{min-height:104px;padding:20px!important}.power-accordion>summary span,.panel>summary span{font-size:25px!important}.power-accordion>summary small,.panel>summary small{font-size:16px!important}
  .inline-map-toolbar{grid-template-columns:1fr}.inline-map-toolbar label{grid-column:auto}
  .project-detail-row,.calc-grid,.form-grid{grid-template-columns:1fr 1fr!important}
  .lp-mobile-dock{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;left:10px;right:10px;bottom:max(9px,env(safe-area-inset-bottom));height:76px;padding:5px 6px;z-index:100;border:1px solid #173a57;border-radius:18px;background:rgba(5,16,27,.96);box-shadow:0 18px 50px #000, inset 0 1px rgba(255,255,255,.04);backdrop-filter:blur(20px)}
  .lp-mobile-dock button{height:62px;border:0;background:transparent;color:#8fa5ba;display:grid;place-items:center;align-content:center;gap:3px;font-size:10px}.lp-mobile-dock button span{font-size:22px}.lp-mobile-dock button.active{color:#2e94ff}.lp-mobile-dock .lp-plus{width:62px;height:62px;margin:-20px auto 0;border-radius:50%;font-size:36px;color:white;background:linear-gradient(180deg,#126fe4,#082a65);border:1px solid #168cff;box-shadow:0 0 30px rgba(22,132,255,.3)}
}
@media(min-width:701px){.project-home,.editor-app{max-width:1120px;margin:auto}.maps-home-panel .inline-map-categories{grid-template-columns:1fr 1fr}}

/* =========================================================
   16.7.1 — PORTRAIT IPHONE REBUILD
   Recomposition réelle de l'interface mobile, sans modifier les moteurs.
   ========================================================= */
@media (max-width:700px){
  html,body{width:100%;overflow-x:hidden;background:#020812!important}
  body{padding:0!important}
  .editor-app{padding-bottom:96px!important}
  .app-header{position:relative!important;display:grid!important;grid-template-columns:1fr auto!important;gap:8px 12px!important;padding:18px 16px 12px!important;min-height:190px!important;border:0!important;background:radial-gradient(circle at 80% 15%,rgba(18,112,255,.17),transparent 28%),linear-gradient(180deg,#030b15,#020811)!important}
  .brand-zone{align-self:start!important;padding-top:6px}.pro-brand{font-size:25px!important;line-height:.92!important;max-width:300px}.pro-brand .brand-accent{margin-top:7px!important}
  .ecu-header-card{align-self:start!important;max-width:185px!important;padding-top:5px!important}.ecu-header-card strong{display:block!important;font-size:14px!important;max-width:180px}.ecu-header-card small{font-size:10px!important}
  .header-actions{grid-column:1/-1!important;gap:10px!important;margin:10px auto 0!important}.icon-action,.header-actions .icon-action{width:52px!important;height:52px!important;border-radius:14px!important;font-size:21px!important}
  .main-nav{position:relative!important;top:auto!important;display:grid!important;grid-template-columns:repeat(6,1fr)!important;width:100%!important;padding:0!important;overflow:visible!important;border:1px solid #173752!important;border-left:0!important;border-right:0!important;background:#020a13!important}
  .main-nav button{min-width:0!important;width:auto!important;height:70px!important;padding:8px 2px!important;font-size:8px!important;letter-spacing:.3px!important;gap:5px!important}.main-nav button span{font-size:19px!important}.main-nav button.active{background:linear-gradient(180deg,rgba(20,107,211,.56),rgba(7,42,80,.72))!important}
  .secondary-actions{padding:10px 14px!important;gap:8px!important}.secondary-actions button{min-height:42px!important;padding:0 14px!important;border-radius:12px!important;font-size:12px!important}
  main{padding:14px 14px 26px!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;align-items:start!important}
  main>.panel,main>.workspace{margin:0!important;min-width:0!important}
  #projectPanel,#mappackPanel,#mapsPanel,#hexPanel{grid-column:auto!important}
  #powerAccordion,.workspace.editor-only{grid-column:1/-1!important}
  .power-accordion>summary,.panel>summary{min-height:132px!important;padding:18px 16px!important;gap:10px!important}.power-accordion>summary span,.panel>summary span{font-size:22px!important;line-height:1.05!important}.power-accordion>summary small,.panel>summary small{font-size:12px!important;line-height:1.45!important}
  #mapsPanel{grid-column:1/-1!important}
  #mapsPanel>summary{min-height:104px!important}
  #mapsPanel[open]>summary{border-bottom:1px solid #17334d!important}
  .maps-home-content{padding:12px!important}.inline-map-toolbar{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important}.inline-map-toolbar input{grid-column:1/-1!important;height:43px!important}.inline-map-toolbar select{height:40px!important;font-size:12px!important}.inline-map-toolbar label{font-size:11px!important;align-self:center!important}
  #mapsInlineCategories{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;display:grid!important;gap:10px!important}
  .inline-map-category,.map-category{border:0!important;background:transparent!important}
  .map-category-header,.category-header{min-height:42px!important;border-radius:12px!important;padding:10px 12px!important}
  .inline-map-item,.map-item,.inline-map-categories button,.inline-map-categories li{min-height:72px!important;border-radius:15px!important;padding:12px 13px!important;margin:0!important;background:linear-gradient(180deg,#0b1b2a,#071522)!important;border:1px solid #173650!important;box-shadow:inset 4px 0 var(--map-color,#2f94ff)!important}
  .inline-map-item strong,.map-item strong{font-size:14px!important}.inline-map-item small,.map-item small{font-size:10px!important;color:#91a8bd!important}
  #mapValidationLab{grid-column:1/-1!important;margin:0 0 10px!important;border-radius:16px!important;padding:14px!important}.validation-actions,.validation-portable{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.validation-actions button,.validation-portable button{min-height:44px!important;font-size:11px!important}
  #hexPanel,#projectPanel,#mappackPanel{overflow:hidden!important}
  .workspace.editor-only{display:block!important}
  .map-display-panel>summary{min-height:100px!important}
  .lp-mobile-dock{left:14px!important;right:14px!important;height:68px!important;bottom:max(8px,env(safe-area-inset-bottom))!important;border-radius:20px!important;padding:3px 7px!important}.lp-mobile-dock button{height:56px!important}.lp-mobile-dock .lp-plus{width:58px!important;height:58px!important;margin:-16px auto 0!important}
  #lpt-checksum-button,#lpt-reliability-button{position:static!important;inset:auto!important;width:100%!important;min-height:48px!important;border-radius:13px!important;padding:10px 12px!important;font-size:12px!important;box-shadow:none!important}
  .lpt-mobile-quick-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:1fr 1fr 1fr!important;gap:9px!important;padding:12px!important;border:1px solid #173850!important;border-radius:17px!important;background:linear-gradient(145deg,#091824,#05101a)!important}
  .lpt-mobile-quick-actions h3{grid-column:1/-1!important;margin:0 0 2px!important;color:#4da7ff!important;font-size:15px!important}
  .lpt-mobile-quick-actions button{min-width:0!important}
}


/* v16.8.2 — thème iPhone premium stable, CSS uniquement */
html,body{min-height:100%;background:#020812!important;color:#edf6ff!important}
html.lpt-loading body:before{content:"LA PERFORMANCE\A TUNER";white-space:pre;position:fixed;inset:0;display:grid;place-items:center;text-align:center;font-weight:950;font-style:italic;font-size:30px;line-height:1;color:#eef6ff;background:radial-gradient(circle at 50% 5%,#0b2d55,#020812 42%);z-index:999999}
.project-home,.editor-app{visibility:visible!important;opacity:1!important}
@media(max-width:700px){
 body{background:radial-gradient(circle at 50% -10%,rgba(24,103,207,.18),transparent 35%),#020812!important}
 .project-home{padding:calc(24px + env(safe-area-inset-top)) 14px calc(92px + env(safe-area-inset-bottom))!important;background:transparent!important}
 .project-home-hero{min-height:110px!important}
 .home-brand h1{font-size:31px!important;line-height:.95!important}
 .home-primary-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}
 .home-action-card{min-height:150px!important;padding:15px!important;border-radius:16px!important;background:linear-gradient(145deg,#091a2a,#06111b)!important;border:1px solid #173a57!important}
 .home-action-icon{width:48px!important;height:48px!important;font-size:28px!important;margin-bottom:13px!important}
 .home-action-card strong{font-size:15px!important}.home-action-card small{font-size:11px!important}
 .app-header{background:rgba(3,11,19,.96)!important;border-bottom:1px solid #153a58!important;box-shadow:0 8px 30px rgba(0,0,0,.35)!important}
 .pro-brand{font-size:22px!important}.ecu-header-card{border:1px solid #183b58!important;background:#071522!important;border-radius:13px!important}
 .editor-app main{padding:10px 10px 96px!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
 #projectPanel,#mappackPanel,#hexPanel,#powerAccordion{grid-column:auto!important;border:1px solid #173a56!important;border-radius:16px!important;background:linear-gradient(145deg,#091a28,#06111b)!important;overflow:hidden!important}
 #projectPanel>summary,#mappackPanel>summary,#hexPanel>summary,#powerAccordion>summary{min-height:126px!important;padding:15px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:7px!important}
 #projectPanel>summary span,#mappackPanel>summary span,#hexPanel>summary span,#powerAccordion>summary span{font-size:17px!important;color:#f5f9ff!important}
 #projectPanel>summary small,#mappackPanel>summary small,#hexPanel>summary small,#powerAccordion>summary small{font-size:10px!important;color:#8da5ba!important;line-height:1.4!important}
 #projectPanel[open],#mappackPanel[open],#hexPanel[open],#powerAccordion[open],#mapsPanel,.workspace.editor-only,#mapValidationLab{grid-column:1/-1!important}
 #mapsPanel{border:1px solid #173a56!important;border-radius:17px!important;background:#06111b!important;overflow:hidden!important}
 #mapsPanel[open] #mapsInlineCategories.inline-map-categories{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important;display:block!important}
 .inline-map-item,.map-item{min-height:66px!important;border-radius:12px!important;background:#0a1927!important;border:1px solid #12314a!important;padding:10px 12px!important;box-shadow:inset 3px 0 var(--map-color,#2d91ff)!important}
 .map-category-header,.category-header{background:#071522!important;border-bottom:1px solid #15344e!important;color:#dcecff!important}
 #lpt-checksum-button,#lpt-reliability-button{position:static!important;inset:auto!important;transform:none!important;width:100%!important;box-shadow:none!important}
 .lp-mobile-dock{display:grid!important;grid-template-columns:repeat(5,1fr)!important;position:fixed!important;left:10px!important;right:10px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;height:66px!important;padding:4px!important;border-radius:18px!important;background:rgba(4,14,24,.98)!important;border:1px solid #173a56!important;box-shadow:0 14px 40px rgba(0,0,0,.6)!important;z-index:9999!important}
 .lp-mobile-dock button{height:56px!important;font-size:9px!important}.lp-mobile-dock .lp-plus{width:58px!important;height:58px!important;margin:-15px auto 0!important;border-radius:50%!important;background:linear-gradient(180deg,#167cff,#083c91)!important;border:1px solid #4aa8ff!important;font-size:32px!important}
}
/* 16.9.0 — précision puissance, codeblocks et panneaux réductibles */
.power-precision-bar{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}.power-precision-bar label{display:flex;flex-direction:column;gap:6px;color:#91a7bc;font-size:12px}.power-precision-bar select,#mapCodeblockFilter{min-height:42px;border:1px solid #21445f;border-radius:10px;background:#071522;color:#eaf5ff;padding:8px 10px}.inline-map-toolbar{grid-template-columns:minmax(0,1fr) minmax(130px,.8fr) minmax(150px,1fr) auto!important}
#corpusLearningBar,#mapValidationLab{position:relative}#corpusLearningBar>summary,#mapValidationLab>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;color:#dceeff;font-weight:800}#corpusLearningBar>summary::-webkit-details-marker,#mapValidationLab>summary::-webkit-details-marker{display:none}.collapsible-body{padding:0 12px 12px}
@media(max-width:700px){.power-precision-bar{grid-template-columns:1fr}.inline-map-toolbar{grid-template-columns:1fr 1fr!important}.inline-map-toolbar>input{grid-column:1/-1}.inline-map-toolbar>label{grid-column:1/-1}}

/* v16.9.5.7 — sélecteurs de fichiers natifs Safari/iOS */
.native-picker-card{display:block;cursor:pointer;overflow:hidden;box-sizing:border-box}.card-native-file{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;cursor:pointer!important;pointer-events:auto!important;font-size:100px!important;z-index:20!important}.native-picker-card>*:not(.card-native-file){pointer-events:none}.native-picker-card:active{transform:scale(.985)}
/* v16.9.5.8 — boutons d'accueil natifs, sans champ fichier superposé */
#homeNewProject,#homeOpenFile{
  width:100%;
  appearance:none;
  -webkit-appearance:none;
  text-align:left;
  color:inherit;
  font:inherit;
  cursor:pointer;
  touch-action:manipulation;
  position:relative;
  z-index:1;
}
#homeNewProject:disabled,#homeOpenFile:disabled{opacity:.65;pointer-events:none}

/* v16.9.5.9 — sélecteurs iOS natifs, sans ouverture JavaScript */
.home-native-picker{display:block;cursor:pointer;overflow:hidden;box-sizing:border-box;-webkit-tap-highlight-color:rgba(22,140,255,.22);touch-action:manipulation}
.home-native-picker>input[type=file]{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;z-index:50!important;pointer-events:auto!important;cursor:pointer!important;font-size:120px!important}
.home-native-picker>*:not(input[type=file]){pointer-events:none!important}
.home-native-picker:active{transform:scale(.985)}
/* 16.9.7.2 — contrôles DAMOS ↔ ORI dans le diagnostic iPhone */
#lptDamosOnlyControls{margin:12px 14px;padding:13px;border:1px solid rgba(96,165,250,.35);border-radius:14px;background:rgba(15,23,42,.92);color:#e5eefc}
.lpt-damos-mode-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:11px}.lpt-damos-mode-row strong{display:block;font-size:14px}.lpt-damos-mode-row small{display:block;color:#9fb0c8;font-size:11px;margin-top:3px;line-height:1.35}#lptDamosOnlyBadge{flex:none;background:#0f766e;color:#ecfeff;border-radius:99px;padding:5px 9px;font-size:10px;font-weight:800}#lptDamosOnlyBadge.off{background:#334155;color:#e2e8f0}.lpt-damos-switch{display:flex;align-items:center;gap:10px;padding:10px;border-radius:11px;background:#0b1220}.lpt-damos-switch input{position:absolute;opacity:0}.lpt-damos-switch span{width:42px;height:24px;border-radius:99px;background:#475569;position:relative;flex:none;transition:.2s}.lpt-damos-switch span:after{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:white;border-radius:50%;transition:.2s}.lpt-damos-switch input:checked+span{background:#14b8a6}.lpt-damos-switch input:checked+span:after{transform:translateX(18px)}.lpt-damos-switch b{font-size:12px;line-height:1.3}#lptDamosOnlyRun{width:100%;margin-top:10px;border:0;border-radius:10px;padding:11px;background:#2563eb;color:white;font-weight:800}
/* 16.9.7.4 — Corpus et laboratoire réservés au mode développeur */
html:not(.lpt-developer-mode) #corpusLearningBar,
html:not(.lpt-developer-mode) #mapValidationLab{display:none!important}
#lptDeveloperModeToggle:not(:checked)~b{opacity:.8}
#lptGoogleDriveDamos{margin:12px 0;border:1px solid #24506d;border-radius:14px;background:#071521}#lptGoogleDriveDamos>summary{padding:14px;cursor:pointer;font-weight:800;color:#eaf6ff}.lpt-drive-body{padding:0 14px 14px;display:grid;gap:10px}.lpt-drive-body label{display:grid;gap:5px;color:#bcd0df;font-size:13px}.lpt-drive-body input{min-height:42px;border:1px solid #29465b;border-radius:10px;background:#03101a;color:#fff;padding:8px 10px}.lpt-drive-actions{display:flex;gap:8px;flex-wrap:wrap}.lpt-drive-actions button{min-height:40px}.lpt-drive-files{max-height:300px;overflow:auto;border:1px solid #203d51;border-radius:10px;padding:6px}.lpt-drive-file{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:10px!important;padding:9px;border-bottom:1px solid #132b3b}.lpt-drive-file input{min-height:auto}.lpt-drive-file span{display:grid}.lpt-drive-file small{color:#7895aa}.lpt-drive-note{font-size:12px;color:#7895aa;margin:0}#lptDriveStatus[data-type=error]{color:#ff7b7b}#lptDriveStatus[data-type=ok]{color:#5ce29a}#lptDriveStatus[data-type=warn]{color:#ffc66d}

/* 16.9.7.41 — interface iPhone installée sur l’écran d’accueil. */
#lptLogoutBtn{flex:0 0 46px!important;width:46px!important;height:46px!important;min-width:46px!important;padding:0!important;border:1px solid #65333a!important;border-radius:14px!important;background:linear-gradient(180deg,#33171d,#180d11)!important;color:#ff7c89!important;font-size:23px!important;line-height:1!important;box-shadow:inset 0 1px rgba(255,255,255,.05)!important}
#lptLogoutBtn:active{transform:scale(.94)}
footer{font-size:11px!important;padding:22px 10px calc(92px + env(safe-area-inset-bottom))!important;color:#71869a!important}
@media(max-width:760px){
  .header-actions{width:100%!important;max-width:430px!important;justify-content:space-between!important;gap:8px!important;padding:0 6px!important;overflow:visible!important}
  .header-actions .icon-action{flex:0 0 48px!important;width:48px!important;height:48px!important;border-radius:13px!important}
}
@media(display-mode:standalone){
  .app-header{padding-top:max(56px,calc(12px + env(safe-area-inset-top)))!important}
  .brand-zone{padding-top:4px!important}
  .header-actions{margin-top:12px!important}
}

/* 16.9.7.44 — barre supérieure compacte : les 6 actions restent sur une ligne. */
@media(max-width:760px){
  .header-actions{
    display:flex!important;
    flex-flow:row nowrap!important;
    align-items:center!important;
    justify-content:space-between!important;
    width:100%!important;
    max-width:390px!important;
    gap:5px!important;
    margin:8px auto 0!important;
    padding:0 2px!important;
  }
  .header-actions .icon-action,
  .header-actions .back-projects-btn,
  .header-actions #lptLogoutBtn{
    flex:0 0 42px!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
    padding:0!important;
    border-radius:11px!important;
    font-size:19px!important;
    margin:0!important;
  }
  .app-header{min-height:0!important;padding-bottom:12px!important}
}
@media(max-width:370px){
  .header-actions{gap:3px!important}
  .header-actions .icon-action,
  .header-actions .back-projects-btn,
  .header-actions #lptLogoutBtn{flex-basis:38px!important;width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important;font-size:17px!important}
}

/* 16.9.7.45 — restaure le défilement interne de la liste des maps sur iOS. */
@media(max-width:760px){
  #mapsPanel.maps-home-panel[open]{
    height:auto!important;
    max-height:none!important;
    overflow:hidden!important;
  }
  #mapsPanel[open] .maps-home-content{
    display:flex!important;
    flex-direction:column!important;
    height:auto!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  #mapsPanel[open] #mapsInlineCategories.inline-map-categories{
    display:block!important;
    flex:0 0 min(62dvh,620px)!important;
    width:100%!important;
    height:min(62dvh,620px)!important;
    min-height:360px!important;
    max-height:620px!important;
    overflow-x:hidden!important;
    overflow-y:scroll!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-y!important;
    overscroll-behavior-y:contain!important;
    scrollbar-gutter:stable!important;
    padding:6px 4px calc(110px + env(safe-area-inset-bottom)) 0!important;
  }
}

/* 16.9.7.48 OVERRIDE FINAL — logo et identification ECU. */
.lpt-header-logo{display:block!important;width:min(270px,48vw)!important;height:92px!important;max-width:100%!important;object-fit:contain!important;object-position:left center!important;border-radius:18px!important;filter:drop-shadow(0 0 16px rgba(22,132,255,.22))!important}
.home-brand img{display:block!important;width:min(310px,72vw)!important;height:auto!important;border-radius:24px!important;filter:drop-shadow(0 0 24px rgba(22,132,255,.22))!important}
.lpt-auth-logo{display:block!important;width:76px!important;height:76px!important;padding:0!important;object-fit:cover!important;border-radius:20px!important;box-shadow:0 0 0 4px rgba(33,140,255,.15),0 0 24px rgba(22,132,255,.28)!important}
@media(max-width:760px){
  .lpt-header-logo{width:min(250px,52vw)!important;height:86px!important;border-radius:16px!important}
  .home-brand img{width:min(260px,72vw)!important;border-radius:21px!important}
  .ecu-header-card{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;justify-self:end!important;width:min(190px,42vw)!important;min-height:84px!important;box-sizing:border-box!important;padding:9px 10px!important;text-align:center!important}
  .ecu-header-card strong{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;text-align:center!important;line-height:1.15!important}
  .ecu-header-card small{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important;margin:5px 0 0!important;gap:2px!important;text-align:center!important;line-height:1.2!important}
  .ecu-header-card small span{display:block!important;width:100%!important;text-align:center!important}
}

/* 16.9.7.51 — tableaux lisibles et défilement horizontal. */
#tableDialog #tableWindowArea,
#tableDialog #tableWindowArea .map-grid-wrap{overflow:auto!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid{width:max-content!important;min-width:max-content!important;margin:0!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){width:58px!important;min-width:58px!important;max-width:58px!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{height:40px!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{height:38px!important;padding:5px 3px!important;font-size:12px!important;font-weight:800!important;letter-spacing:0!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){height:40px!important;padding:5px 2px!important;font-size:10px!important;position:sticky!important;top:0!important;z-index:5!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{width:66px!important;min-width:66px!important;max-width:66px!important;font-size:11px!important;position:sticky!important;left:0!important;z-index:6!important;box-shadow:2px 0 5px rgba(0,0,0,.55)!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{top:0!important;z-index:8!important}
@media(max-width:520px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){width:54px!important;min-width:54px!important;max-width:54px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{font-size:11.5px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{width:64px!important;min-width:64px!important;max-width:64px!important}
}
/* 16.9.7.61 — carte ECU plus compacte sur mobile. */
@media (max-width:760px){
  .ecu-header-card{width:min(154px,36vw)!important;min-width:0!important;max-width:154px!important;min-height:70px!important;padding:7px 8px!important;border-radius:12px!important}
  .ecu-header-card strong{font-size:13px!important;line-height:1.1!important}
  .ecu-header-card small{font-size:9px!important;margin-top:4px!important;gap:1px!important}
  .lp-mobile-dock button[data-lpt-mobile="settings"]{font-size:8.5px!important}
}

/* 16.9.7.62 — format ECU minimal, trois lignes conservées. */
@media (max-width:760px){
  .ecu-header-card{width:min(126px,31vw)!important;max-width:126px!important;min-height:58px!important;padding:5px 6px!important;border-radius:10px!important}
  .ecu-header-card strong{font-size:11px!important;line-height:1!important}
  .ecu-header-card small{font-size:7.5px!important;line-height:1.05!important;margin-top:3px!important;gap:0!important}
}

/* --- ui-fixes-16.9.7.54.css --- */
/* Accueil iPhone : logo, noms longs et boutons. */
@media(max-width:760px){
  .project-home-hero{min-height:190px!important;justify-content:center!important;align-items:center!important}
  .project-home .home-brand{display:flex!important;justify-content:center!important;align-items:center!important;width:100%!important}
  .project-home .home-brand img{width:168px!important;height:168px!important;max-width:168px!important;padding:3px!important;object-fit:cover!important;object-position:center!important;border:1px solid rgba(40,145,255,.55)!important;border-radius:34px!important;background:linear-gradient(145deg,#071524,#020711)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 0 28px rgba(18,126,255,.2)!important;filter:none!important}
  .home-continue>button{width:100%!important;min-width:0!important;grid-template-columns:50px minmax(0,1fr) auto!important;gap:10px!important;padding:11px!important;overflow:hidden!important}
  .home-continue>button>span:nth-child(2){display:block!important;min-width:0!important;overflow:hidden!important}
  #homeContinueName{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:17px!important}
  #homeContinueMeta{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:12px!important}
  .home-continue button>b{grid-column:auto!important;width:auto!important;max-width:112px!important;padding:11px 10px!important;border-radius:10px!important;font-size:11px!important;line-height:1!important;text-align:center!important}
  .home-primary-actions{align-items:stretch!important}
  .home-action-card{min-height:142px!important;padding:14px!important}
  .home-action-card strong{font-size:14px!important;line-height:1.25!important;max-width:120px!important}
  .home-action-card small{font-size:10.5px!important;line-height:1.35!important;padding-right:12px!important}
  .home-action-card>b{right:14px!important;font-size:29px!important}
}

/* Tableau iPhone : cellules plus grandes et axes fixes. */
@media(max-width:760px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{--adaptive-cell-w:62px!important;--adaptive-cell-h:43px!important;--adaptive-axis-w:70px!important;--adaptive-font:12.5px!important;width:max-content!important;min-width:max-content!important;table-layout:fixed!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){width:62px!important;min-width:62px!important;max-width:62px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{height:43px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{height:41px!important;font-size:12.5px!important;padding:5px 4px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{width:70px!important;min-width:70px!important;max-width:70px!important}
  #tableDialog #tableWindowArea .map-grid-wrap{overflow:auto!important;touch-action:pan-x pan-y!important;-webkit-overflow-scrolling:touch!important}
}

/* Fenêtre map : fermeture sous la zone de statut iOS. */
@media(max-width:760px){
  #tableDialog .window-titlebar{min-height:calc(64px + env(safe-area-inset-top))!important;padding:calc(12px + env(safe-area-inset-top)) 12px 10px!important;align-items:center!important}
  #tableDialog .window-titlebar>div{min-width:0!important;padding-right:8px!important}
  #tableDialog .window-titlebar h2{font-size:15px!important;line-height:1.18!important;overflow-wrap:anywhere!important}
  #tableDialog .window-close{flex:0 0 42px!important;width:42px!important;height:42px!important;align-self:center!important}
}

/* --- ui-fixes-16.9.7.55.css --- */
@media(max-width:760px){
  .lp-mobile-dock .lp-plus{transform:translateY(10px)!important}
  .ecu-header-card{width:154px!important;min-width:0!important;max-width:38vw!important;padding-left:8px!important;padding-right:8px!important}
}

/* --- ui-fixes-16.9.7.58.css --- */
@media (max-width: 700px) {
  .lp-mobile-dock .lp-plus { transform: translateY(8.5px) !important; }
  .ecu-header-card {
    width: 122px !important;
    min-width: 0 !important;
    max-width: 31vw !important;
    padding-left: 7px !important;
    padding-right: 7px !important;
  }
  .ecu-header-card strong { font-size: 13px !important; }
  .ecu-header-card small { font-size: 9px !important; }
}
/* 16.9.7.63 — projets récents entièrement contenus sur iPhone. */
@media (max-width:620px){
  .home-recent{overflow:hidden!important;padding-left:14px!important;padding-right:14px!important}
  .home-project-list,.home-project-swipe{width:100%!important;max-width:100%!important;min-width:0!important}
  .home-project-row{
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
    grid-template-columns:46px minmax(0,1fr) 72px!important;
    gap:8px!important;
    padding:9px!important;
    overflow:hidden!important;
  }
  .home-project-row .project-icon{width:44px!important;height:44px!important;font-size:23px!important}
  .home-project-main{min-width:0!important;overflow:hidden!important}
  .home-project-main strong,.home-project-main small,.home-project-main em{display:block!important;max-width:100%!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .home-project-side{width:72px!important;max-width:72px!important;min-width:0!important;box-sizing:border-box!important;overflow:hidden!important;text-align:right!important;font-size:9.5px!important;line-height:1.25!important}
  .home-project-side b{display:block!important;width:100%!important;box-sizing:border-box!important;margin-top:4px!important;padding:3px 2px!important;text-align:center!important;font-size:9.5px!important;white-space:normal!important;overflow-wrap:anywhere!important}
}

/* --- ui-v17.css --- */
/* La Performance Tuner UI V17 */
:root{--v17-bg:#050b16;--v17-card:#0f1a2a;--v17-blue:#1d7cff;--v17-cyan:#46c8ff;--v17-text:#fff;--v17-muted:#b8c4d6;--v17-line:rgba(70,200,255,.22)}
html,body{background:var(--v17-bg)!important;color:var(--v17-text)!important}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 20% 0,rgba(29,124,255,.13),transparent 34%),linear-gradient(rgba(70,200,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(70,200,255,.025) 1px,transparent 1px);background-size:auto,32px 32px,32px 32px}
button,input,select,textarea{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif}
button{transition:transform .18s cubic-bezier(.2,.8,.2,1),border-color .18s,box-shadow .18s!important}
button:active{transform:scale(.97)!important;box-shadow:0 0 22px rgba(29,124,255,.25)!important}
.panel,.power-accordion,.editor-panel,.home-continue,.home-recent,.home-action-card,.project-file-card,.project-detail-row>div,.map-display-panel,.inline-map-toolbar,.pro-drawer-panel,.dialog-shell,.window-shell{background:linear-gradient(145deg,rgba(17,31,49,.9),rgba(7,16,29,.82))!important;border:1px solid var(--v17-line)!important;box-shadow:inset 0 1px rgba(255,255,255,.04),0 18px 45px rgba(0,0,0,.24)!important;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}
.app-header{background:linear-gradient(180deg,rgba(5,11,22,.98),rgba(5,11,22,.88))!important;border-bottom:1px solid var(--v17-line)!important}
.lpt-header-logo{filter:drop-shadow(0 0 16px rgba(29,124,255,.36));object-fit:contain!important}
.ecu-header-card{background:linear-gradient(145deg,rgba(14,34,57,.94),rgba(6,15,27,.94))!important;border:1px solid rgba(70,200,255,.3)!important;box-shadow:inset 0 1px rgba(255,255,255,.06),0 0 22px rgba(29,124,255,.12)!important}
.ecu-header-card strong{color:#60ccff!important;text-shadow:0 0 12px rgba(70,200,255,.22)}.ecu-header-card small{color:var(--v17-muted)!important}
.header-actions .icon-action,.secondary-actions button,.mappack-actions button,.simple-actions button{background:linear-gradient(145deg,rgba(18,35,55,.88),rgba(7,17,30,.92))!important;border:1px solid rgba(70,200,255,.22)!important;color:#edf7ff!important;border-radius:14px!important}
.main-nav{background:rgba(4,11,21,.92)!important;border-color:var(--v17-line)!important;backdrop-filter:blur(18px)}
.main-nav button{color:#91a8bf!important;letter-spacing:.65px!important}.main-nav button.active{color:white!important;background:linear-gradient(180deg,rgba(29,124,255,.28),rgba(29,124,255,.08))!important;box-shadow:inset 0 -2px var(--v17-blue),0 0 22px rgba(29,124,255,.12)!important}
.main-nav button span,.lp-mobile-dock button>span{font-size:0!important}.main-nav button span:before,.lp-mobile-dock button>span:before{font-size:19px!important;font-family:ui-monospace,"SF Symbols",sans-serif;color:#9eb5ca}
#hexWindowBtn span:before{content:"⌗"}#projectWindowBtn span:before{content:"▣"}#mapsWindowBtn span:before{content:"⠿"}#compareWindowBtn span:before{content:"⇄"}#powerWindowBtn span:before{content:"⌁"}#proToolsBtn span:before{content:"▤"}
.inline-map-toolbar input,.inline-map-toolbar select,input,select,textarea{background:rgba(3,12,23,.82)!important;border:1px solid rgba(70,200,255,.2)!important;color:white!important;border-radius:13px!important}
.inline-map-item,.map-item{background:linear-gradient(135deg,rgba(14,29,46,.96),rgba(7,18,32,.96))!important;border:1px solid rgba(70,200,255,.16)!important;border-left:3px solid var(--map-color,#1d7cff)!important;box-shadow:0 12px 28px rgba(0,0,0,.18)!important}
.inline-map-item:hover,.map-item:hover{border-color:rgba(70,200,255,.48)!important;box-shadow:0 0 26px rgba(29,124,255,.13)!important}
.window-titlebar{background:rgba(7,17,30,.95)!important;border-bottom:1px solid var(--v17-line)!important}.window-titlebar h2{color:white!important}.window-titlebar small{color:var(--v17-muted)!important}
.map-view-switcher button,.tabs button{border-radius:12px!important;border:1px solid rgba(70,200,255,.2)!important;background:rgba(8,20,35,.86)!important;color:var(--v17-muted)!important}.map-view-switcher button.active,.tabs button.active{background:linear-gradient(180deg,#238cff,#1258bd)!important;color:white!important;box-shadow:0 0 20px rgba(29,124,255,.28)!important}
.hex-inline-content,#hexArea,.hex-window .window-content{font-family:"JetBrains Mono","SFMono-Regular",Consolas,monospace!important;background:#050a12!important}
.lp-mobile-dock{background:rgba(6,16,28,.84)!important;border:1px solid rgba(70,200,255,.25)!important;backdrop-filter:blur(25px)!important;-webkit-backdrop-filter:blur(25px)!important;box-shadow:0 20px 55px rgba(0,0,0,.68),inset 0 1px rgba(255,255,255,.05)!important}
.lp-mobile-dock button{color:#90a7bc!important}.lp-mobile-dock button.active{color:white!important}.lp-mobile-dock [data-lpt-mobile="project"] span:before{content:"▰"}.lp-mobile-dock [data-lpt-mobile="calculator"] span:before{content:"⌁"}.lp-mobile-dock [data-lpt-mobile="home"] span:before{content:"⌂"}.lp-mobile-dock [data-lpt-mobile="maps"] span:before{content:"◉"}.lp-mobile-dock [data-lpt-mobile="settings"] span:before{content:"▤"}.lp-mobile-dock .lp-plus{background:linear-gradient(180deg,#268eff,#0a4db6)!important;box-shadow:0 0 30px rgba(29,124,255,.42),inset 0 1px rgba(255,255,255,.22)!important}
@media(max-width:760px){.app-header{grid-template-columns:minmax(0,1fr) auto!important;gap:10px!important;padding-left:16px!important;padding-right:16px!important}.brand-zone{min-width:0!important}.lpt-header-logo{width:100%!important;max-width:245px!important;height:auto!important}.ecu-header-card{width:116px!important;max-width:116px!important;min-height:54px!important;padding:5px!important;border-radius:10px!important}.ecu-header-card strong{font-size:10.5px!important}.ecu-header-card small{font-size:7px!important}.header-actions{grid-column:1/-1!important;display:grid!important;grid-template-columns:repeat(5,1fr)!important;gap:8px!important}.header-actions .icon-action{width:100%!important;min-width:0!important;height:48px!important}.main-nav{grid-template-columns:repeat(6,1fr)!important}.main-nav button{font-size:7.5px!important}.panel,.power-accordion{border-radius:18px!important}.inline-map-item,.map-item{border-radius:15px!important;padding:13px!important;min-height:76px!important}.lp-mobile-dock{border-radius:22px!important}}
@media(prefers-reduced-motion:no-preference){.panel,.inline-map-item,.map-item{animation:v17Reveal .34s ease-out both}@keyframes v17Reveal{from{opacity:0;filter:blur(5px);transform:translateY(5px)}to{opacity:1;filter:blur(0);transform:none}}}

/* --- ui-v17-exact.css --- */
/* UI V17 — reconstruction mobile d'après la maquette de référence */
@media(max-width:760px){
 body{background:#020711!important;font-size:13px!important}
 .editor-app{background:radial-gradient(circle at 50% 0,rgba(16,102,214,.12),transparent 28%),#020711!important}
 .app-header{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;padding:18px 14px 10px!important;background:#020711!important}
 .brand-zone{display:flex!important;justify-content:center!important;width:100%!important;min-height:188px!important;padding:0!important;background:radial-gradient(circle,rgba(16,111,255,.12),transparent 62%)!important}
 .lpt-header-logo{width:min(92vw,350px)!important;max-width:none!important;height:188px!important;object-fit:contain!important;filter:drop-shadow(0 0 20px rgba(0,124,255,.42))!important}
 .ecu-header-card{position:relative!important;width:100%!important;max-width:none!important;min-height:92px!important;padding:18px 44% 15px 16px!important;border-radius:14px!important;text-align:left!important;align-items:flex-start!important;justify-content:center!important;background:radial-gradient(circle at 82% 50%,rgba(29,124,255,.22),transparent 31%),linear-gradient(135deg,#0c1929,#07111e)!important;overflow:hidden!important}
 .ecu-header-card:after{content:"";position:absolute;right:16px;top:14px;width:92px;height:62px;opacity:.82;background:linear-gradient(145deg,transparent 38%,rgba(70,200,255,.65) 39% 41%,transparent 42%),repeating-linear-gradient(90deg,transparent 0 8px,rgba(70,200,255,.22) 9px 10px);border:1px solid rgba(70,200,255,.36);border-radius:9px;transform:perspective(140px) rotateX(56deg) rotateZ(-8deg);box-shadow:0 0 20px rgba(29,124,255,.25)}
 .ecu-header-card:before{content:"CALCULATEUR";display:block!important;position:absolute;left:16px;top:10px;color:#90a4b8;font-size:8px;font-weight:800;letter-spacing:.8px}
 .ecu-header-card strong{font-size:20px!important;line-height:1.1!important;margin-top:10px!important;text-align:left!important}.ecu-header-card small{font-size:10px!important;line-height:1.35!important;align-items:flex-start!important;text-align:left!important;margin-top:5px!important}
 .header-actions{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:7px!important;width:100%!important}
 .header-actions .icon-action{position:relative!important;display:grid!important;place-items:center!important;align-content:start!important;width:100%!important;height:58px!important;padding:8px 2px 4px!important;border-radius:11px!important;font-size:19px!important}
 .header-actions .icon-action:after{display:block;font-size:7.5px;color:#9fb0c3;margin-top:5px;font-weight:600}.header-actions #backToProjectsBtn:after{content:"Retour"}.header-actions .open-file:after{content:"Ouvrir"}.header-actions #saveBtn:after{content:"Enregistrer"}.header-actions #undoBtn:after{content:"Annuler"}.header-actions #redoBtn:after{content:"Rétablir"}
 .main-nav{position:relative!important;top:auto!important;height:62px!important;grid-template-columns:repeat(6,1fr)!important;border-top:1px solid rgba(70,200,255,.14)!important;border-bottom:1px solid rgba(70,200,255,.2)!important}
 .main-nav button{height:62px!important;font-size:7px!important;padding:7px 1px!important}.main-nav button span:before{font-size:18px!important;margin-bottom:5px!important;display:block}
 .secondary-actions{display:grid!important;grid-template-columns:1fr 1.35fr 1fr!important;gap:7px!important;padding:9px 12px!important;overflow:hidden!important}.secondary-actions button{height:42px!important;padding:5px!important;font-size:10px!important}.secondary-actions #saveSessionBtn,.secondary-actions #loadSessionBtn{display:none!important}
 .editor-app main{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:8px 12px 100px!important}
 #projectPanel,#mappackPanel{grid-column:auto!important;border-radius:13px!important;min-height:112px!important}#projectPanel>summary,#mappackPanel>summary{min-height:112px!important;padding:14px!important;justify-content:center!important}#projectPanel>summary span,#mappackPanel>summary span{font-size:16px!important}#projectPanel>summary small,#mappackPanel>summary small{font-size:9px!important;line-height:1.35!important}
 #projectPanel[open],#mappackPanel[open]{grid-column:1/-1!important}
 #mapsPanel{grid-column:1/-1!important;border-radius:14px!important;background:linear-gradient(145deg,#0a1727,#06101c)!important}#mapsPanel>summary{min-height:100px!important;padding:16px!important;display:grid!important;grid-template-columns:1fr auto!important;align-content:center!important}#mapsPanel>summary span:first-child{font-size:20px!important;color:#28a2ff!important}#mapsPanel>summary small{font-size:22px!important;color:#1d7cff!important;font-weight:900!important}
 .maps-home-content{padding:10px!important}.inline-map-toolbar{grid-template-columns:1fr 1fr!important;padding:8px!important;border-radius:12px!important}.inline-map-toolbar>input{grid-column:1/-1!important;height:42px!important}.inline-map-toolbar select{height:40px!important;font-size:11px!important}.inline-map-toolbar>label{grid-column:1/-1!important}
 .inline-map-category{margin:8px 0!important;border:0!important;background:transparent!important}.inline-map-category>summary{min-height:40px!important;border:0!important;background:transparent!important;color:#d9e7f7!important}.inline-map-items{display:grid!important;gap:8px!important}
 .inline-map-item,.map-item{position:relative!important;display:grid!important;grid-template-columns:1fr 112px!important;grid-template-rows:auto auto!important;min-height:92px!important;padding:16px 122px 13px 14px!important;border-radius:12px!important;text-align:left!important;overflow:hidden!important}.inline-map-item strong,.map-item strong{font-size:13px!important;line-height:1.25!important}.inline-map-item small,.map-item small{font-size:9px!important;line-height:1.45!important;color:#aebed0!important}.lpt-map-miniature{position:absolute!important;right:8px!important;top:10px!important;width:108px!important;height:70px!important;pointer-events:none!important;filter:drop-shadow(0 0 9px var(--thumb-glow,#1d7cff))}
 .tool-window[open],.tool-window.open,.map-view-window[open],dialog[open]{inset:0!important;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;margin:0!important;border-radius:0!important;background:#030914!important}.window-shell,.dialog-shell{min-height:100dvh!important;border-radius:0!important}.window-titlebar{padding:calc(14px + env(safe-area-inset-top)) 14px 12px!important}.window-titlebar h2{font-size:20px!important}.window-content{padding:12px 12px calc(96px + env(safe-area-inset-bottom))!important}
 .map-view-switcher{padding:8px 12px!important;gap:7px!important}.map-view-switcher button{height:44px!important;font-size:12px!important}
 #hexArea,.hex-inline-content{font-size:11px!important;line-height:1.7!important;color:#e8f2ff!important}#hexArea .hex-offset{color:#778da6!important}#hexArea .changed,#hexArea .selected{background:#124f9b!important;color:white!important}
 .lp-mobile-dock{left:10px!important;right:10px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;height:66px!important;border-radius:17px!important}.lp-mobile-dock button{height:56px!important;font-size:8px!important}.lp-mobile-dock .lp-plus{width:57px!important;height:57px!important;margin:-14px auto 0!important}
}

/* 17.0.4 — corrections finales basées sur les captures 16.9.7.66. */
@media(max-width:760px){
 .brand-zone{height:218px!important;min-height:218px!important;overflow:hidden!important}
 .app-header .brand-zone .lpt-header-logo{width:100%!important;height:218px!important;margin:0!important;object-fit:fill!important;object-position:center!important;transform:none!important;filter:drop-shadow(0 0 18px rgba(0,125,255,.42))!important}
 #lptEcuRender{mix-blend-mode:screen!important;background:transparent!important;right:0!important;width:54%!important}
 body #editorApp main #mapsPanel>.maps-home-content{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;padding:0!important;margin:0!important;overflow:hidden!important}
 body #editorApp #mapsPanel>summary>span,body #editorApp #mapsPanel>summary>small#mapsPanelCount{display:none!important;visibility:hidden!important}
 #lptV17MapsSummary{display:grid!important;visibility:visible!important}
 #lptV17MapsCount{font-size:42px!important;white-space:nowrap!important}#lptV17MapsCount small{display:block!important;visibility:visible!important;font-size:11px!important;line-height:1.2!important;white-space:nowrap!important;color:#b7c7d8!important}
 .inline-map-item,.map-item{height:auto!important;min-height:94px!important;padding:12px 106px 12px 14px!important;align-content:center!important;grid-template-rows:auto auto!important}
 .inline-map-item strong,.map-item strong{display:block!important;max-height:none!important;overflow:visible!important;font-size:12px!important;line-height:1.25!important;margin:0 0 5px!important}.inline-map-item small,.map-item small{display:block!important;max-height:none!important;font-size:8.5px!important;line-height:1.3!important}
 footer{display:none!important}.editor-app main{min-height:0!important;padding-bottom:118px!important}.editor-app{min-height:100dvh!important}
 #appToast{bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 70px)!important;font-size:13px!important}
 .lp-mobile-dock{bottom:max(10px,env(safe-area-inset-bottom))!important;height:70px!important}.lp-mobile-dock button{height:60px!important}.lp-mobile-dock .lp-plus{width:62px!important;height:62px!important;margin:-16px auto 0!important}
}

/* 17.0.3 — alignement sur l'illustration finale fournie. */
@media(max-width:760px){
 .brand-zone{height:205px!important;min-height:205px!important;background:radial-gradient(ellipse at center,rgba(0,104,255,.24),transparent 64%)!important}
 .app-header .brand-zone .lpt-header-logo{width:calc(100% + 80px)!important;max-width:none!important;height:205px!important;margin-left:-40px!important;object-fit:cover!important;object-position:center 47%!important;transform:scale(1.22)!important;border-radius:0!important;filter:drop-shadow(0 0 22px rgba(0,125,255,.48))!important}
 .ecu-header-card{min-height:150px!important;padding:40px 52% 18px 18px!important;border-radius:17px!important;background:radial-gradient(circle at 77% 48%,rgba(13,107,255,.24),transparent 38%),linear-gradient(135deg,#0c1d31,#07111f)!important}
 .ecu-header-card:after{display:none!important}.ecu-header-card strong{font-size:25px!important}.ecu-header-card small{font-size:11px!important}
 #lptEcuRender{position:absolute;right:5px;bottom:4px;width:55%;height:132px;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.58)) drop-shadow(0 0 12px rgba(29,124,255,.38));pointer-events:none}
 .header-actions .icon-action,#lptHeaderImportBtn,#lptLogoutBtn{height:68px!important;border-radius:14px!important;font-size:23px!important}.header-actions .icon-action:after,#lptHeaderImportBtn:after,#lptLogoutBtn:after{font-size:9px!important;margin-top:7px!important}
 #mapsPanel{min-height:170px!important}#mapsPanel>summary{display:block!important;min-height:170px!important;padding:0!important;position:relative!important}#mapsPanel>summary>span,#mapsPanel>summary>small{display:none!important}
 #lptV17MapsSummary{position:absolute;inset:0;padding:18px 20px;display:grid;grid-template-columns:1fr 82px;grid-template-rows:auto 1fr 10px;gap:6px 12px;box-sizing:border-box;background:radial-gradient(ellipse at 55% 58%,rgba(25,112,255,.16),transparent 45%)}
 #lptV17MapsTitle{grid-column:1/-1;color:#42b6ff;font-size:20px;font-weight:850}#lptV17MapsCount{align-self:end;color:#168cff;font-size:43px;line-height:.9;font-weight:950}#lptV17MapsCount small{display:block;color:#b7c7d8;font-size:11px;font-weight:600;margin-top:8px}
 #lptV17MapsDonut{grid-column:2;grid-row:2/4;align-self:center;justify-self:end;width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#13a4ff 0 96%,#102640 96%);box-shadow:0 0 20px rgba(20,143,255,.25)}#lptV17MapsDonut:before{content:"";position:absolute;width:52px;height:52px;border-radius:50%;background:#071423}#lptV17MapsDonut b{position:relative;font-size:18px;color:white}
 #lptV17MapsProgress{grid-column:1;grid-row:3;height:8px;border-radius:8px;background:linear-gradient(90deg,#9ceeff,#0d72ff);box-shadow:0 0 12px rgba(17,137,255,.28)}
 .editor-app main{padding-bottom:140px!important}.workspace.editor-only{grid-column:1/-1!important}.map-display-panel{border-radius:15px!important}.map-display-panel>summary{min-height:86px!important;padding:16px!important}.map-display-panel>summary span{font-size:17px!important;color:#41afff!important}.map-display-panel>summary small{font-size:9px!important}
 .lp-mobile-dock{bottom:max(16px,env(safe-area-inset-bottom))!important;height:76px!important;border-radius:24px!important}.lp-mobile-dock button{height:64px!important}.lp-mobile-dock .lp-plus{width:66px!important;height:66px!important;margin:-18px auto 0!important;box-shadow:0 0 32px rgba(21,132,255,.65)!important}
}

/* 17.0.2 — corrections issues des captures réelles iPhone. */
@media(max-width:760px){
 .app-header{grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"brand" "ecu" "actions"!important;min-height:0!important;height:auto!important;align-items:stretch!important;overflow:hidden!important}
 .brand-zone{grid-area:brand!important;display:block!important;width:100%!important;height:166px!important;min-height:166px!important;overflow:hidden!important;padding:0!important}
 .lpt-header-logo{display:block!important;width:100%!important;max-width:none!important;height:166px!important;object-fit:cover!important;object-position:center 48%!important;transform:scale(1.08)!important}
 .ecu-header-card{grid-area:ecu!important;justify-self:stretch!important;align-self:stretch!important;width:100%!important;max-width:none!important;box-sizing:border-box!important}
 .header-actions{grid-area:actions!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
 .header-actions #undoBtn,.header-actions #redoBtn{display:none!important}
 #lptHeaderImportBtn,#lptLogoutBtn{position:relative!important;inset:auto!important;transform:none!important;display:grid!important;place-items:center!important;align-content:start!important;width:100%!important;height:58px!important;margin:0!important;padding:8px 2px 4px!important;border-radius:11px!important;background:linear-gradient(145deg,rgba(18,35,55,.88),rgba(7,17,30,.92))!important;border:1px solid rgba(70,200,255,.22)!important;color:#edf7ff!important;font-size:19px!important;box-shadow:none!important}
 #lptHeaderImportBtn:after,#lptLogoutBtn:after{display:block!important;margin-top:5px!important;font-size:7.5px!important;font-weight:600!important;color:#9fb0c3!important}#lptHeaderImportBtn:after{content:"Importer"}#lptLogoutBtn:after{content:"Fermer"}#lptLogoutBtn{color:#ff4960!important;border-color:rgba(255,73,96,.38)!important;background:rgba(58,15,25,.72)!important}
 #mapsPanel{min-height:116px!important}#mapsPanel>.maps-home-content{display:none!important}#mapsPanel>summary{min-height:116px!important;border:0!important}#mapsPanel>summary small{max-width:240px!important;white-space:normal!important;text-align:right!important;line-height:1.1!important}
 .inline-map-item,.map-item{box-sizing:border-box!important;grid-template-columns:1fr 96px!important;min-height:82px!important;height:82px!important;padding:12px 106px 10px 12px!important;border-radius:11px!important}
 .inline-map-item strong,.map-item strong{font-size:12px!important;max-height:32px!important;overflow:hidden!important}.inline-map-item small,.map-item small{font-size:8.5px!important;max-height:28px!important;overflow:hidden!important}
 .lpt-map-miniature{right:6px!important;top:9px!important;width:94px!important;height:61px!important}
 .lp-mobile-dock button>span{font-size:0!important;color:transparent!important;width:24px!important;height:24px!important;overflow:hidden!important}.lp-mobile-dock button>span:before{color:#9eb5ca!important;font-size:19px!important}.lp-mobile-dock .lp-plus span:before{font-size:22px!important;color:#fff!important}
}

/* 17.0.4 FINAL — doit rester le dernier bloc de surcharge. */
@media(max-width:760px){
 .brand-zone{height:218px!important;min-height:218px!important;overflow:hidden!important}
 .app-header .brand-zone .lpt-header-logo{width:100%!important;max-width:none!important;height:218px!important;margin:0!important;object-fit:fill!important;object-position:center!important;transform:none!important;filter:drop-shadow(0 0 18px rgba(0,125,255,.42))!important}
 #lptEcuRender{mix-blend-mode:screen!important;background:transparent!important;right:0!important;width:54%!important}
 body #editorApp main #mapsPanel>.maps-home-content{display:none!important;visibility:hidden!important;height:0!important;min-height:0!important;max-height:0!important;padding:0!important;margin:0!important;overflow:hidden!important}
 body #editorApp #mapsPanel>summary>span,body #editorApp #mapsPanel>summary>small#mapsPanelCount{display:none!important;visibility:hidden!important}
 #lptV17MapsSummary{display:grid!important;visibility:visible!important}
 #lptV17MapsCount{font-size:42px!important;white-space:nowrap!important}#lptV17MapsCount small{display:block!important;visibility:visible!important;font-size:11px!important;line-height:1.2!important;white-space:nowrap!important;color:#b7c7d8!important}
 .inline-map-item,.map-item{height:auto!important;min-height:94px!important;padding:12px 106px 12px 14px!important;align-content:center!important;grid-template-rows:auto auto!important}
 .inline-map-item strong,.map-item strong{display:block!important;max-height:none!important;overflow:visible!important;font-size:12px!important;line-height:1.25!important;margin:0 0 5px!important}.inline-map-item small,.map-item small{display:block!important;max-height:none!important;font-size:8.5px!important;line-height:1.3!important}
 footer{display:none!important}.editor-app main{min-height:0!important;padding-bottom:118px!important}.editor-app{min-height:100dvh!important}
 #appToast{bottom:calc(112px + env(safe-area-inset-bottom,0px))!important;max-width:calc(100vw - 70px)!important;font-size:13px!important}
 .lp-mobile-dock{bottom:max(10px,env(safe-area-inset-bottom))!important;height:70px!important}.lp-mobile-dock button{height:60px!important}.lp-mobile-dock .lp-plus{width:62px!important;height:62px!important;margin:-16px auto 0!important}
}

/* 17.0.6 FINAL — proportions compactes de la maquette iPhone. */
@media(max-width:760px){
 .app-header{gap:8px!important;padding:10px 14px 8px!important}
 .brand-zone{height:148px!important;min-height:148px!important;border:0!important;background:radial-gradient(ellipse at center,rgba(0,104,255,.2),transparent 68%)!important}
 .app-header .brand-zone .lpt-header-logo{height:148px!important;width:100%!important;object-fit:fill!important;box-shadow:none!important;border:0!important}
 .ecu-header-card{min-height:116px!important;height:116px!important;padding:32px 52% 12px 16px!important;border-radius:14px!important}.ecu-header-card:before{top:9px!important}.ecu-header-card strong{font-size:21px!important;margin-top:3px!important}.ecu-header-card small{font-size:9px!important;margin-top:4px!important}
 #lptEcuRender{height:106px!important;width:51%!important;right:4px!important;bottom:1px!important}
 .header-actions{gap:7px!important}.header-actions .icon-action,#lptHeaderImportBtn,#lptLogoutBtn{height:58px!important;border-radius:12px!important;font-size:20px!important;padding-top:6px!important}.header-actions .icon-action:after,#lptHeaderImportBtn:after,#lptLogoutBtn:after{font-size:7.5px!important;margin-top:4px!important}
 .main-nav{height:56px!important}.main-nav button{height:56px!important;font-size:6.7px!important;padding-top:5px!important}.main-nav button span:before{font-size:16px!important;margin-bottom:3px!important}
 .secondary-actions{padding:7px 12px!important}.secondary-actions button{height:38px!important;font-size:9px!important}
 .editor-app main{gap:8px!important;padding-top:8px!important;padding-bottom:105px!important}
 #projectPanel,#mappackPanel{min-height:96px!important}#projectPanel>summary,#mappackPanel>summary{min-height:96px!important;padding:12px!important}#projectPanel>summary span,#mappackPanel>summary span{font-size:15px!important}#projectPanel>summary small,#mappackPanel>summary small{font-size:8.5px!important}
 #mapsPanel{min-height:132px!important;height:132px!important}#mapsPanel>summary{min-height:132px!important;height:132px!important}
 #lptV17MapsSummary{padding:13px 16px!important;grid-template-columns:1fr 70px!important;grid-template-rows:26px 1fr 8px!important}
 #lptV17MapsTitle{font-size:17px!important}#lptV17MapsCount{font-size:36px!important;line-height:1!important;position:relative!important}#lptV17MapsSummary #lptV17MapsCount>small{position:absolute!important;left:0!important;bottom:-17px!important;display:block!important;font-size:9px!important;line-height:1!important;font-weight:600!important;color:#b8c4d6!important}
 #lptV17MapsDonut{width:60px!important;height:60px!important}#lptV17MapsDonut:before{width:44px!important;height:44px!important}#lptV17MapsDonut b{font-size:15px!important}
 .workspace.editor-only{margin:0!important}.map-display-panel>summary{min-height:72px!important;padding:12px 14px!important}.map-display-panel>summary span{font-size:15px!important}.map-display-panel>summary small{font-size:8px!important}
 #hexPanel:not([open]),#powerAccordion:not([open]){display:none!important}
 .lp-mobile-dock{height:66px!important;bottom:max(8px,env(safe-area-inset-bottom))!important}.lp-mobile-dock button{height:56px!important}.lp-mobile-dock .lp-plus{width:58px!important;height:58px!important;margin:-14px auto 0!important}
}

/* 16.9.7.80 — image ECU sans fond et barre Maps masquée. */
@media(max-width:760px){
 #lptEcuRender{object-fit:contain!important;background:transparent!important;mix-blend-mode:normal!important;border:0!important;border-radius:0!important}
 #lptV17MapsProgress{display:none!important}
}

/* --- ui-v17-shell.css --- */
/* Écran d'accueil mobile V17 autonome */
#lptV17Shell{display:none}
@media(max-width:760px){
 body:not(.lpt-v17-workspace) #editorApp>.app-header,body:not(.lpt-v17-workspace) #editorApp>.main-nav,body:not(.lpt-v17-workspace) #editorApp>.secondary-actions,body:not(.lpt-v17-workspace) #editorApp>main,body:not(.lpt-v17-workspace) #editorApp>footer{display:none!important}
 body.lpt-v17-workspace #lptV17Shell{display:none!important}
 #lptV17Shell{display:block;min-height:100dvh;padding:calc(10px + env(safe-area-inset-top)) 14px 110px;box-sizing:border-box;background:radial-gradient(circle at 50% 0,rgba(0,91,220,.2),transparent 28%),#020711;color:#fff}
 #lptV17Shell:before{content:"";position:fixed;inset:3px;pointer-events:none;border:1px solid rgba(34,142,255,.32);border-radius:30px;box-shadow:inset 0 0 34px rgba(0,105,255,.12);z-index:10000}
 .v17-hero{height:174px;position:relative;overflow:hidden;background:radial-gradient(ellipse at center,rgba(0,91,255,.16),transparent 65%)}.v17-hero img{width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 0 18px rgba(0,126,255,.5))}
 .v17-ecu{position:relative;height:145px;margin-top:8px;padding:19px 51% 14px 17px;box-sizing:border-box;border:1px solid #1376ca;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 75% 54%,rgba(0,102,255,.28),transparent 40%),linear-gradient(135deg,#0b1b31,#06101e);box-shadow:inset 0 0 30px rgba(0,107,255,.08),0 0 20px rgba(0,103,255,.15)}
 .v17-ecu small{display:block;color:#a9bdd0;font-size:9px;font-weight:800;letter-spacing:.8px}.v17-ecu strong{display:block;margin-top:8px;color:#61d0ff;font-size:23px;font-weight:950}.v17-ecu span{display:block;margin-top:7px;color:#b9c7d6;font-size:10px;line-height:1.45}.v17-ecu .v17-ecu-image{position:absolute;right:3px;bottom:3px;width:53%;height:134px;object-fit:contain;object-position:center;background:transparent;border:0;border-radius:0;mix-blend-mode:normal;filter:drop-shadow(0 5px 10px rgba(0,0,0,.52)) drop-shadow(0 0 10px rgba(0,112,255,.35));pointer-events:none}.v17-online{position:absolute;left:17px;bottom:11px!important;width:max-content;color:#8de6c1!important;border:1px solid rgba(25,218,139,.35);border-radius:20px;padding:3px 8px;background:rgba(0,74,48,.38);font-size:8px!important}
 .v17-actions{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:10px}.v17-actions button{height:66px;border:1px solid rgba(63,167,255,.3);border-radius:14px;background:linear-gradient(145deg,#10233c,#071222);color:#fff;font-size:20px}.v17-actions button b{display:block;margin-top:5px;color:#c0ccda;font-size:8px;font-weight:600}.v17-actions .danger{color:#ff536b;border-color:rgba(255,69,93,.42);background:linear-gradient(145deg,#35101b,#170a11)}
 .v17-tabs{display:grid;grid-template-columns:repeat(6,1fr);height:61px;margin-top:10px;border:1px solid rgba(41,112,172,.3);border-radius:10px;overflow:hidden;background:#050d18}.v17-tabs button{border:0;border-right:1px solid rgba(55,111,160,.24);background:transparent;color:#aab9c8;font-size:7px;font-weight:800;letter-spacing:.45px}.v17-tabs button i{display:block;margin-bottom:5px;color:#c3d5e5;font-style:normal;font-size:17px}.v17-tabs button.active{color:#fff;background:linear-gradient(180deg,rgba(0,111,255,.35),rgba(0,68,169,.13));box-shadow:inset 0 -2px #168cff,0 0 18px rgba(0,115,255,.23)}
 .v17-shortcuts{display:grid;grid-template-columns:1fr 1.35fr 1fr;gap:7px;margin-top:9px}.v17-shortcuts button{height:42px;border:1px solid rgba(62,162,244,.28);border-radius:13px;background:linear-gradient(145deg,#0d1d31,#07111f);color:#fff;font-size:10px;font-weight:750}.v17-shortcuts button:nth-child(2){color:#48baff;border-color:#168cff}
 .v17-pair{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.v17-card{min-height:111px;padding:15px;border:1px solid rgba(42,151,238,.34);border-radius:16px;background:linear-gradient(145deg,#0c1b2d,#07111f);box-shadow:inset 0 0 25px rgba(0,93,190,.04);text-align:left;color:#fff}.v17-card strong{display:block;font-size:17px}.v17-card p{margin:10px 0 0;color:#adbdcd;font-size:9px;line-height:1.45}
 .v17-maps{position:relative;height:157px;margin-top:10px;padding:15px 18px;border:1px solid #178be3;border-radius:17px;overflow:hidden;background:radial-gradient(ellipse at 54% 58%,rgba(0,111,255,.18),transparent 43%),linear-gradient(145deg,#0b1b30,#07111e);box-shadow:0 0 18px rgba(0,113,255,.14)}.v17-maps h3{margin:0;color:#42b9ff;font-size:19px}.v17-count{position:absolute;left:18px;bottom:36px;color:#168cff;font-size:40px;font-weight:950;line-height:.8}.v17-count small{display:block;margin-top:10px;color:#bdcad8;font-size:9px;font-weight:600}.v17-progress{position:absolute;left:18px;right:94px;bottom:15px;height:7px;border-radius:7px;background:linear-gradient(90deg,#9beaff,#0c70ff)}.v17-donut{position:absolute;right:18px;top:42px;width:68px;height:68px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#19aaff 0 96%,#142a45 96%)}.v17-donut:before{content:"";position:absolute;width:50px;height:50px;border-radius:50%;background:#071323}.v17-donut b{position:relative;font-size:17px}
 .v17-display{width:100%;height:76px;margin-top:10px;padding:13px 16px;border:1px solid rgba(35,145,231,.38);border-radius:15px;background:linear-gradient(145deg,#0b1a2c,#07101d);color:#fff;text-align:left}.v17-display strong{display:block;color:#42b4ff;font-size:15px}.v17-display small{display:block;margin-top:7px;color:#aebdcd;font-size:8.5px}
 .v17-dock{position:fixed;left:12px;right:12px;bottom:max(8px,env(safe-area-inset-bottom));height:74px;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;padding:4px 6px;border:1px solid rgba(48,155,241,.38);border-radius:23px;background:rgba(5,15,27,.95);box-shadow:0 16px 45px #000;z-index:99999}.v17-dock button{height:60px;border:0;background:none;color:#9bacbd;font-size:8px}.v17-dock button i{display:block;margin-bottom:5px;font-style:normal;font-size:20px}.v17-dock .home{width:62px;height:62px;margin:-18px auto 0;border:1px solid #5bb5ff;border-radius:50%;color:#fff;background:linear-gradient(180deg,#168cff,#0750bd);box-shadow:0 0 28px rgba(0,123,255,.6)}
}

/* 17.1.2 — composition intégrale dans une hauteur d'iPhone Safari/PWA. */
@media(max-width:760px){
 #lptV17Shell{padding:calc(6px + env(safe-area-inset-top)) 14px 88px!important}
 .v17-hero{height:118px!important}.v17-hero img{height:118px!important}
 .v17-ecu{height:104px!important;margin-top:6px!important;padding:15px 50% 10px 14px!important;border-radius:14px!important}.v17-ecu small{font-size:7px!important}.v17-ecu strong{margin-top:4px!important;font-size:18px!important;line-height:1!important}.v17-ecu span{margin-top:4px!important;font-size:8px!important;line-height:1.25!important}.v17-ecu .v17-ecu-image{height:98px!important;width:50%!important;right:1px!important;bottom:1px!important}.v17-online{left:14px!important;bottom:5px!important;padding:2px 6px!important;font-size:6.5px!important}
 .v17-actions{gap:6px!important;margin-top:7px!important}.v17-actions button{height:50px!important;border-radius:11px!important;font-size:16px!important}.v17-actions button b{margin-top:3px!important;font-size:6.5px!important}
 .v17-tabs{height:48px!important;margin-top:7px!important}.v17-tabs button{font-size:5.8px!important}.v17-tabs button i{margin-bottom:2px!important;font-size:14px!important}
 .v17-shortcuts{gap:6px!important;margin-top:6px!important}.v17-shortcuts button{height:34px!important;border-radius:10px!important;font-size:8px!important}
 .v17-pair{gap:7px!important;margin-top:7px!important}.v17-card{min-height:78px!important;height:78px!important;padding:11px!important;border-radius:13px!important}.v17-card strong{font-size:13px!important}.v17-card p{margin-top:6px!important;font-size:7px!important;line-height:1.3!important}
 .v17-maps{height:105px!important;margin-top:7px!important;padding:11px 14px!important;border-radius:14px!important}.v17-maps h3{font-size:14px!important}.v17-count{left:14px!important;bottom:26px!important;font-size:29px!important}.v17-count small{margin-top:7px!important;font-size:6.8px!important}.v17-progress{left:14px!important;right:72px!important;bottom:10px!important;height:5px!important}.v17-donut{right:14px!important;top:30px!important;width:52px!important;height:52px!important}.v17-donut:before{width:38px!important;height:38px!important}.v17-donut b{font-size:13px!important}
 .v17-display{height:54px!important;margin-top:7px!important;padding:9px 12px!important;border-radius:12px!important}.v17-display strong{font-size:12px!important}.v17-display small{margin-top:4px!important;font-size:6.8px!important}
 .v17-dock{height:60px!important;bottom:max(6px,env(safe-area-inset-bottom))!important;border-radius:19px!important}.v17-dock button{height:50px!important;font-size:6.5px!important}.v17-dock button i{margin-bottom:3px!important;font-size:16px!important}.v17-dock .home{width:52px!important;height:52px!important;margin:-13px auto 0!important}
}

/* 16.9.7.80 — nettoyage carte ECU et résumé Maps. */
@media(max-width:760px){
 .v17-progress{display:none!important}
 .v17-count{bottom:22px!important}
 .v17-ecu .v17-ecu-image{background:transparent!important;box-shadow:none!important;isolation:isolate!important}
}
@media(max-width:760px){
 .v17-count{bottom:14px!important}
}

/* 16.9.7.89 — grand logo historique et bouton Fermer flottant. */
@media(max-width:760px){
  #lptV17Shell{position:relative;padding-top:calc(4px + env(safe-area-inset-top))!important}
  .v17-hero{height:220px!important;margin:0!important;overflow:visible!important;background:radial-gradient(ellipse at 50% 45%,rgba(0,91,255,.25),transparent 66%)!important}
  .v17-hero img{display:block;width:100%!important;height:220px!important;object-fit:contain!important;object-position:center center!important;filter:drop-shadow(0 0 20px rgba(0,126,255,.58))!important}
  .v17-floating-close{position:absolute;right:5px;top:calc(14px + env(safe-area-inset-top));z-index:20;width:48px;height:48px;border:1px solid rgba(255,74,101,.7);border-radius:15px;background:linear-gradient(145deg,rgba(82,16,31,.96),rgba(35,8,18,.98));color:#ff8ba0;font-size:24px;line-height:1;box-shadow:0 0 18px rgba(255,45,82,.28),inset 0 0 16px rgba(255,68,95,.08)}
  .v17-actions{grid-template-columns:repeat(4,1fr)!important}
  .v17-actions .danger{display:none!important}
  .v17-ecu{margin-top:0!important}
}
@media(max-width:390px){
  .v17-hero{height:200px!important}.v17-hero img{height:200px!important}
  .v17-floating-close{width:44px;height:44px;right:3px;font-size:22px}
}
/* 16.9.7.91 — logo LPT réellement transparent, sans carré noir. */
.brand-zone,
.app-header .brand-zone,
.project-home .home-brand{
  background:transparent!important;
  box-shadow:none!important;
}
.app-header .brand-zone .lpt-header-logo,
.lpt-header-logo,
.home-brand img{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  object-fit:contain!important;
  mix-blend-mode:normal!important;
}
/* 16.9.7.92 — logo non déformé et déconnexion réellement flottante. */
@media(max-width:760px){
  .v17-hero{
    height:205px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
    position:relative!important;
    background:radial-gradient(ellipse at 50% 48%,rgba(0,91,255,.20),transparent 68%)!important;
  }
  .v17-hero>img{
    width:auto!important;
    height:auto!important;
    max-width:88%!important;
    max-height:188px!important;
    aspect-ratio:auto!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important;
    filter:drop-shadow(0 0 20px rgba(0,126,255,.52))!important;
  }
  .v17-floating-close{
    display:grid!important;
    place-items:center!important;
    position:absolute!important;
    top:calc(12px + env(safe-area-inset-top))!important;
    right:4px!important;
    width:48px!important;
    height:48px!important;
    margin:0!important;
    padding:0!important;
    z-index:2147480000!important;
    border:1px solid rgba(255,74,101,.75)!important;
    border-radius:15px!important;
    background:linear-gradient(145deg,rgba(82,16,31,.97),rgba(35,8,18,.99))!important;
    color:#ff8ba0!important;
    font-size:24px!important;
    line-height:1!important;
  }
  .v17-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important}
  .v17-actions button:nth-child(n+5),
  .v17-actions [data-a="close"],
  .v17-actions .danger{display:none!important}
}
@media(max-width:390px){
  .v17-hero{height:190px!important}
  .v17-hero>img{max-width:90%!important;max-height:174px!important}
  .v17-floating-close{width:44px!important;height:44px!important;font-size:22px!important}
}

/* --- ui-fixes-16.9.7.87.css --- */
/* 16.9.7.87 — miniatures 3D réelles redimensionnées et axe orange retiré du résumé. */
#mapsPanel>summary{cursor:pointer}
.lpt-summary-map-preview{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:visible;pointer-events:none;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.lpt-summary-map-preview canvas{display:block;width:100%;height:70px;max-height:none!important;margin:0!important;padding:0!important;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important;filter:drop-shadow(0 0 8px rgba(24,145,255,.32))}
.lpt-summary-map-label{display:block;max-width:100%;margin-top:-1px;overflow:hidden;color:#9dc8e8;font-size:8px;font-weight:700;line-height:1.1;text-align:center;text-overflow:ellipsis;white-space:nowrap;background:transparent!important}

/* Les aperçus de la liste ne sont plus des formes génériques : le canvas est transparent et reçoit les vraies cellules du BIN. */
.inline-map-item .lpt-map-miniature,.map-item .lpt-map-miniature{
  position:absolute!important;right:9px!important;top:15px!important;width:94px!important;height:62px!important;
  margin:0!important;padding:0!important;pointer-events:none!important;background:transparent!important;background-image:none!important;
  border:0!important;border-radius:0!important;box-shadow:none!important;outline:0!important;-webkit-appearance:none!important;
  filter:drop-shadow(0 0 7px rgba(29,145,255,.28))!important;
}
.inline-map-item,.map-item{padding-right:108px!important;min-height:92px!important}

@media(max-width:760px){
 #lptV17MapsSummary{grid-template-columns:minmax(58px,72px) minmax(112px,1fr) 58px!important;grid-template-rows:22px 1fr!important;column-gap:4px!important;row-gap:0!important;padding:10px 12px!important}
 #lptV17MapsTitle{grid-column:1/-1!important;grid-row:1!important}
 #lptV17MapsCount{grid-column:1!important;grid-row:2!important;align-self:center!important;font-size:34px!important;line-height:.92!important}
 #lptV17MapsSummary #lptV17MapsCount>small{position:static!important;display:block!important;margin-top:6px!important;font-size:8px!important;line-height:1!important}
 #lptV17MapsPreview{grid-column:2!important;grid-row:2!important;align-self:stretch!important;justify-self:stretch!important;min-width:0!important;overflow:visible!important}
 #lptV17MapsPreview canvas{height:76px!important;transform:scale(1.08);transform-origin:center center}
 #lptV17MapsDonut{grid-column:3!important;grid-row:2!important;align-self:center!important;justify-self:end!important;width:58px!important;height:58px!important}
 #lptV17MapsDonut:before{width:43px!important;height:43px!important}
 #lptV17MapsDonut b{font-size:15px!important}
 #lptV17MapsProgress{display:none!important}
 .v17-map-thumb{position:absolute!important;left:70px!important;right:62px!important;top:19px!important;bottom:1px!important;z-index:2!important;overflow:visible!important}
 .v17-map-thumb canvas{width:100%!important;height:72px!important;transform:scale(1.08);transform-origin:center center}
 .v17-map-thumb .lpt-summary-map-label{font-size:7px!important;margin-top:-3px!important;color:#9fc9e7!important}
 .v17-maps{cursor:pointer!important}
 .inline-map-item .lpt-map-miniature,.map-item .lpt-map-miniature{right:8px!important;top:16px!important;width:92px!important;height:60px!important}
 .inline-map-item,.map-item{padding-right:96px!important}
}
@media(max-width:360px){
 #lptV17MapsSummary{grid-template-columns:58px minmax(96px,1fr) 52px!important;padding-left:9px!important;padding-right:9px!important}
 #lptV17MapsCount{font-size:30px!important}#lptV17MapsDonut{width:52px!important;height:52px!important}#lptV17MapsDonut:before{width:38px!important;height:38px!important}
 .v17-map-thumb{left:62px!important;right:56px!important}
 .inline-map-item .lpt-map-miniature,.map-item .lpt-map-miniature{width:84px!important;height:56px!important}
 .inline-map-item,.map-item{padding-right:104px!important}
}
#lptV17MapsPreview canvas,#v17MapPreview canvas,.lpt-summary-map-preview canvas,.lpt-map-miniature{
  background-color:transparent!important;background-image:none!important;border:none!important;border-radius:0!important;box-shadow:none!important;-webkit-appearance:none!important;
}

/* 16.9.7.84 — rendu fiable des miniatures dans la liste. */
.inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{display:block!important;visibility:visible!important;opacity:1!important;z-index:3!important;}
/* 16.9.7.85 — le rendu filaire générique est interdit dans la liste. */
.inline-map-item>.lpt-map-miniature[data-lpt-real="1"],.map-item>.lpt-map-miniature[data-lpt-real="1"]{
  display:block!important;opacity:1!important;visibility:visible!important;
}
.inline-map-item>.lpt-map-miniature[data-lpt-real="empty"],.inline-map-item>.lpt-map-miniature[data-lpt-real="missing-map"],
.map-item>.lpt-map-miniature[data-lpt-real="empty"],.map-item>.lpt-map-miniature[data-lpt-real="missing-map"]{
  opacity:.18!important;
}

/* 16.9.7.87 — la miniature reste entièrement contenue dans sa ligne. */
.inline-map-item,.map-item{overflow:hidden!important;}
.inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{
  object-fit:contain!important;max-width:30%!important;max-height:70%!important;transform:none!important;
}
@media(max-width:760px){
 .inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{max-width:29%!important;max-height:68%!important;}
}

/* 16.9.7.87 — cadrage automatique et centrage sans axes. */
#lptV17MapsPreview,#v17MapPreview{overflow:hidden!important;align-items:center!important;justify-content:center!important;}
#lptV17MapsPreview canvas,#v17MapPreview canvas{
  transform:none!important;transform-origin:center center!important;
  width:100%!important;height:78px!important;object-fit:contain!important;
}
.inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{
  top:50%!important;right:7px!important;transform:translateY(-50%)!important;
  width:96px!important;height:68px!important;max-width:30%!important;max-height:76%!important;
}
@media(max-width:760px){
 #lptV17MapsPreview canvas,#v17MapPreview canvas{height:76px!important;}
 .inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{
   top:50%!important;right:6px!important;transform:translateY(-50%)!important;
   width:94px!important;height:66px!important;max-width:29%!important;max-height:74%!important;
 }
}
@media(max-width:360px){
 .inline-map-item>.lpt-map-miniature,.map-item>.lpt-map-miniature{width:84px!important;height:60px!important;}
}

/* --- v169727-auth.css --- */
html.lpt-auth-locked,html.lpt-auth-locked body{overflow:hidden!important}
#lptAuthGate{position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;padding:calc(20px + env(safe-area-inset-top)) 18px calc(20px + env(safe-area-inset-bottom));box-sizing:border-box;background:radial-gradient(circle at 50% 8%,#123754 0,#07131f 38%,#02070c 100%);color:#eef7ff;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
#lptAuthGate[hidden]{display:none!important}.lpt-auth-card{width:min(100%,420px);padding:28px 22px;border:1px solid #24557b;border-radius:26px;background:rgba(5,18,30,.96);box-shadow:0 24px 80px rgba(0,0,0,.55);display:grid;gap:14px}.lpt-auth-logo{width:62px;height:62px;border-radius:18px;display:grid;place-items:center;margin:auto;background:linear-gradient(145deg,#218cff,#0755b8);font-weight:900;font-size:22px;box-shadow:0 0 0 5px rgba(33,140,255,.14)}.lpt-auth-card h1{margin:3px 0 0;text-align:center;font-size:27px}.lpt-auth-card>p{margin:-5px 0 7px;text-align:center;color:#9fb4c8}.lpt-auth-card label{display:grid;gap:7px;color:#c8d7e5;font-weight:650}.lpt-auth-card input[type=text],.lpt-auth-card input[type=password]{width:100%;min-height:50px;box-sizing:border-box;border:1px solid #2b4c67;border-radius:14px;background:#050b12;color:#fff;padding:0 14px;font-size:17px;outline:none}.lpt-auth-card input:focus{border-color:#1687ff;box-shadow:0 0 0 3px rgba(22,135,255,.16)}.lpt-auth-pass{display:grid;grid-template-columns:1fr 50px;gap:8px}.lpt-auth-pass button{border-radius:14px;border:1px solid #2b4c67;background:#101a25;color:#43a0ff;font-size:20px}.lpt-auth-remember{display:flex!important;align-items:center;gap:9px!important;font-weight:500!important}.lpt-auth-remember input{width:20px;height:20px}.lpt-auth-card button[type=submit]{min-height:52px;border:0;border-radius:15px;background:linear-gradient(135deg,#1687ff,#0757c9);color:#fff;font-weight:800;font-size:17px}.lpt-auth-card button[type=submit]:disabled{opacity:.55}.lpt-auth-card #lptAuthMessage{min-height:22px;text-align:center;color:#ff9d9d;font-size:14px}.lpt-auth-locked body>*:not(#lptAuthGate){visibility:hidden!important}#lptLogoutBtn{min-height:38px!important;padding:0 12px!important;border-radius:10px!important}

/* --- ui-fixes-16.9.7.88.css --- */
/* 16.9.7.88 — Tableau compact réellement adapté aux écrans iPhone. */
@media (max-width: 560px){
  #tableDialog #tableWindowArea{
    padding:6px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:22px!important;
    --adaptive-cell-h:28px!important;
    --adaptive-axis-w:48px!important;
    --adaptive-font:9px!important;
    width:max-content!important;
    min-width:max-content!important;
    table-layout:fixed!important;
    border-spacing:0!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:22px!important;
    min-width:22px!important;
    max-width:22px!important;
    box-sizing:border-box!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
    height:28px!important;
    min-height:28px!important;
    padding:0!important;
    border-radius:4px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
    height:27px!important;
    min-height:27px!important;
    padding:1px 0!important;
    font-size:9px!important;
    line-height:1!important;
    letter-spacing:-.35px!important;
    border-radius:4px!important;
    text-align:center!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    height:28px!important;
    min-height:28px!important;
    padding:1px 0!important;
    font-size:8px!important;
    line-height:1!important;
    letter-spacing:-.25px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:48px!important;
    min-width:48px!important;
    max-width:48px!important;
    height:28px!important;
    padding:1px 2px!important;
    font-size:9px!important;
    line-height:1.05!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .axis-unit{
    font-size:6.5px!important;
    line-height:1!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .original-value{
    display:none!important;
  }
}
/* iPhone très étroit : gagner encore quelques pixels sans rendre les valeurs illisibles. */
@media (max-width: 390px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:20px!important;
    --adaptive-axis-w:44px!important;
    --adaptive-font:8.5px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:20px!important;min-width:20px!important;max-width:20px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:44px!important;min-width:44px!important;max-width:44px!important;
  }
}

/* --- ui-fixes-16.9.7.90.css --- */
/* 16.9.7.90 — Tableau iPhone taille intermédiaire, lisible sans cellules surdimensionnées. */
@media (max-width:560px){
  #tableDialog #tableWindowArea{
    padding:8px!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:36px!important;
    --adaptive-cell-h:36px!important;
    --adaptive-axis-w:58px!important;
    --adaptive-font:11px!important;
    width:max-content!important;
    min-width:max-content!important;
    table-layout:fixed!important;
    border-spacing:1px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:36px!important;
    min-width:36px!important;
    max-width:36px!important;
    box-sizing:border-box!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
    height:36px!important;
    min-height:36px!important;
    padding:0!important;
    border-radius:6px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
    height:35px!important;
    min-height:35px!important;
    padding:2px 1px!important;
    font-size:11px!important;
    line-height:1!important;
    letter-spacing:-.15px!important;
    border-radius:6px!important;
    text-align:center!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    height:36px!important;
    min-height:36px!important;
    padding:2px 1px!important;
    font-size:10px!important;
    line-height:1!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:58px!important;
    min-width:58px!important;
    max-width:58px!important;
    height:36px!important;
    padding:2px 3px!important;
    font-size:10.5px!important;
    line-height:1.05!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .axis-unit{
    font-size:7px!important;
    line-height:1!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .original-value{display:none!important}
}
@media (max-width:390px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:34px!important;
    --adaptive-cell-h:35px!important;
    --adaptive-axis-w:54px!important;
    --adaptive-font:10.5px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:34px!important;min-width:34px!important;max-width:34px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
    height:35px!important;min-height:35px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:54px!important;min-width:54px!important;max-width:54px!important;height:35px!important;
  }
}

/* --- ui-fixes-16.9.7.93.css --- */
/* 16.9.7.93 — navigation principale déplacée sur l’accueil */
.main-nav{display:none!important}
#lptV17Shell .v17-tabs{display:none!important}
#lptV17Shell .v17-home-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
#lptV17Shell .v17-home-tools button{min-width:0;min-height:72px;padding:9px 5px;border:1px solid rgba(42,151,238,.34);border-radius:13px;background:linear-gradient(145deg,#0c1b2d,#07111f);color:#fff;text-align:center;box-shadow:inset 0 0 20px rgba(0,93,190,.04)}
#lptV17Shell .v17-home-tools button:active{background:linear-gradient(180deg,rgba(0,111,255,.35),rgba(0,68,169,.13));border-color:#168cff;transform:scale(.98)}
#lptV17Shell .v17-home-tools i{display:block;margin-bottom:3px;color:#58baff;font-size:20px;font-style:normal;line-height:1}
#lptV17Shell .v17-home-tools strong{display:block;font-size:11px;line-height:1.15}
#lptV17Shell .v17-home-tools small{display:block;margin-top:4px;color:#9fb2c5;font-size:6.5px;line-height:1.2}
@media(max-width:390px){#lptV17Shell .v17-home-tools{gap:6px}#lptV17Shell .v17-home-tools button{min-height:66px;padding:7px 3px}#lptV17Shell .v17-home-tools i{font-size:18px}#lptV17Shell .v17-home-tools strong{font-size:10px}}

/* --- ui-fixes-16.9.7.94.css --- */
/* 16.9.7.94 — vrais menus directement intégrés à l'accueil. */
@media(max-width:760px){
  #lptV17Shell .v17-home-tools{display:none!important}

  #lptV17Shell .v17-home-menu-link,
  #lptV17Shell .v17-home-menu{
    -webkit-tap-highlight-color:transparent;
    cursor:pointer;
    touch-action:manipulation;
  }

  #lptV17Shell .v17-card{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:block!important;
    position:relative!important;
    color:#fff!important;
  }
  #lptV17Shell .v17-card-title{
    display:flex;
    align-items:center;
    gap:8px;
  }
  #lptV17Shell .v17-card-title>span{font-size:17px;line-height:1}
  #lptV17Shell .v17-card-title>strong{flex:1;font-size:14px!important}
  #lptV17Shell .v17-card-title>b{color:#bcd6eb;font-size:23px;font-weight:400;line-height:1}
  #lptV17Shell .v17-card:active,
  #lptV17Shell .v17-home-menu:active,
  #lptV17Shell .v17-display:active{border-color:#168cff!important;background:linear-gradient(180deg,rgba(0,111,255,.25),rgba(0,68,169,.12))!important}

  #lptV17Shell .v17-home-menu-list{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
    margin-top:7px;
  }
  #lptV17Shell .v17-home-menu-list-bottom{margin-top:7px}

  #lptV17Shell .v17-home-menu{
    min-height:70px;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(112px,34%);
    align-items:center;
    gap:10px;
    padding:10px 12px;
    box-sizing:border-box;
    border:1px solid rgba(35,145,231,.38);
    border-radius:13px;
    overflow:hidden;
    background:radial-gradient(circle at 82% 50%,rgba(0,108,255,.11),transparent 42%),linear-gradient(145deg,#0b1a2c,#07101d);
    box-shadow:inset 0 0 22px rgba(0,91,190,.04);
  }
  #lptV17Shell .v17-home-menu-main{
    display:flex;
    min-width:0;
    align-items:center;
    gap:10px;
  }
  #lptV17Shell .v17-home-menu-icon{
    flex:0 0 34px;
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    border:1px solid rgba(39,157,248,.32);
    border-radius:10px;
    background:rgba(0,105,220,.10);
    color:#55bdff;
    font-size:20px;
    line-height:1;
  }
  #lptV17Shell .v17-home-menu h3{
    margin:0;
    color:#49b8ff;
    font-size:14px;
    line-height:1.15;
  }
  #lptV17Shell .v17-home-menu p{
    margin:4px 0 0;
    color:#aebdcd;
    font-size:7.4px;
    line-height:1.3;
  }
  #lptV17Shell .v17-home-menu-meta{
    min-width:0;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    text-align:right;
  }
  #lptV17Shell .v17-home-menu-meta strong{
    grid-column:1;
    overflow:hidden;
    color:#eef7ff;
    font-size:9.5px;
    line-height:1.15;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #lptV17Shell .v17-home-menu-meta small{
    grid-column:1;
    margin-top:4px;
    overflow:hidden;
    color:#7f98af;
    font-size:6.4px;
    line-height:1.2;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
  #lptV17Shell .v17-home-menu-meta>b{
    grid-column:2;
    grid-row:1/3;
    margin-left:8px;
    color:#bcd6eb;
    font-size:27px;
    font-weight:300;
    line-height:1;
  }

  #lptV17Shell .v17-maps{
    margin-top:7px!important;
  }
  #lptV17Shell .v17-display{
    appearance:none!important;
    -webkit-appearance:none!important;
    display:block!important;
    position:relative!important;
    box-sizing:border-box!important;
    cursor:pointer;
  }
  #lptV17Shell .v17-display-arrow{
    position:absolute;
    right:13px;
    top:50%;
    transform:translateY(-50%);
    color:#bcd6eb;
    font-size:27px;
    font-weight:300;
    line-height:1;
  }
  #lptV17Shell .v17-display strong,
  #lptV17Shell .v17-display small{padding-right:28px}
}

@media(max-width:390px){
  #lptV17Shell .v17-home-menu{
    min-height:65px;
    grid-template-columns:minmax(0,1fr) minmax(96px,32%);
    gap:7px;
    padding:8px 10px;
  }
  #lptV17Shell .v17-home-menu-icon{flex-basis:30px;width:30px;height:30px;font-size:18px}
  #lptV17Shell .v17-home-menu-main{gap:8px}
  #lptV17Shell .v17-home-menu h3{font-size:12.5px}
  #lptV17Shell .v17-home-menu p{font-size:6.6px}
  #lptV17Shell .v17-home-menu-meta strong{font-size:8.5px}
  #lptV17Shell .v17-home-menu-meta small{font-size:5.8px}
}

/* --- ui-graphical-16.9.7.97.css --- */
/* La Performance Tuner 16.9.7.97 — barre inférieure conforme à la maquette iPhone. */
:root{--lpt-bg:#020711;--lpt-card:#071524;--lpt-card2:#0b1d31;--lpt-line:rgba(40,151,244,.46);--lpt-blue:#2aaeff;--lpt-text:#f3f8ff;--lpt-muted:#9eafc2}
.lpt-g-icon{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 auto;line-height:0;color:#dbeaff}.lpt-g-icon svg{display:block;width:100%;height:100%;overflow:visible}
@media(max-width:760px){
 html,body{background:var(--lpt-bg)!important}
 #lptV17Shell.lpt-graphical-home{background:radial-gradient(circle at 50% -5%,rgba(0,98,235,.18),transparent 31%),linear-gradient(180deg,#03101e,#020711 44%)!important;padding:calc(5px + env(safe-area-inset-top)) 13px calc(88px + env(safe-area-inset-bottom))!important}
 #lptV17Shell.lpt-graphical-home:before{inset:5px!important;border-radius:28px!important;border-color:rgba(32,143,255,.32)!important}
 #lptV17Shell .v17-hero{height:126px!important;min-height:126px!important;margin:0!important;background:radial-gradient(ellipse at 50% 50%,rgba(0,108,255,.2),transparent 68%)!important}
 #lptV17Shell .v17-hero>img{max-width:66%!important;max-height:116px!important;width:auto!important;height:auto!important;object-fit:contain!important;filter:drop-shadow(0 0 18px rgba(0,119,255,.44))!important}
 #lptV17Shell .v17-floating-close{top:calc(14px + env(safe-area-inset-top))!important;right:6px!important;width:45px!important;height:45px!important;border-radius:15px!important;font-size:23px!important}
 #lptV17Shell .v17-ecu{height:124px!important;margin-top:2px!important;padding:17px 50% 13px 15px!important;border-radius:16px!important;border-color:rgba(32,149,255,.68)!important;background:radial-gradient(circle at 77% 50%,rgba(0,116,255,.28),transparent 42%),linear-gradient(135deg,#0a1a30,#06101d)!important}
 #lptV17Shell .v17-ecu small{font-size:8px!important;letter-spacing:1px!important}#lptV17Shell .v17-ecu strong{font-size:22px!important;margin-top:5px!important}#lptV17Shell .v17-ecu span{font-size:8.5px!important;line-height:1.35!important}
 #lptV17Shell .v17-ecu .v17-ecu-image{width:51%!important;height:118px!important;right:1px!important;bottom:0!important}#lptV17Shell .v17-online{bottom:7px!important;left:15px!important;font-size:7px!important;padding:3px 8px!important}
 #lptV17Shell .v17-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:7px!important;margin-top:8px!important}#lptV17Shell .v17-actions button{height:58px!important;padding:7px 2px!important;border-radius:13px!important;font-size:0!important;display:grid!important;place-items:center!important;align-content:center!important;background:linear-gradient(145deg,rgba(15,35,57,.95),rgba(5,15,27,.98))!important}#lptV17Shell .v17-actions .lpt-g-icon{width:22px;height:22px;color:#d9e8f8}#lptV17Shell .v17-actions button b{display:block!important;margin-top:4px!important;font-size:7.5px!important;color:#d4deea!important}
 #lptV17Shell .v17-shortcuts{gap:7px!important;margin-top:7px!important}#lptV17Shell .v17-shortcuts button{height:42px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;border-radius:12px!important;font-size:9.5px!important}#lptV17Shell .v17-shortcuts .lpt-g-icon{width:20px;height:20px}
 #lptV17Shell .v17-pair{gap:8px!important;margin-top:8px!important}#lptV17Shell .v17-card{height:96px!important;min-height:96px!important;padding:13px!important;border-radius:15px!important;background:radial-gradient(circle at 18% 35%,rgba(0,116,255,.13),transparent 40%),linear-gradient(145deg,#0b1c30,#06111f)!important}#lptV17Shell .v17-card-title{align-items:center!important;gap:10px!important}#lptV17Shell .v17-card-title>span{width:44px!important;height:44px!important;font-size:0!important}#lptV17Shell .v17-card-title .lpt-g-icon{width:44px;height:44px}#lptV17Shell .v17-card-title>strong{font-size:16px!important;color:#fff!important}#lptV17Shell .v17-card p{margin:5px 0 0 54px!important;font-size:8px!important;line-height:1.3!important;color:#a9b9ca!important;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 #lptV17Shell .v17-home-menu-list{gap:8px!important;margin-top:8px!important}#lptV17Shell .v17-home-menu{min-height:78px!important;padding:11px 13px!important;border-radius:15px!important;background:radial-gradient(circle at 9% 50%,rgba(0,121,255,.12),transparent 33%),linear-gradient(145deg,#0a1a2e,#06111e)!important}#lptV17Shell .v17-home-menu-main{gap:12px!important}#lptV17Shell .v17-home-menu-icon{width:46px!important;height:46px!important;flex-basis:46px!important;border:0!important;background:transparent!important;font-size:0!important}#lptV17Shell .v17-home-menu-icon .lpt-g-icon{width:46px;height:46px}#lptV17Shell .v17-home-menu h3{font-size:15px!important;color:#fff!important}#lptV17Shell .v17-home-menu p{font-size:7.5px!important;line-height:1.35!important;margin-top:5px!important}#lptV17Shell .v17-home-menu-meta strong{font-size:10px!important}#lptV17Shell .v17-home-menu-meta small{font-size:6.5px!important}
 #lptV17Shell .v17-maps{height:142px!important;margin-top:8px!important;padding:14px 15px!important;border-radius:16px!important;background:radial-gradient(ellipse at 54% 58%,rgba(0,115,255,.17),transparent 44%),linear-gradient(145deg,#0a1c31,#06111e)!important}#lptV17Shell .v17-maps h3{display:flex!important;align-items:center!important;gap:8px!important;font-size:17px!important;color:#fff!important}#lptV17Shell .v17-maps h3 .lpt-g-icon{width:27px;height:27px}#lptV17Shell .v17-count{left:16px!important;bottom:18px!important;font-size:39px!important}#lptV17Shell .v17-count small{font-size:8px!important;margin-top:9px!important}#lptV17Shell .v17-map-thumb{left:31%!important;right:82px!important;top:30px!important;bottom:8px!important;width:auto!important;height:auto!important;display:grid!important;place-items:center!important}#lptV17Shell .v17-map-thumb canvas{width:100%!important;height:76px!important;max-width:170px!important}#lptV17Shell .v17-map-thumb small{font-size:7px!important;bottom:0!important}#lptV17Shell .v17-donut{right:15px!important;top:43px!important;width:61px!important;height:61px!important}#lptV17Shell .v17-donut:before{width:45px!important;height:45px!important}#lptV17Shell .v17-donut b{font-size:16px!important}
 #lptV17Shell .v17-display{height:62px!important;margin-top:8px!important;padding:11px 14px!important;border-radius:14px!important}#lptV17Shell .v17-display strong{font-size:14px!important}#lptV17Shell .v17-display small{font-size:7.3px!important}
 #lptV17Shell .v17-dock{height:68px!important;left:12px!important;right:12px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;border-radius:22px!important;padding:4px!important;background:rgba(4,14,25,.97)!important}#lptV17Shell .v17-dock button{height:58px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:2px!important;color:#9aaabd!important;font-size:0!important}#lptV17Shell .v17-dock button .lpt-g-icon{width:22px;height:22px;color:#9aaabd;filter:grayscale(1) saturate(0)}#lptV17Shell .v17-dock button span{font-size:7px!important}#lptV17Shell .v17-dock .home{width:auto!important;height:56px!important;margin:0!important;border:1px solid rgba(67,164,255,.65)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(24,117,219,.25),rgba(5,40,86,.18))!important;box-shadow:inset 0 0 16px rgba(0,116,255,.13)!important}#lptV17Shell .v17-dock .home .lpt-g-icon{color:#eaf6ff!important;filter:none!important}

 body.lpt-graphic-workspace #editorApp{display:block!important;min-height:100dvh!important;background:radial-gradient(circle at 50% -8%,rgba(0,99,235,.18),transparent 29%),#020711!important;color:var(--lpt-text)!important}
 body.lpt-graphic-workspace #editorApp>.app-header,body.lpt-graphic-workspace #editorApp>.main-nav,body.lpt-graphic-workspace #editorApp>.secondary-actions,body.lpt-graphic-workspace #editorApp>footer,body.lpt-graphic-workspace #lptV17Shell{display:none!important}
 body.lpt-graphic-workspace #editorApp>main{display:block!important;width:100%!important;max-width:760px!important;margin:0 auto!important;padding:calc(7px + env(safe-area-inset-top)) 12px calc(94px + env(safe-area-inset-bottom))!important;box-sizing:border-box!important;min-height:100dvh!important}
 body.lpt-graphic-workspace #editorApp>main>:not(#lptGraphicTopbar){display:none!important}
 body.lpt-graphic-workspace[data-lpt-screen="project"] #editorApp>main>#projectPanel,body.lpt-graphic-workspace[data-lpt-screen="mappack"] #editorApp>main>#mappackPanel,body.lpt-graphic-workspace[data-lpt-screen="hex"] #editorApp>main>#hexPanel,body.lpt-graphic-workspace[data-lpt-screen="dyno"] #editorApp>main>#powerAccordion,body.lpt-graphic-workspace[data-lpt-screen="mapview"] #editorApp>main>.workspace.editor-only{display:block!important}
 #lptGraphicTopbar{height:83px;display:grid;grid-template-columns:44px minmax(0,1fr) 105px;align-items:center;gap:8px;margin:0 0 10px;padding:8px 9px;border:1px solid rgba(38,148,242,.38);border-radius:17px;background:linear-gradient(145deg,rgba(10,28,48,.96),rgba(4,13,24,.98));box-shadow:inset 0 0 24px rgba(0,102,210,.08);box-sizing:border-box}#lptGraphicTopbar .lpt-g-back{width:40px;height:40px;padding:8px;border:1px solid rgba(59,159,239,.34);border-radius:12px;background:rgba(7,24,42,.9);color:#d8e9f9}#lptGraphicTopbar .lpt-g-back svg{width:100%;height:100%}#lptGraphicTopbar .lpt-g-screen-copy{display:flex;align-items:center;gap:9px;min-width:0}.lpt-g-screen-copy>#lptGraphicScreenIcon .lpt-g-icon{width:38px;height:38px}.lpt-g-screen-copy h1{margin:0;color:#f4f9ff;font-size:17px;line-height:1.05}.lpt-g-screen-copy p{margin:5px 0 0;color:#9eb0c2;font-size:7.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#lptGraphicTopbar>img{width:101px;height:60px;object-fit:contain;justify-self:end;filter:drop-shadow(0 0 10px rgba(0,109,255,.35))}
 body.lpt-graphic-workspace details.panel,body.lpt-graphic-workspace .panel{width:100%!important;margin:0!important;border:1px solid rgba(38,148,242,.46)!important;border-radius:17px!important;background:linear-gradient(145deg,#0a1b2f,#06101d)!important;box-shadow:inset 0 0 25px rgba(0,104,220,.06)!important;overflow:hidden!important}body.lpt-graphic-workspace details.panel>summary{min-height:76px!important;padding:13px 15px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;background:radial-gradient(circle at 10% 50%,rgba(0,116,255,.12),transparent 35%)!important;border:0!important}body.lpt-graphic-workspace details.panel>summary>span{display:flex!important;align-items:center!important;gap:10px!important;color:#fff!important;font-size:17px!important}body.lpt-graphic-workspace details.panel>summary>span .lpt-g-icon{width:42px;height:42px}body.lpt-graphic-workspace details.panel>summary>small{max-width:45%;text-align:right;color:#8fa3b8!important;font-size:8px!important;line-height:1.3!important}
 body.lpt-graphic-workspace .project-content,body.lpt-graphic-workspace .mappack-accordion-content,body.lpt-graphic-workspace .hex-inline-content,body.lpt-graphic-workspace .power-accordion-content{display:block!important;padding:10px!important;border-top:1px solid rgba(45,137,214,.22)!important}
 body.lpt-graphic-workspace .project-file-card{min-height:92px;padding:16px 17px 16px 78px!important;position:relative;border:1px solid rgba(44,149,234,.38)!important;border-radius:15px!important;background:radial-gradient(circle at 10% 50%,rgba(0,122,255,.2),transparent 28%),linear-gradient(145deg,#0b1e34,#071321)!important;box-sizing:border-box}body.lpt-graphic-workspace .project-file-card:before{content:"";position:absolute;left:18px;top:20px;width:48px;height:48px;background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M7 19h19l5 6h26v27a6 6 0 0 1-6 6H10a6 6 0 0 1-6-6V25a6 6 0 0 1 3-6Z' fill='%231588ff'/%3E%3Cpath d='M8 17h18l5 6h25a4 4 0 0 1 4 4v4H5V21a4 4 0 0 1 3-4Z' fill='%2390e4ff'/%3E%3C/svg%3E")}.project-file-card span{color:#7ea4c6!important;font-size:9px!important}.project-file-card strong{font-size:15px!important;color:#fff!important;margin-top:6px!important}
 body.lpt-graphic-workspace .project-detail-row{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;margin-top:9px!important}.project-detail-row>div{min-height:74px;padding:12px!important;border:1px solid rgba(37,136,216,.28)!important;border-radius:13px!important;background:linear-gradient(145deg,rgba(10,28,48,.95),rgba(5,15,27,.96))!important;box-sizing:border-box}.project-detail-row span{color:#7f98b1!important;font-size:8px!important}.project-detail-row strong{display:block;margin-top:7px;color:#f4f9ff!important;font-size:12px!important}.project-detail-row .project-ecu-wide{grid-column:1/-1!important}
 body.lpt-graphic-workspace .mappack-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.mappack-actions button{min-height:91px!important;padding:12px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:5px!important;border:1px solid rgba(42,146,229,.34)!important;border-radius:14px!important;background:linear-gradient(145deg,#0c1f34,#07121f)!important;color:#eef7ff!important;text-align:left!important}.mappack-actions button .lpt-g-icon{width:37px;height:37px}.mappack-actions button span{font-size:9px!important;line-height:1.2!important}body.lpt-graphic-workspace #mappackList{display:grid!important;gap:8px!important;margin:10px 0 0!important;padding:0!important;list-style:none!important}#mappackList li{padding:14px!important;border:1px solid rgba(43,143,222,.3)!important;border-radius:13px!important;background:linear-gradient(145deg,#0a1a2c,#06101c)!important;color:#b8c8d8!important}
 body.lpt-graphic-workspace #hexArea{min-height:65vh!important;border:1px solid rgba(31,139,225,.32)!important;border-radius:14px!important;background:#030a12!important;overflow:auto!important}.hex-toolbar,.hex-inline-toolbar{position:sticky!important;top:0!important;z-index:4!important;background:rgba(5,16,29,.96)!important;backdrop-filter:blur(12px)!important}
 body.lpt-graphic-workspace #powerAccordion .power-precision-bar,body.lpt-graphic-workspace #powerAccordion .calc-grid,body.lpt-graphic-workspace #powerAccordion .result-cards{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}#powerAccordion label,#powerAccordion .result-card{padding:10px!important;border:1px solid rgba(38,138,219,.28)!important;border-radius:12px!important;background:linear-gradient(145deg,#0b1c30,#06101d)!important;color:#9fb1c3!important;font-size:8px!important}#powerAccordion input,#powerAccordion select{margin-top:6px!important;background:#040d17!important;border-color:rgba(48,146,224,.34)!important;color:#fff!important}.simple-actions button{min-height:44px!important;border-radius:12px!important}.calc-canvas{margin-top:10px!important;border:1px solid rgba(40,145,230,.34)!important;border-radius:14px!important;background:linear-gradient(180deg,#071527,#020914)!important}
 .inline-map-category,.map-category-folder{border:1px solid rgba(39,138,219,.24)!important;border-radius:14px!important;background:rgba(5,16,29,.72)!important;overflow:hidden!important}.inline-map-category>summary,.map-category-folder>summary{padding:12px 14px!important;color:#f1f7ff!important;background:linear-gradient(145deg,#0a1a2e,#06111e)!important}.inline-map-items,.map-folder-items{display:grid!important;gap:8px!important;padding:8px!important}.inline-map-item,.map-item,.lpt-graphical-map-item{position:relative!important;min-height:102px!important;height:auto!important;padding:13px 120px 13px 51px!important;border:1px solid rgba(39,143,226,.38)!important;border-radius:14px!important;background:radial-gradient(circle at 78% 50%,rgba(0,115,255,.12),transparent 35%),linear-gradient(145deg,#0b1c30,#06101e)!important;text-align:left!important;overflow:hidden!important;box-sizing:border-box!important}.lpt-map-card-icon{position:absolute;left:13px;top:15px;width:28px;height:28px}.lpt-map-card-icon svg{width:100%;height:100%}.inline-map-item strong,.map-item strong{display:block!important;margin:0 0 7px!important;color:#eff7ff!important;font-size:12px!important;line-height:1.25!important;white-space:normal!important;overflow:visible!important}.inline-map-item small,.map-item small{display:block!important;color:#83a0ba!important;font-size:8px!important;line-height:1.4!important;white-space:normal!important}.inline-map-item .lpt-map-miniature,.map-item .lpt-map-miniature{position:absolute!important;right:7px!important;top:13px!important;width:108px!important;height:76px!important;object-fit:contain!important;filter:drop-shadow(0 0 10px var(--thumb-glow,#168cff))!important}.inline-map-item.active-map,.map-item.active-map{border-color:#38aaff!important;box-shadow:0 0 18px rgba(0,126,255,.22)!important}
 dialog.tool-window.lpt-graphical-window[open],dialog.tool-window[open],dialog#mapDialog[open],dialog.tool-dialog[open]{inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#020711!important;color:#fff!important;overflow:hidden!important}dialog::backdrop{background:rgba(0,0,0,.78)!important;backdrop-filter:blur(7px)!important}dialog .window-shell,dialog .dialog-shell,dialog#mapDialog>form{width:100%!important;height:100%!important;max-width:760px!important;margin:0 auto!important;padding:calc(6px + env(safe-area-inset-top)) 12px calc(84px + env(safe-area-inset-bottom))!important;border:0!important;border-radius:0!important;background:radial-gradient(circle at 50% -8%,rgba(0,96,230,.17),transparent 30%),#020711!important;box-sizing:border-box!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important}
 dialog .window-titlebar,dialog .dialog-head,dialog .dialog-shell>header{position:relative!important;min-height:78px!important;padding:10px 110px 10px 53px!important;margin-bottom:9px!important;border:1px solid rgba(40,148,236,.4)!important;border-radius:16px!important;background:linear-gradient(145deg,#0b1d31,#06101d)!important;display:flex!important;align-items:center!important;box-sizing:border-box!important}.window-titlebar h2,.dialog-head h2,.dialog-shell>header h2{font-size:17px!important;color:#fff!important}.window-titlebar small,.dialog-shell>header p{font-size:7.5px!important;color:#91a5ba!important}.window-close,.dialog-head .icon-btn,.dialog-shell>header button{position:absolute!important;left:8px!important;top:50%!important;right:auto!important;transform:translateY(-50%)!important;width:38px!important;height:38px!important;border:1px solid rgba(48,146,224,.34)!important;border-radius:11px!important;background:#071522!important;color:#d4e6f6!important}.lpt-dialog-logo{position:absolute!important;right:8px!important;top:50%!important;transform:translateY(-50%)!important;width:96px!important;height:62px!important;object-fit:contain!important;filter:drop-shadow(0 0 9px rgba(0,108,255,.34))!important}
 dialog .window-content{padding:0!important;overflow:visible!important}.panel-head,.inline-map-toolbar,.compare-toolbar,.damos-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-bottom:9px!important;padding:10px!important;border:1px solid rgba(37,137,218,.28)!important;border-radius:14px!important;background:linear-gradient(145deg,#0a1a2d,#06101d)!important}.panel-head input,.panel-head select,.inline-map-toolbar input,.inline-map-toolbar select,.compare-toolbar button,.compare-toolbar label,.damos-toolbar input,.damos-toolbar select{min-height:42px!important;border-radius:11px!important;background:#030c16!important;border:1px solid rgba(39,139,220,.32)!important;color:#eef7ff!important}.compare-dashboard,.analysis-grid,#compareResult,#compareMaps,.estimate{border-radius:13px!important;background:linear-gradient(145deg,#0a1a2d,#06101d)!important;border:1px solid rgba(37,137,218,.28)!important;color:#c3d0de!important}.compare-filters{display:flex!important;gap:8px!important;padding:10px!important;margin:8px 0!important;border:1px solid rgba(37,137,218,.28)!important;border-radius:13px!important;background:#071522!important}.map-view-switcher{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:7px!important;margin-bottom:8px!important}.map-view-switcher button{min-height:44px!important;border-radius:11px!important;background:linear-gradient(145deg,#0b1d31,#06111e)!important;border:1px solid rgba(38,142,224,.34)!important;color:#d9eaff!important}.map-window-content,.large-view-area,.unified-map-area{border-radius:14px!important;background:#030b14!important}.viewer-edit-tools,.map-edit-panel{border:1px solid rgba(38,139,219,.28)!important;border-radius:14px!important;background:#071522!important}.map-tools{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important}.map-tools button{min-height:48px!important;border-radius:10px!important;background:#091a2b!important;border:1px solid rgba(40,143,222,.28)!important;color:#dcecff!important}
 #proDrawer.lpt-graphical-pro .pro-drawer-backdrop{background:rgba(0,0,0,.78)!important;backdrop-filter:blur(7px)!important}#proDrawer.lpt-graphical-pro .pro-drawer-panel{inset:0!important;width:100vw!important;max-width:none!important;height:100dvh!important;border-radius:0!important;background:radial-gradient(circle at 50% -8%,rgba(0,96,230,.17),transparent 30%),#020711!important;padding:calc(6px + env(safe-area-inset-top)) 12px calc(84px + env(safe-area-inset-bottom))!important;box-sizing:border-box!important}.pro-drawer-head{position:relative!important;min-height:78px!important;padding:10px 110px 10px 53px!important;border:1px solid rgba(40,148,236,.4)!important;border-radius:16px!important;background:linear-gradient(145deg,#0b1d31,#06101d)!important}.pro-drawer-head>div strong{font-size:17px!important}.pro-drawer-head small{font-size:7.5px!important}.pro-drawer-head #proCloseBtn{position:absolute!important;left:8px!important;top:50%!important;transform:translateY(-50%)!important;width:38px!important;height:38px!important}.pro-tabs{display:flex!important;gap:6px!important;margin:8px 0!important;padding:6px!important;border:1px solid rgba(39,139,220,.28)!important;border-radius:13px!important;background:#071421!important;overflow-x:auto!important}.pro-tabs button{flex:0 0 auto!important;min-height:38px!important;border-radius:9px!important}.pro-drawer-body{padding:0!important}.pro-tab{padding:10px!important;border:1px solid rgba(37,137,218,.28)!important;border-radius:14px!important;background:linear-gradient(145deg,#0a1a2d,#06101d)!important}.pro-quick-actions,.pro-export-grid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}.pro-quick-actions button,.pro-export-grid button,.pro-file-button{min-height:60px!important;border-radius:12px!important;background:#081827!important;border:1px solid rgba(41,143,221,.3)!important;color:#edf7ff!important}.pro-list>*,.pro-form-grid label{border:1px solid rgba(40,140,218,.25)!important;border-radius:11px!important;background:#06121f!important}
 body.lpt-graphic-workspace .lp-mobile-dock{display:grid!important;grid-template-columns:repeat(5,1fr)!important;left:12px!important;right:12px!important;bottom:max(7px,env(safe-area-inset-bottom))!important;height:68px!important;padding:4px!important;border:1px solid rgba(49,151,234,.38)!important;border-radius:22px!important;background:rgba(4,14,25,.97)!important;z-index:2147482000!important}.lp-mobile-dock[data-lpt-graphical="1"] button{height:58px!important;display:grid!important;place-items:center!important;align-content:center!important;gap:2px!important;margin:0!important;padding:0!important;border:0!important;border-radius:12px!important;background:transparent!important;color:#9baabd!important;box-shadow:none!important;font-size:0!important}.lp-mobile-dock[data-lpt-graphical="1"] button .lpt-g-icon{width:22px;height:22px;color:#9baabd;filter:grayscale(1) saturate(0)}.lp-mobile-dock[data-lpt-graphical="1"] button>span:last-child{font-size:7px!important;color:#9baabd!important}.lp-mobile-dock[data-lpt-graphical="1"] .lp-plus{width:auto!important;height:56px!important;margin:0!important;border:1px solid rgba(66,163,255,.62)!important;border-radius:14px!important;background:linear-gradient(180deg,rgba(24,117,219,.24),rgba(5,40,86,.18))!important}.lp-mobile-dock[data-lpt-graphical="1"] .lp-plus .lpt-g-icon{color:#eaf6ff!important;filter:none!important}
}
@media(min-width:761px){.lpt-g-icon{width:38px;height:38px}body.lpt-graphic-workspace #lptGraphicTopbar{display:none}}


/* 16.9.7.97 — Barre inférieure exactement calée sur la maquette validée.
   Icônes monochromes, aucun ancien glyphe, bouton Home rectangulaire discret. */
@media(max-width:760px){
 #lptV17Shell .v17-dock,
 body.lpt-graphic-workspace .lp-mobile-dock[data-lpt-graphical="1"]{
   grid-template-columns:repeat(5,minmax(0,1fr))!important;
   align-items:center!important;
   height:68px!important;
   left:12px!important;
   right:12px!important;
   bottom:max(7px,env(safe-area-inset-bottom))!important;
   padding:4px 5px!important;
   border:1px solid rgba(46,126,190,.42)!important;
   border-radius:21px!important;
   background:rgba(3,13,24,.98)!important;
   box-shadow:0 13px 38px rgba(0,0,0,.72),inset 0 1px rgba(255,255,255,.025)!important;
   overflow:visible!important;
 }
 #lptV17Shell .v17-dock button,
 .lp-mobile-dock[data-lpt-graphical="1"] button,
 .lp-mobile-dock[data-lpt-graphical="1"] .lp-plus{
   width:100%!important;
   min-width:0!important;
   height:57px!important;
   margin:0!important;
   padding:4px 1px 3px!important;
   transform:none!important;
   display:grid!important;
   grid-template-rows:25px 12px!important;
   place-items:center!important;
   align-content:center!important;
   gap:2px!important;
   border:1px solid transparent!important;
   border-radius:13px!important;
   background:transparent!important;
   color:#aab6c4!important;
   box-shadow:none!important;
   font-size:0!important;
   line-height:1!important;
 }
 #lptV17Shell .v17-dock button .lpt-dock-icon,
 .lp-mobile-dock[data-lpt-graphical="1"] button .lpt-dock-icon{
   width:23px!important;
   height:23px!important;
   margin:0!important;
   color:#aab6c4!important;
   filter:none!important;
   opacity:.96!important;
 }
 #lptV17Shell .v17-dock button .lpt-dock-icon svg,
 .lp-mobile-dock[data-lpt-graphical="1"] button .lpt-dock-icon svg{
   width:100%!important;
   height:100%!important;
   display:block!important;
 }
 #lptV17Shell .v17-dock button>span:last-child,
 .lp-mobile-dock[data-lpt-graphical="1"] button>span:last-child{
   display:block!important;
   width:auto!important;
   height:auto!important;
   overflow:visible!important;
   color:#aab6c4!important;
   font-size:7.2px!important;
   font-weight:500!important;
   line-height:1!important;
   letter-spacing:0!important;
   white-space:nowrap!important;
 }
 /* Neutralise les pseudo-icônes historiques qui ajoutaient ▰, ⌁, ⌂, ◉ ou ▤ devant les libellés. */
 .lp-mobile-dock[data-lpt-graphical="1"] button span:before,
 .lp-mobile-dock[data-lpt-graphical="1"] button span::before{
   content:none!important;
   display:none!important;
 }
 #lptV17Shell .v17-dock button.home,
 #lptV17Shell .v17-dock button.active,
 .lp-mobile-dock[data-lpt-graphical="1"] button.active,
 .lp-mobile-dock[data-lpt-graphical="1"] .lp-plus.active{
   border-color:rgba(35,142,242,.88)!important;
   border-radius:13px!important;
   background:linear-gradient(180deg,rgba(17,65,112,.56),rgba(6,29,54,.66))!important;
   color:#eef8ff!important;
   box-shadow:inset 0 0 18px rgba(0,112,255,.10)!important;
 }
 #lptV17Shell .v17-dock button.home .lpt-dock-icon,
 #lptV17Shell .v17-dock button.active .lpt-dock-icon,
 .lp-mobile-dock[data-lpt-graphical="1"] button.active .lpt-dock-icon{
   color:#edf8ff!important;
 }
 #lptV17Shell .v17-dock button.home>span:last-child,
 #lptV17Shell .v17-dock button.active>span:last-child,
 .lp-mobile-dock[data-lpt-graphical="1"] button.active>span:last-child{
   color:#dceeff!important;
 }
}

/* --- ui-fixes-16.9.7.98.css --- */
/* La Performance Tuner 16.9.7.98 — positionnement stable des miniatures 3D dans la liste des maps. */
@media(max-width:760px){
  .inline-map-item,
  .map-item,
  .lpt-graphical-map-item{
    position:relative!important;
    min-height:112px!important;
    padding:14px 166px 14px 52px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  .inline-map-item>.lpt-map-miniature,
  .map-item>.lpt-map-miniature,
  .lpt-graphical-map-item>.lpt-map-miniature{
    position:absolute!important;
    top:50%!important;
    right:14px!important;
    left:auto!important;
    bottom:auto!important;
    width:138px!important;
    height:86px!important;
    max-width:138px!important;
    max-height:86px!important;
    margin:0!important;
    padding:0!important;
    transform:translateY(-50%)!important;
    transform-origin:center center!important;
    display:block!important;
    object-fit:contain!important;
    object-position:center center!important;
    overflow:hidden!important;
    pointer-events:none!important;
    z-index:2!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  .inline-map-item strong,
  .map-item strong,
  .lpt-graphical-map-item strong,
  .inline-map-item small,
  .map-item small,
  .lpt-graphical-map-item small{
    position:relative!important;
    z-index:3!important;
  }
}

@media(max-width:390px){
  .inline-map-item,
  .map-item,
  .lpt-graphical-map-item{
    min-height:108px!important;
    padding-right:148px!important;
  }
  .inline-map-item>.lpt-map-miniature,
  .map-item>.lpt-map-miniature,
  .lpt-graphical-map-item>.lpt-map-miniature{
    right:10px!important;
    width:124px!important;
    height:78px!important;
    max-width:124px!important;
    max-height:78px!important;
  }
}

@media(max-width:350px){
  .inline-map-item,
  .map-item,
  .lpt-graphical-map-item{
    padding-right:132px!important;
  }
  .inline-map-item>.lpt-map-miniature,
  .map-item>.lpt-map-miniature,
  .lpt-graphical-map-item>.lpt-map-miniature{
    right:8px!important;
    width:110px!important;
    height:72px!important;
    max-width:110px!important;
    max-height:72px!important;
  }
}

/* --- ui-fixes-16.9.7.99.css --- */
/* La Performance Tuner 16.9.7.99 — actions Modifier/Supprimer fiables par glissement sur iPhone. */
.map-swipe{
  position:relative!important;
  isolation:isolate!important;
  contain:none!important;
  clip-path:none!important;
  overflow:hidden!important;
}
.map-swipe-actions{
  position:absolute!important;
  z-index:1!important;
  inset:0 0 0 auto!important;
  width:144px!important;
  height:100%!important;
  display:grid!important;
  grid-template-columns:72px 72px!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  overflow:hidden!important;
}
.map-swipe-actions button{
  width:72px!important;
  min-width:72px!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:0 3px!important;
  border:0!important;
  border-radius:0!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
}
.map-swipe-actions .map-edit-action{background:#5956d9!important;color:#fff!important}
.map-swipe-actions .map-delete-action{background:#ff3b30!important;color:#fff!important}
.map-swipe-actions button span,
.map-swipe-actions button small{
  position:relative!important;
  z-index:2!important;
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
  color:#fff!important;
}
.map-swipe-content{
  position:relative!important;
  z-index:2!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  touch-action:pan-y!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}
.map-swipe-content.dragging{transition:none!important}

/* --- ui-fixes-16.9.7.100.css --- */
/* La Performance Tuner 16.9.7.100 — swipe maps iPhone définitif.
   Le déplacement utilise LEFT via une variable CSS et n'entre plus en conflit
   avec l'animation v17 qui verrouillait TRANSFORM sur les cartes. */
.map-swipe{
  --lpt-map-actions-width:156px;
  position:relative!important;
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  overflow:hidden!important;
  isolation:isolate!important;
  contain:none!important;
  clip-path:none!important;
  border-radius:14px!important;
  touch-action:pan-y!important;
  background:#071522!important;
}
.map-swipe-actions{
  position:absolute!important;
  z-index:1!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  left:auto!important;
  width:var(--lpt-map-actions-width)!important;
  height:100%!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  overflow:hidden!important;
  border-radius:0 14px 14px 0!important;
  transform:none!important;
}
.map-swipe-actions button{
  position:relative!important;
  z-index:1!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  width:78px!important;
  min-width:78px!important;
  height:100%!important;
  min-height:100%!important;
  margin:0!important;
  padding:8px 2px!important;
  border:0!important;
  border-radius:0!important;
  color:#fff!important;
  font-weight:800!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
}
.map-swipe-actions .map-edit-action{background:#4d55d9!important}
.map-swipe-actions .map-delete-action{background:#ff3b30!important}
.map-swipe-actions button span{display:block!important;font-size:24px!important;line-height:1!important;color:#fff!important}
.map-swipe-actions button small{display:block!important;font-size:10px!important;line-height:1.1!important;color:#fff!important;white-space:nowrap!important}
.map-swipe-content{
  position:relative!important;
  z-index:2!important;
  left:var(--lpt-map-swipe-x,0px)!important;
  width:100%!important;
  max-width:100%!important;
  min-width:100%!important;
  margin:0!important;
  animation:none!important;
  transform:none!important;
  transition:left .22s cubic-bezier(.22,.61,.36,1)!important;
  will-change:left!important;
  touch-action:pan-y!important;
  -webkit-user-select:none!important;
  user-select:none!important;
}
.map-swipe-content.dragging{transition:none!important}
.map-swipe.open .map-swipe-actions,
.map-swipe.swiping .map-swipe-actions{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
.map-swipe.open{box-shadow:0 0 0 1px rgba(62,151,255,.28)!important}
.map-category .map-swipe,
.inline-map-items .map-swipe{border-radius:14px!important}
.map-category .map-swipe+.map-swipe{margin-top:4px!important;border-top:0!important}
@media(max-width:390px){
  .map-swipe{--lpt-map-actions-width:148px}
  .map-swipe-actions button{width:74px!important;min-width:74px!important}
  .map-swipe-actions button small{font-size:9px!important}
}

/* --- ui-fixes-16.9.7.101.css --- */
/* La Performance Tuner 16.9.7.102-SHIELD-FORCED — intégration du nouveau logo bouclier. */
:root{--lpt-brand-logo:url("lpt-shield-v118.webp?v=16.9.7.102-SHIELD-FORCED")}

/* Le fichier PNG reste transparent : aucun carré ou fond artificiel autour du bouclier. */
.home-brand,
.project-home .home-brand,
.brand-zone,
.app-header .brand-zone{
  background:transparent!important;
  box-shadow:none!important;
}
.home-brand img,
.lpt-header-logo,
.app-header .brand-zone .lpt-header-logo,
.v17-hero>img,
.lpt-dialog-logo{
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  transform:none!important;
  mix-blend-mode:normal!important;
  filter:drop-shadow(0 0 18px rgba(0,126,255,.48))!important;
}

/* Accueil des projets. */
.project-home-hero{
  min-height:220px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.home-brand{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.home-brand img{
  width:min(246px,62vw)!important;
  height:min(226px,57vw)!important;
  max-width:100%!important;
}

/* En-tête de l'éditeur classique. */
.app-header .brand-zone{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:visible!important;
}
.app-header .brand-zone .lpt-header-logo{
  width:auto!important;
  height:148px!important;
  max-width:min(225px,48vw)!important;
  max-height:148px!important;
  margin:0 auto!important;
}

/* Accueil mobile V17 : taille proche de l'aperçu validé. */
@media(max-width:760px){
  .v17-hero{
    height:205px!important;
    min-height:205px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
  }
  .v17-hero>img{
    width:auto!important;
    height:auto!important;
    max-width:min(238px,64vw)!important;
    max-height:190px!important;
    margin:0 auto!important;
  }
  .project-home-hero{min-height:205px!important}
  .home-brand img{
    width:min(230px,61vw)!important;
    height:min(212px,56vw)!important;
  }
  .app-header .brand-zone .lpt-header-logo{
    width:auto!important;
    height:138px!important;
    max-width:min(205px,52vw)!important;
    max-height:138px!important;
  }
}
@media(max-width:390px){
  .v17-hero{height:190px!important;min-height:190px!important}
  .v17-hero>img{max-width:218px!important;max-height:176px!important}
  .project-home-hero{min-height:190px!important}
  .home-brand img{width:210px!important;height:194px!important}
}

/* Petits emplacements : dialogues et écran de connexion. */
.lpt-dialog-logo{
  width:82px!important;
  height:68px!important;
  max-width:82px!important;
  max-height:68px!important;
}
.lpt-auth-logo{
  width:92px!important;
  height:92px!important;
  padding:0!important;
  object-fit:contain!important;
  border-radius:22px!important;
  background:#06101d!important;
  box-shadow:0 0 0 3px rgba(33,140,255,.18),0 0 24px rgba(22,132,255,.34)!important;
}

/* --- ui-fixes-16.9.7.102.css --- */
/* La Performance Tuner 16.9.7.102 — bouclier forcé, sans ancien logo carré. */
:root{--lpt-brand-logo:url("lpt-shield-v118.webp?v=16.9.7.102-SHIELD-FORCED")!important}

/* Tous les emplacements de marque utilisent le PNG bouclier transparent. */
.home-brand img,
.app-header .brand-zone .lpt-header-logo,
.lpt-header-logo,
.v17-hero>img,
.lpt-dialog-logo,
.lpt-g-topbar>img,
img[data-lpt-brand="shield"]{
  content:url("lpt-shield-v118.webp?v=16.9.7.102-SHIELD-FORCED")!important;
  object-fit:contain!important;
  object-position:center!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  clip-path:none!important;
  -webkit-clip-path:none!important;
  mask:none!important;
  -webkit-mask:none!important;
  transform:none!important;
  mix-blend-mode:normal!important;
  filter:drop-shadow(0 0 18px rgba(0,126,255,.48))!important;
}

.home-brand,
.project-home .home-brand,
.brand-zone,
.app-header .brand-zone,
.v17-hero{
  background-color:transparent!important;
  box-shadow:none!important;
}

/* Écran d'accueil mobile visible sur la capture envoyée. */
@media(max-width:760px){
  .v17-hero{
    height:218px!important;
    min-height:218px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
    padding:0 56px 0 20px!important;
    box-sizing:border-box!important;
    background:radial-gradient(ellipse at 48% 48%,rgba(0,91,255,.23),transparent 68%)!important;
  }
  .v17-hero>img{
    display:block!important;
    width:230px!important;
    height:205px!important;
    max-width:67vw!important;
    max-height:205px!important;
    margin:0 auto!important;
  }
  .v17-floating-close{
    top:calc(12px + env(safe-area-inset-top))!important;
    right:5px!important;
  }
}
@media(max-width:390px){
  .v17-hero{height:202px!important;min-height:202px!important;padding-right:52px!important}
  .v17-hero>img{width:210px!important;height:190px!important;max-height:190px!important}
}

/* Autres écrans et fenêtres. */
.project-home-hero{min-height:220px!important}
.home-brand img{width:min(246px,62vw)!important;height:min(226px,57vw)!important}
.app-header .brand-zone{overflow:visible!important;display:flex!important;align-items:center!important;justify-content:center!important}
.app-header .brand-zone .lpt-header-logo{width:auto!important;height:148px!important;max-width:min(225px,48vw)!important;max-height:148px!important;margin:auto!important}
.lpt-dialog-logo{width:86px!important;height:76px!important}

/* Le logo de connexion reste dans un emplacement d'icône, mais sans recadrage. */
.lpt-auth-logo{
  content:url("lpt-shield-v118.webp?v=16.9.7.102-SHIELD-FORCED")!important;
  width:104px!important;
  height:96px!important;
  padding:0!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  filter:drop-shadow(0 0 16px rgba(0,126,255,.45))!important;
}

/* --- ui-fixes-16.9.7.103.css --- */
/* La Performance Tuner 16.9.7.103 — vue Tableau iPhone plus lisible. */

/* En-tête de la fenêtre : le bouton fermer et le logo ne recouvrent plus le titre. */
#tableDialog .window-titlebar{
  position:relative!important;
  min-height:96px!important;
  padding:12px 88px 12px 64px!important;
  margin-bottom:8px!important;
  box-sizing:border-box!important;
  align-items:center!important;
}
#tableDialog .window-titlebar>div{
  width:100%!important;
  min-width:0!important;
  padding:0!important;
}
#tableDialog .window-titlebar h2{
  margin:0!important;
  font-size:17px!important;
  line-height:1.16!important;
  white-space:normal!important;
  overflow:hidden!important;
  display:-webkit-box!important;
  -webkit-box-orient:vertical!important;
  -webkit-line-clamp:2!important;
  overflow-wrap:anywhere!important;
}
#tableDialog .window-titlebar small{
  margin-top:4px!important;
  font-size:10px!important;
  line-height:1.2!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#tableDialog .window-close{
  left:10px!important;
  right:auto!important;
  top:50%!important;
  width:46px!important;
  height:46px!important;
  transform:translateY(-50%)!important;
}
#tableDialog .lpt-dialog-logo{
  display:block!important;
  right:8px!important;
  left:auto!important;
  top:50%!important;
  width:74px!important;
  height:58px!important;
  max-width:74px!important;
  max-height:58px!important;
  transform:translateY(-50%)!important;
  object-fit:contain!important;
  pointer-events:none!important;
}

/* La zone de navigation des vues reste compacte et entièrement visible. */
#tableDialog .dialog-view-switcher{
  gap:6px!important;
  padding:6px 10px 8px!important;
}
#tableDialog .dialog-view-switcher button{
  min-width:0!important;
  min-height:48px!important;
  padding:6px 4px!important;
  font-size:13.5px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}

/* La carte devient la zone prioritaire de la fenêtre. */
#tableDialog .map-window-content{
  padding:8px 8px calc(10px + env(safe-area-inset-bottom))!important;
  overflow:hidden!important;
}
#tableDialog #tableWindowArea{
  position:relative!important;
  padding:0!important;
  overflow:hidden!important;
  min-width:0!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  width:100%!important;
  height:100%!important;
  min-height:320px!important;
  max-width:100%!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  overscroll-behavior:contain!important;
  scrollbar-gutter:stable both-edges!important;
  border:1px solid rgba(53,139,210,.48)!important;
  border-radius:12px!important;
  background:#050b12!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 12px 32px rgba(0,0,0,.24)!important;
}

/* Les valeurs ne sont plus compressées pour faire entrer toutes les colonnes.
   Le tableau défile horizontalement, avec des cellules réellement lisibles. */
@media(max-width:560px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:60px!important;
    --adaptive-cell-h:48px!important;
    --adaptive-axis-w:78px!important;
    --adaptive-font:14px!important;
    width:max-content!important;
    min-width:max-content!important;
    margin:0!important;
    table-layout:fixed!important;
    border-collapse:separate!important;
    border-spacing:2px!important;
    background:#050b12!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:60px!important;
    min-width:60px!important;
    max-width:60px!important;
    box-sizing:border-box!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
    height:48px!important;
    min-height:48px!important;
    padding:0!important;
    border:0!important;
    border-radius:8px!important;
    overflow:hidden!important;
    box-shadow:inset 0 0 0 1px rgba(5,15,24,.65),inset 0 1px 0 rgba(255,255,255,.10)!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
    height:48px!important;
    min-height:48px!important;
    padding:4px 3px!important;
    border:0!important;
    border-radius:8px!important;
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif!important;
    font-size:14px!important;
    font-weight:750!important;
    line-height:1!important;
    letter-spacing:-.15px!important;
    text-align:center!important;
    font-variant-numeric:tabular-nums!important;
    overflow:visible!important;
    text-overflow:clip!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    position:sticky!important;
    top:0!important;
    z-index:8!important;
    height:48px!important;
    min-height:48px!important;
    padding:4px 2px!important;
    border:0!important;
    border-radius:6px!important;
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif!important;
    font-size:13px!important;
    font-weight:800!important;
    line-height:1!important;
    letter-spacing:-.2px!important;
    background:linear-gradient(180deg,#17212c,#0d141b)!important;
    box-shadow:inset 0 0 0 1px rgba(81,108,131,.46),0 2px 5px rgba(0,0,0,.34)!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
    height:48px!important;
    min-height:48px!important;
    padding:4px 5px!important;
    border:0!important;
    border-radius:6px!important;
    font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif!important;
    font-size:13px!important;
    font-weight:800!important;
    line-height:1.05!important;
    letter-spacing:-.15px!important;
    background:linear-gradient(180deg,#171d23,#10151a)!important;
    box-shadow:inset 0 0 0 1px rgba(71,84,96,.5),2px 0 5px rgba(0,0,0,.35)!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head{
    position:sticky!important;
    left:0!important;
    z-index:7!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    position:sticky!important;
    left:0!important;
    top:0!important;
    z-index:12!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .axis-unit{
    display:block!important;
    margin-top:3px!important;
    font-size:8.5px!important;
    line-height:1!important;
    color:#8b98a5!important;
    white-space:nowrap!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .original-value{
    display:none!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td.selected{
    z-index:3!important;
    outline:0!important;
    box-shadow:inset 0 0 0 3px #eef8ff,inset 0 0 0 6px #168cff,0 0 14px rgba(22,140,255,.72)!important;
  }
}

@media(max-width:390px){
  #tableDialog .window-titlebar{padding-left:60px!important;padding-right:82px!important}
  #tableDialog .window-titlebar h2{font-size:16px!important}
  #tableDialog .lpt-dialog-logo{width:68px!important;height:54px!important;max-width:68px!important}
  #tableDialog .dialog-view-switcher button{font-size:12.5px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:56px!important;
    --adaptive-cell-h:46px!important;
    --adaptive-axis-w:72px!important;
    --adaptive-font:13.5px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:56px!important;min-width:56px!important;max-width:56px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner),
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    height:46px!important;min-height:46px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{font-size:13.5px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:72px!important;min-width:72px!important;max-width:72px!important;font-size:12.5px!important;
  }
}

/* Petit repère visuel, retiré dès le premier défilement horizontal. */
#tableDialog #tableWindowArea .table-scroll-hint{
  position:absolute!important;
  right:14px!important;
  bottom:14px!important;
  z-index:30!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  padding:7px 10px!important;
  border:1px solid rgba(54,151,233,.55)!important;
  border-radius:999px!important;
  background:rgba(4,18,31,.88)!important;
  color:#b9ddff!important;
  font-size:10.5px!important;
  font-weight:700!important;
  line-height:1!important;
  box-shadow:0 6px 18px rgba(0,0,0,.38)!important;
  pointer-events:none!important;
  opacity:1!important;
  transition:opacity .2s ease!important;
}
#tableDialog #tableWindowArea .table-scroll-hint.is-hidden{opacity:0!important}

/* --- ui-fixes-16.9.7.104.css --- */
/* La Performance Tuner 16.9.7.104 — fluidité 3D, swipe GPU et Dyno simplifié. */

/* ===== Vue 3D : surface plus légère à afficher sur iPhone ===== */
#view3DDialog #view3DWindowArea,
#mapViewerDialog #mapViewerArea{
  contain:layout paint!important;
  overscroll-behavior:none!important;
}
#view3DDialog canvas,
#mapViewerDialog canvas{
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-touch-callout:none!important;
  touch-action:none!important;
}

/* ===== Swipe Maps : une seule translation GPU, sans recalcul de mise en page ===== */
.map-swipe{
  --lpt-map-actions-width:132px!important;
  border-radius:12px!important;
  background:#07131f!important;
}
.map-swipe-content{
  left:0!important;
  transform:translate3d(var(--lpt-map-swipe-x,0px),0,0)!important;
  transition:transform .14s cubic-bezier(.22,.72,.28,1)!important;
  will-change:transform!important;
  backface-visibility:hidden!important;
  -webkit-backface-visibility:hidden!important;
  contain:layout paint style!important;
}
.map-swipe-content.dragging{
  transition:none!important;
}
.map-swipe-actions{
  width:var(--lpt-map-actions-width)!important;
  grid-template-columns:repeat(2,66px)!important;
  border-radius:0 12px 12px 0!important;
  background:#111b25!important;
}
.map-swipe-actions button{
  width:66px!important;
  min-width:66px!important;
  gap:3px!important;
  padding:5px 1px!important;
  box-shadow:none!important;
  filter:none!important;
}
.map-swipe-actions .map-edit-action{background:#315fc7!important}
.map-swipe-actions .map-delete-action{background:#d93636!important}
.map-swipe-actions button span{font-size:20px!important}
.map-swipe-actions button small{font-size:8.5px!important;font-weight:750!important}
.map-swipe.open{box-shadow:none!important}
@media(max-width:390px){
  .map-swipe{--lpt-map-actions-width:124px!important}
  .map-swipe-actions{grid-template-columns:repeat(2,62px)!important}
  .map-swipe-actions button{width:62px!important;min-width:62px!important}
}

/* ===== Dyno simple : uniquement les commandes réellement utiles ===== */
#powerAccordion>summary{
  min-height:58px!important;
  padding:13px 15px!important;
}
#powerAccordion>summary span{font-size:17px!important}
#powerAccordion>summary small{font-size:9px!important}
#powerAccordion .power-accordion-content{
  padding:12px!important;
}
#powerAccordion .power-precision-bar,
#powerAccordion .advanced-calc,
#powerAccordion #readCurrentMapBtn,
#powerAccordion .curve-editor,
#powerAccordion .curve-legend,
#powerAccordion .calc-warning,
#powerAccordion .simple-calc-grid>label:nth-child(n+4),
#powerAccordion #powerResults .result-card:not(.hero-result),
#powerAccordion #powerResults .result-details{
  display:none!important;
}
#powerAccordion .simple-calc-grid{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
  margin:0 0 9px!important;
}
#powerAccordion .simple-calc-grid label{
  min-width:0!important;
  padding:9px 7px!important;
  border-radius:10px!important;
  font-size:8.5px!important;
  line-height:1.15!important;
  text-align:center!important;
}
#powerAccordion .simple-calc-grid input{
  width:100%!important;
  min-width:0!important;
  height:40px!important;
  margin-top:6px!important;
  padding:5px 3px!important;
  border-radius:8px!important;
  font-size:16px!important;
  font-weight:800!important;
  text-align:center!important;
}
#powerAccordion .three-actions{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin:0!important;
}
#powerAccordion .three-actions button{
  min-height:46px!important;
  padding:8px!important;
  border-radius:10px!important;
  font-size:11px!important;
}
#powerAccordion #autoReadStatus{
  margin:8px 0!important;
  padding:8px 10px!important;
  border-radius:9px!important;
  font-size:8.5px!important;
  line-height:1.25!important;
}
#powerAccordion #powerResults{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:8px!important;
  margin:8px 0!important;
}
#powerAccordion #powerResults .hero-result{
  display:flex!important;
  min-height:86px!important;
  padding:12px 8px!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
#powerAccordion #powerResults .hero-result small{font-size:9px!important}
#powerAccordion #powerResults .hero-result strong{font-size:24px!important;line-height:1!important}
#powerAccordion #powerResults .hero-result em{font-size:8px!important}
#powerAccordion #powerCurveCanvas{
  display:block!important;
  width:100%!important;
  height:190px!important;
  margin-top:8px!important;
  border-radius:10px!important;
}
@media(max-width:390px){
  #powerAccordion .simple-calc-grid{gap:6px!important}
  #powerAccordion .simple-calc-grid label{padding:8px 4px!important;font-size:8px!important}
  #powerAccordion .simple-calc-grid input{font-size:15px!important}
  #powerAccordion #powerResults .hero-result strong{font-size:22px!important}
}

/* --- ui-fixes-16.9.7.105.css --- */
/* La Performance Tuner 16.9.7.105 — tableau iPhone compact et défilement stable. */
#tableDialog #tableWindowArea .map-grid-wrap{
  overflow-x:auto!important;overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  overscroll-behavior:contain!important;
  scroll-behavior:auto!important;
  overflow-anchor:none!important;
  height:100%!important;
  max-height:none!important;
  min-height:320px!important;
}
#tableDialog #tableWindowArea .map-grid-wrap *,
#tableDialog #tableWindowArea .map-grid-wrap input{overflow-anchor:none!important}
@media(max-width:560px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:49px!important;--adaptive-cell-h:40px!important;
    --adaptive-axis-w:50px!important;--adaptive-font:12.5px!important;
    border-spacing:1px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:49px!important;min-width:49px!important;max-width:49px!important;
    height:40px!important;min-height:40px!important;max-height:40px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{border-radius:6px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
    padding:2px 1px!important;border-radius:6px!important;
    font-size:12.5px!important;font-weight:750!important;letter-spacing:-.25px!important;
    touch-action:pan-x pan-y!important;-webkit-user-select:none!important;user-select:none!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    padding:2px 1px!important;font-size:11.5px!important;border-radius:4px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:50px!important;min-width:50px!important;max-width:50px!important;
    height:40px!important;min-height:40px!important;max-height:40px!important;
    padding:2px 2px!important;font-size:11.5px!important;letter-spacing:-.25px!important;border-radius:4px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .axis-unit{font-size:6.8px!important;margin-top:2px!important}
}
@media(max-width:390px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
    --adaptive-cell-w:47px!important;--adaptive-cell-h:39px!important;
    --adaptive-axis-w:47px!important;--adaptive-font:12px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
    width:47px!important;min-width:47px!important;max-width:47px!important;
    height:39px!important;min-height:39px!important;max-height:39px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
    width:47px!important;min-width:47px!important;max-width:47px!important;
    height:39px!important;min-height:39px!important;max-height:39px!important;font-size:11px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{font-size:12px!important}
}

/* --- ui-fixes-16.9.7.106.css --- */
/* La Performance Tuner 16.9.7.106 — tableau plein écran et ajustement automatique. */
#tableDialog{
  width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;
  margin:0!important;border-radius:0!important;
}
#tableDialog .window-shell{height:100dvh!important;min-height:0!important}
#tableDialog .window-titlebar{
  min-height:62px!important;height:62px!important;margin:0!important;
  padding:6px 62px 6px 50px!important;flex:0 0 62px!important;
}
#tableDialog .window-titlebar h2{
  font-size:14px!important;line-height:1.12!important;white-space:nowrap!important;
  display:block!important;text-overflow:ellipsis!important;overflow:hidden!important;
}
#tableDialog .window-titlebar small{display:none!important}
#tableDialog .window-close{
  left:5px!important;top:50%!important;width:40px!important;height:40px!important;
  transform:translateY(-50%)!important;
}
#tableDialog .lpt-dialog-logo{
  right:3px!important;top:50%!important;width:55px!important;height:45px!important;
  max-width:55px!important;max-height:45px!important;transform:translateY(-50%)!important;
}
#tableDialog .dialog-view-switcher{
  flex:0 0 48px!important;min-height:48px!important;gap:3px!important;
  padding:4px 4px!important;position:relative!important;
}
#tableDialog .dialog-view-switcher button{
  min-height:40px!important;height:40px!important;padding:2px!important;
  border-radius:8px!important;font-size:11px!important;line-height:1!important;
}
#tableDialog .map-window-content{
  flex:1 1 auto!important;min-height:0!important;padding:3px 2px max(3px,env(safe-area-inset-bottom))!important;
  overflow:hidden!important;
}
#tableDialog .compact-map-edit{
  margin:0 1px 3px!important;border-radius:7px!important;flex:0 0 auto!important;
}
#tableDialog .compact-map-edit>summary{
  min-height:32px!important;height:32px!important;padding:4px 7px!important;
  font-size:10.5px!important;line-height:1!important;
}
#tableDialog #tableWindowArea{
  display:flex!important;flex:1 1 0!important;min-height:0!important;width:100%!important;
  padding:0!important;overflow:hidden!important;
}
#tableDialog #tableWindowArea .map-grid-wrap{
  flex:1 1 auto!important;width:100%!important;height:100%!important;min-height:0!important;
  max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;
  border-radius:5px!important;border-width:1px!important;scrollbar-width:none!important;
  overflow:auto!important;box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid-wrap::-webkit-scrollbar{display:none!important}
#tableDialog #tableWindowArea .map-grid-wrap.grid-all-visible{overflow:hidden!important}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid{
  width:max-content!important;min-width:0!important;margin:0!important;
  table-layout:fixed!important;border-collapse:separate!important;
  border-spacing:var(--adaptive-gap,1px)!important;background:#050b12!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid.grid-fits-screen{
  margin-left:auto!important;margin-right:auto!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
  width:var(--adaptive-cell-w)!important;min-width:var(--adaptive-cell-w)!important;max-width:var(--adaptive-cell-w)!important;
  height:var(--adaptive-cell-h)!important;min-height:var(--adaptive-cell-h)!important;max-height:var(--adaptive-cell-h)!important;
  box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td{
  padding:0!important;border-radius:clamp(2px,calc(var(--adaptive-cell-w) * .12),6px)!important;overflow:hidden!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid td input{
  padding:1px!important;border-radius:inherit!important;font-size:var(--adaptive-font)!important;
  line-height:1!important;letter-spacing:-.25px!important;font-weight:760!important;
  font-variant-numeric:tabular-nums!important;text-align:center!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid thead .map-axis-head:not(.map-corner){
  padding:1px 0!important;border-radius:3px!important;font-size:var(--adaptive-axis-font)!important;
  line-height:1!important;letter-spacing:-.35px!important;overflow:hidden!important;text-overflow:clip!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid tbody .map-row-head,
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .map-corner{
  width:var(--adaptive-axis-w)!important;min-width:var(--adaptive-axis-w)!important;max-width:var(--adaptive-axis-w)!important;
  height:var(--adaptive-cell-h)!important;min-height:var(--adaptive-cell-h)!important;max-height:var(--adaptive-cell-h)!important;
  padding:1px!important;border-radius:3px!important;font-size:var(--adaptive-axis-font)!important;
  line-height:1!important;letter-spacing:-.3px!important;box-sizing:border-box!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .axis-unit{
  display:block!important;margin-top:1px!important;font-size:max(5.5px,calc(var(--adaptive-axis-font) - 2.5px))!important;
  line-height:.9!important;white-space:nowrap!important;overflow:hidden!important;
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid .original-value{display:none!important}
@media(min-width:700px){
  #tableDialog{width:min(98vw,1500px)!important;height:min(96vh,1000px)!important;margin:auto!important;border-radius:12px!important}
}
#tableDialog #tableWindowArea .map-grid.adaptive-map-grid.grid-fits-screen td.selected{
  box-shadow:inset 0 0 0 1px #eef8ff,inset 0 0 0 2px #168cff!important;
}

/* --- ui-fixes-16.9.7.107.css --- */
/* La Performance Tuner 16.9.7.107 — scroll tableau rétabli + menus sûrs + logos centrés. */

/* Le tableau reste toujours déplaçable, même lorsqu'il tient presque à l'écran. */
#tableDialog #tableWindowArea,
#tableDialog #tableWindowArea .map-grid-wrap,
#tableDialog #tableWindowArea .map-grid-wrap.grid-all-visible{
  overflow-x:auto!important;
  overflow-y:auto!important;
  -webkit-overflow-scrolling:touch!important;
  touch-action:pan-x pan-y!important;
  overscroll-behavior:contain!important;
  scroll-behavior:auto!important;
}
#tableDialog #tableWindowArea .map-grid-wrap.grid-all-visible{overflow:auto!important}
#tableDialog #tableWindowArea .map-grid-wrap input,
#tableDialog #tableWindowArea .map-grid-wrap td,
#tableDialog #tableWindowArea .map-grid-wrap th{
  touch-action:pan-x pan-y!important;
}

/* Centrage fiable du logo sur l'accueil et dans l'en-tête principal. */
.project-home-hero{
  justify-content:center!important;
}
.home-brand{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.home-brand img{
  display:block!important;
  margin-left:auto!important;
  margin-right:auto!important;
  object-position:center center!important;
}
.app-header .brand-zone{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}
.app-header .lpt-header-logo{
  display:block!important;
  margin-left:auto!important;
  margin-right:auto!important;
  object-position:center center!important;
}

/* Suppression du bloc intermédiaire demandé et des actions DAMOS instables. */
#mapDisplayPanel{
  display:none!important;
}

/* --- ui-fixes-16.9.7.112.css --- */
/* La Performance Tuner 16.9.7.112 — DAMOS en panneau léger intégré au Mappack. */
#damosLibraryDialog{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#damosLibraryBtn,#autoDamosBtn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  touch-action:manipulation!important;
  -webkit-tap-highlight-color:transparent!important;
  pointer-events:auto!important;
}
#damosLibraryBtn[aria-busy="true"],#autoDamosBtn[aria-busy="true"]{
  opacity:.7!important;
}
#lptDamosInlinePanel[hidden]{display:none!important}
#lptDamosInlinePanel{
  margin:12px 0 0!important;
  padding:0!important;
  border:1px solid rgba(60,151,225,.48)!important;
  border-radius:14px!important;
  background:#071321!important;
  overflow:hidden!important;
  color:#eef7ff!important;
  contain:layout paint style!important;
}
#lptDamosInlinePanel .lpt-damos-inline-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:10px!important;
  padding:11px 12px 9px!important;
  border-bottom:1px solid rgba(80,145,205,.24)!important;
}
#lptDamosInlinePanel h3{
  margin:0!important;
  font-size:15px!important;
  line-height:1.25!important;
}
#lptDamosInlineSummary{
  margin:3px 0 0!important;
  font-size:11px!important;
  opacity:.78!important;
}
#lptDamosInlineClose{
  flex:0 0 38px!important;
  width:38px!important;
  height:38px!important;
  min-height:38px!important;
  padding:0!important;
  border-radius:10px!important;
}
#lptDamosInlinePanel .lpt-damos-inline-tools{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(120px,.42fr)!important;
  gap:8px!important;
  padding:10px 12px!important;
}
#lptDamosInlineSearch,#lptDamosInlineFamily{
  width:100%!important;
  min-width:0!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 10px!important;
  border:1px solid rgba(70,150,220,.35)!important;
  border-radius:10px!important;
  background:#0a1b2b!important;
  color:#f4f8fc!important;
  font-size:13px!important;
}
#lptDamosInlineResults{
  max-height:min(48dvh,430px)!important;
  overflow:auto!important;
  -webkit-overflow-scrolling:touch!important;
  overscroll-behavior:contain!important;
  touch-action:pan-y!important;
  padding:0 10px 10px!important;
}
#lptDamosInlineResults .lpt-damos-row{
  margin:0 0 8px!important;
  padding:9px 10px!important;
  border:1px solid rgba(70,145,215,.25)!important;
  border-radius:10px!important;
  background:#0a1a29!important;
  contain:content!important;
}
#lptDamosInlineResults .lpt-damos-row-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:8px!important;
}
#lptDamosInlineResults strong{
  display:block!important;
  min-width:0!important;
  font-size:12px!important;
  line-height:1.25!important;
  overflow-wrap:anywhere!important;
}
#lptDamosInlineResults p{
  margin:4px 0 0!important;
  font-size:10px!important;
  line-height:1.35!important;
  opacity:.82!important;
}
#lptDamosInlineResults .lpt-damos-score{
  flex:0 0 auto!important;
  padding:2px 6px!important;
  border-radius:999px!important;
  background:rgba(40,135,220,.18)!important;
  color:#9bd7ff!important;
  font-size:10px!important;
}
#lptDamosInlineResults .empty{
  margin:0!important;
  padding:18px 8px!important;
  text-align:center!important;
  font-size:12px!important;
  opacity:.78!important;
}
#lptDamosInlineMore{
  display:block!important;
  width:calc(100% - 20px)!important;
  margin:0 10px 10px!important;
  min-height:40px!important;
}
@media(max-width:560px){
  #lptDamosInlinePanel .lpt-damos-inline-tools{grid-template-columns:1fr!important}
  #lptDamosInlineResults{max-height:44dvh!important}
}

/* --- ui-fixes-16.9.7.117.css --- */
/* La Performance Tuner 16.9.7.117 — logos des en-têtes Maps et Atelier PRO correctement centrés. */

/*
   Les anciens correctifs globaux forçaient transform:none sur le logo.
   Comme le logo est positionné avec top:50%, il commençait alors au milieu
   de l'en-tête et débordait sur la zone située en dessous.
*/
#mapsDialog .window-titlebar .lpt-dialog-logo,
#proDrawer .pro-drawer-head .lpt-dialog-logo{
  display:block!important;
  position:absolute!important;
  left:auto!important;
  right:10px!important;
  top:50%!important;
  width:82px!important;
  height:62px!important;
  max-width:82px!important;
  max-height:62px!important;
  margin:0!important;
  transform:translateY(-50%)!important;
  object-fit:contain!important;
  object-position:center!important;
  pointer-events:none!important;
  z-index:2!important;
}

/* Le texte garde toujours sa place et ne passe jamais sous le logo. */
#mapsDialog .window-titlebar,
#proDrawer .pro-drawer-head{
  padding-right:104px!important;
}

#mapsDialog .window-titlebar>div,
#proDrawer .pro-drawer-head>div{
  min-width:0!important;
}

@media(max-width:390px){
  #mapsDialog .window-titlebar .lpt-dialog-logo,
  #proDrawer .pro-drawer-head .lpt-dialog-logo{
    right:8px!important;
    width:76px!important;
    height:58px!important;
    max-width:76px!important;
    max-height:58px!important;
  }
  #mapsDialog .window-titlebar,
  #proDrawer .pro-drawer-head{
    padding-right:96px!important;
  }
}

/* ===== Fluidité maximale 16.9.7.118 ===== */
html{scroll-behavior:auto!important;overscroll-behavior-y:contain}
body{text-rendering:optimizeSpeed;-webkit-tap-highlight-color:transparent}
.map-category,.inline-map-category,.damos-card,.home-project-swipe{content-visibility:auto;contain-intrinsic-size:1px 92px}
.map-folder-items,.inline-map-items,.home-project-list,.damos-results,.mappack-list{contain:layout style}
.map-item,.inline-map-item,.map-swipe,.home-project-row,.damos-card{contain:layout paint style}
.hex-visible-rows,.map-grid,.viewer-stage canvas,.power-curve canvas{contain:strict}
.map-swipe-content.dragging,.home-project-row.dragging{will-change:transform}
.lpt-contained{contain:layout style}
body.lpt-is-scrolling .map-item,body.lpt-is-scrolling .inline-map-item,body.lpt-is-scrolling .home-project-row,body.lpt-is-scrolling .damos-card{transition:none!important;animation:none!important;filter:none!important;box-shadow:none!important}
@media(max-width:700px){
 .tool-window,.tool-dialog,.dialog-shell,.lp-mobile-dock{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .map-item,.inline-map-item,.home-project-row{transform:translateZ(0)}
 .boot-sequence{animation-duration:.18s!important}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}


/* La Performance Tuner 16.9.7.120 — actions des maps invisibles avant un vrai swipe horizontal. */
.map-swipe-actions{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate3d(100%,0,0)!important;
  -webkit-transform:translate3d(100%,0,0)!important;
  transition:none!important;
  will-change:auto!important;
}
.map-swipe.open .map-swipe-actions,
.map-swipe.swiping .map-swipe-actions{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transform:translate3d(0,0,0)!important;
  -webkit-transform:translate3d(0,0,0)!important;
}
.map-swipe:not(.open):not(.swiping) .map-swipe-actions button{
  visibility:hidden!important;
}
.map-swipe.open .map-swipe-actions button,
.map-swipe.swiping .map-swipe-actions button{
  visibility:visible!important;
}

/* --- 16.9.7.122 : restauration HEX + alignement logo dialogue map --- */
#mapDialog .dialog-head,
#mapDialog .dialog-shell>header{
  position:relative!important;
  overflow:visible!important;
}
#mapDialog .lpt-dialog-logo{
  position:absolute!important;
  right:10px!important;
  left:auto!important;
  top:50%!important;
  width:82px!important;
  height:66px!important;
  max-width:82px!important;
  max-height:66px!important;
  margin:0!important;
  transform:translateY(-50%)!important;
  object-fit:contain!important;
  object-position:center!important;
  pointer-events:none!important;
}
@media(max-width:430px){
  #mapDialog .dialog-head,
  #mapDialog .dialog-shell>header{
    padding-right:102px!important;
  }
  #mapDialog .lpt-dialog-logo{
    right:8px!important;
    width:76px!important;
    height:60px!important;
    max-width:76px!important;
    max-height:60px!important;
  }
}

/* v16.9.7.124 — Safari iOS: ne jamais appliquer size-containment aux lignes HEX. */
#hexArea .hex-visible-rows,
.hex-continuous > .hex-visible-rows {
  contain: none !important;
  content-visibility: visible !important;
  height: auto !important;
  min-height: 1px;
  overflow: visible;
}
#hexArea .hex-continuous {
  contain: none !important;
  -webkit-overflow-scrolling: touch;
}

/* ===== 16.9.7.129 — affichage compact des grandes maps sur mobile =====
   Les maps 16x40 utilisent des cellules proches d'EDCMasterHP : davantage de
   colonnes visibles, axes fixes et défilement horizontal beaucoup plus court. */
@media(max-width:560px){
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid{
    border-spacing:1px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid thead .map-axis-head:not(.map-corner){
    width:38px!important;min-width:38px!important;max-width:38px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid thead .map-axis-head:not(.map-corner){
    height:34px!important;min-height:34px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid td input{
    padding:2px 1px!important;font-size:10.5px!important;letter-spacing:-.35px!important;border-radius:5px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid thead .map-axis-head:not(.map-corner){
    padding:2px 1px!important;font-size:9.5px!important;letter-spacing:-.35px!important;border-radius:4px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid .map-corner{
    width:54px!important;min-width:54px!important;max-width:54px!important;height:34px!important;min-height:34px!important;
    padding:2px 3px!important;font-size:10px!important;border-radius:4px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.large-map-grid .axis-unit{font-size:7px!important;margin-top:1px!important}

  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid thead .map-axis-head:not(.map-corner){
    width:31px!important;min-width:31px!important;max-width:31px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid thead .map-axis-head:not(.map-corner){
    height:30px!important;min-height:30px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid td input{font-size:9px!important;font-weight:700!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid thead .map-axis-head:not(.map-corner){font-size:8.2px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid tbody .map-row-head,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.very-large-map-grid .map-corner{
    width:48px!important;min-width:48px!important;max-width:48px!important;height:30px!important;min-height:30px!important;font-size:9px!important;
  }

  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.ultra-wide-map-grid td,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.ultra-wide-map-grid td input,
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.ultra-wide-map-grid thead .map-axis-head:not(.map-corner){
    width:28px!important;min-width:28px!important;max-width:28px!important;
  }
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.ultra-wide-map-grid td input{font-size:8.3px!important;letter-spacing:-.5px!important}
  #tableDialog #tableWindowArea .map-grid.adaptive-map-grid.ultra-wide-map-grid thead .map-axis-head:not(.map-corner){font-size:7.6px!important}
}


/* v16.9.7.133 — sélection swipe, pan 2 doigts et densité maximale lisible */
.map-grid-wrap{overscroll-behavior:contain;scrollbar-width:thin}
body:has(#cellSelectModeTable:checked) #tableDialog .map-grid-wrap,
body:has(#cellSelectModeViewer:checked) #mapViewerDialog .map-grid-wrap{touch-action:none}
.adaptive-map-grid td,.adaptive-map-grid th{padding:0!important}
.adaptive-map-grid td input{padding:0 1px!important;line-height:1!important}
.adaptive-map-grid{border-spacing:var(--adaptive-gap,1px)!important}
