*{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)}}
