:root{--workshop-ink:#1f2529;--panel-steel:#e7ecef;--canvas-white:#f8fafa;--measure-blue:#2f6f9f;--safety-amber:#c98218;--fault-red:#b83a32;--line-steel:#bcc8cf;--muted-ink:#60707a;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--radius:6px;--font-technical:"Inter Tight", Inter, ui-sans-serif, system-ui, sans-serif;--font-body:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-measure:ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color:var(--workshop-ink);font-synthesis:none;text-rendering:optimizelegibility;background:#dce4e8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;overflow:hidden}html,#root{height:100%}button,input,select{font:inherit}button{background:var(--workshop-ink);border:1px solid var(--workshop-ink);border-radius:var(--radius);color:#fff;cursor:pointer;min-height:34px;padding:var(--space-2) var(--space-3);justify-content:center;align-items:center;gap:8px;display:inline-flex}button:hover{background:#303a40}button:disabled{cursor:not-allowed;opacity:.55}.secondaryButton{background:var(--canvas-white);border-color:var(--line-steel);color:var(--workshop-ink)}.secondaryButton:hover{background:#eef4f7}input,select{background:var(--canvas-white);border:1px solid var(--line-steel);border-radius:var(--radius);color:var(--workshop-ink);min-height:34px;padding:var(--space-2) var(--space-3);width:100%}select{appearance:none}label{color:#5b6468;gap:5px;font-size:12px;display:grid}h2,h3{color:#202529;letter-spacing:0;margin:0}h2{font-size:15px}h3{font-size:13px}.appFrame{grid-template-rows:auto minmax(0,1fr);height:100vh;min-height:0;display:grid;overflow:hidden}.appMenuBar{color:var(--workshop-ink);z-index:20;background:#f8fafa;border-bottom:1px solid #cfd7db;gap:0;min-width:0;display:grid;position:relative}.menuTopRow{align-items:center;gap:2px;min-height:30px;padding:2px 8px 0;display:flex}.menuRoot{position:relative}.menuTrigger{color:#263238;background:0 0;border:0;border-radius:4px;min-height:26px;padding:4px 10px;font-size:13px;font-weight:700}.menuTrigger:hover,.menuTrigger.active{background:#e7ecef}.menuDropdown{z-index:30;background:#fff;border:1px solid #cbd4d8;border-radius:6px;gap:3px;min-width:270px;padding:6px;display:grid;position:absolute;top:calc(100% + 3px);left:0;box-shadow:0 14px 30px #1f25292e}.menuItem{color:#263238;align-items:center;gap:8px;justify-content:initial;text-align:left;background:0 0;border:0;border-radius:4px;grid-template-columns:20px minmax(0,1fr) auto;width:100%;min-height:30px;padding:5px 8px;display:grid}.menuItem:hover:not(:disabled){background:#edf2ee}.menuItem:disabled{color:#9aa5a8;opacity:1;background:0 0}.menuItem>span:nth-child(2){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.menuCheck{color:#60707a;justify-content:center;align-items:center;min-width:20px;display:inline-flex}.dangerMenuItem,.dangerMenuItem .menuCheck{color:var(--fault-red)}.menuItem kbd,.shortcutLine kbd{color:#435054;font-family:var(--font-measure);white-space:nowrap;background:#eef2f3;border:1px solid #cfd7db;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:800}.menuSeparator{border:0;border-top:1px solid #e1e6e8;margin:4px 2px}.menuGroup{border:1px solid #e1e6e8;border-radius:5px;gap:3px;padding:4px;display:grid}.menuGroupLabel{color:#60707a;text-transform:uppercase;grid-template-columns:20px 1fr;align-items:center;gap:8px;min-height:24px;padding:0 4px;font-size:11px;display:grid}.menuGroupBody{gap:2px;display:grid}.schemasPanel{border-top:3px solid var(--schema-accent,var(--measure-blue))}.schemaTitle{align-items:center;gap:8px;display:inline-flex}.schemaSwitch{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.schemaSwitchButton{color:#263238;background:#fff;border-color:#cfd7db;min-height:34px;padding:7px 8px;font-size:12px}.schemaSwitchButton.active{background:color-mix(in srgb, var(--schema-accent,var(--measure-blue)) 16%, #fff);border-color:var(--schema-accent,var(--measure-blue));color:#1f2529}.schemaSection{gap:8px;display:grid}.schemaSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.schemaSummaryGrid>div{border-radius:var(--radius);background:#f8fafa;border:1px solid #e1e6e8;gap:2px;padding:8px;display:grid}.schemaSummaryGrid strong{color:#263238;font-family:var(--font-measure);font-size:14px}.schemaSummaryGrid span{color:#60707a;font-size:10px;line-height:1.2}.schemaWarningMetric{border-color:#d8a64a!important}.schemaBulkActions{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;display:grid}.schemaBulkActions p{margin:0}.schemaFilters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.schemaSection h3{color:#4d5a60;font-family:var(--font-technical);text-transform:uppercase;font-size:12px}.schemaRoleGroup{border-radius:var(--radius);background:#f8fafa;border:1px solid #e1e6e8;gap:6px;padding:8px;display:grid}.schemaRoleGroup>strong{color:#263238;font-size:12px}.schemaElementPill{border-left:3px solid var(--schema-accent,var(--measure-blue));color:#263238;background:#fff;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.schemaElementPill small{color:#60707a;font-family:var(--font-measure);align-items:center;gap:5px;font-size:10px;display:inline-flex}.schemaRoleBadge{background:color-mix(in srgb, var(--schema-accent,var(--measure-blue)) 14%, #fff);border:1px solid color-mix(in srgb, var(--schema-accent,var(--measure-blue)) 42%, #fff);color:#263238;font-family:var(--font-body);border-radius:999px;padding:2px 6px;font-size:10px;font-weight:800;display:inline-flex}.schemaConnectionForm,.schemaConnectionList{gap:8px;display:grid}.schemaConnectionRow{border-radius:var(--radius);background:#fff;border:1px solid #dce3e6;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;padding:8px;display:grid}.schemaConnectionRow.warning{border-color:#d8a64a}.schemaConnectionRow strong,.schemaConnectionRow small{display:block}.schemaConnectionRow strong{color:#263238;font-size:12px}.schemaConnectionRow small{color:#60707a;align-items:center;gap:4px;margin-top:2px;font-size:11px;display:flex}.materialEstimateBox{border-radius:var(--radius);background:#f8fafa;border:1px solid #dce3e6;padding:8px}.materialEstimateBox h3{align-items:center;gap:6px;display:inline-flex}.materialsPanel{border-top:3px solid #6f7f4b}.materialIconBadge{--category-color:#6f7f4b;--category-soft:#eaeee0}.materialSummaryGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.materialsList{gap:8px;display:grid}.materialRow{border-radius:var(--radius);background:#fff;border:1px solid #dce3e6;border-left:4px solid #6f7f4b;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:8px;padding:9px;display:grid}.materialFamilyIcon{color:#5c6c3f;background:#eaeee0;border:1px solid #cbd6bd;border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.materialRow strong,.materialRow small{display:block}.materialRow strong{color:#263238;font-size:12px}.materialRow small{color:#60707a;text-transform:uppercase;font-size:10px;font-weight:800}.materialRow p{color:#60707a;margin:3px 0 0;font-size:11px;line-height:1.35}.materialQuantity{color:#263238;font-family:var(--font-measure);white-space:nowrap;background:#f3f6f0;border:1px solid #dce5d4;border-radius:999px;padding:5px 8px;font-size:12px;font-weight:800}.menuEmptyState{color:#6f777b;margin:0;padding:5px 8px 6px 28px;font-size:12px}.shortcutLine{color:#435054;grid-template-columns:82px 1fr;align-items:center;gap:8px;min-height:26px;margin:0;padding:2px 6px;font-size:12px;display:grid}.documentTitleBar{border-top:1px solid #edf1f2;align-items:center;gap:8px;min-width:0;min-height:34px;padding:3px 10px 6px;display:flex}.documentTitleInput{color:#202529;font-family:var(--font-technical);background:0 0;border-color:#0000;width:clamp(160px,24vw,360px);min-width:120px;max-width:360px;min-height:28px;padding:3px 6px;font-size:14px;font-weight:850}.documentTitleInput:hover,.documentTitleInput:focus{background:#fff;border-color:#c9d1cb}.documentSaveState,.documentNotice,.documentError{white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:800}.documentSaveState{color:#2f6b4a;background:#e3efe8}.documentSaveState.unsaved{color:#8a5a18;background:#f5ead8}.documentNotice{color:#2f6f9f;background:#e6eef4}.documentError{color:var(--fault-red);background:#f3dfdc}.appShell{grid-template-columns:minmax(260px,320px) minmax(360px,1fr) minmax(280px,360px);height:100%;min-height:0;display:grid;overflow:hidden}.sidePanel{background:#f9faf7;border-color:#d7dbd4;align-content:start;gap:14px;height:100%;padding:14px;display:grid;overflow-y:auto}.leftPanel{border-right:1px solid #d7dbd4}.rightPanel{border-left:1px solid #d7dbd4}.scenePanel{height:100%;min-height:0;position:relative;overflow:hidden}.sceneWorkbench{grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0;display:grid}.editorToolbar{z-index:4;background:#f6f7f4;border-bottom:1px solid #d4d8d3;padding:8px 10px;display:block;box-shadow:0 1px #2025290a}.toolbarPrimary{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.modeRail{background:#fff;border:1px solid #d6dbd6;border-radius:8px;grid-template-columns:repeat(4,minmax(0,auto));gap:4px;padding:4px;display:grid}.modeButton{color:#435054;background:0 0;border:0;border-radius:6px;min-height:34px;padding:7px 10px}.modeButton:hover{background:#f0f3ee}.modeButton.active{color:#fff}.mode-selection.active{background:#263238}.mode-placement.active{background:#246f73}.mode-dimensions.active{background:#6d5f9e}.mode-contraintes.active{background:#9d6232}.commandDeck{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.commandGroup{background:#fff;border:1px solid #d6dbd6;border-radius:8px;flex-wrap:wrap;align-items:center;gap:4px;min-height:44px;padding:5px;display:flex}.commandLabel{color:#667073;text-transform:uppercase;margin:0 4px;font-size:11px;font-weight:800}.toolButton{color:#263238;background:#f9faf7;border-color:#d6dbd6;min-height:32px;padding:6px 9px}.toolButton:hover{background:#eef2ee}.activeToggle{color:#1f6666;background:#e6f1ef;border-color:#99c5bd}.accentTool{color:#5f4a96;background:#f4eefb;border-color:#d6c5ef}.compactTextButton{min-width:42px}.selectionBadge{color:#fff;text-align:center;background:#263238;border-radius:999px;min-width:26px;padding:5px 8px;font-size:12px;font-weight:800}.layerMenu{justify-self:end;position:relative}.layerMenu summary{color:#263238;cursor:pointer;background:#fff;border:1px solid #d6dbd6;border-radius:8px;align-items:center;gap:6px;min-height:42px;padding:8px 11px;font-size:13px;font-weight:800;display:inline-flex}.layerMenu summary::marker{content:""}.layerMenuBody{z-index:10;background:#fff;border:1px solid #d6dbd6;border-radius:8px;gap:6px;min-width:230px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 28px #20252929}.layerTool{background:#f9faf7;border:1px solid #d2d8d3;border-radius:6px;grid-template-columns:auto 1fr auto auto;align-items:center;gap:3px;padding:4px;display:grid}.layerTool:before{content:"";border-radius:999px;width:8px;height:8px;margin-left:5px}.layer-mobilier:before{background:#6f7b65}.layer-eau:before{background:#4f8ea8}.layer-electricite:before{background:#d1a642}.layer-gaz:before{background:#b95745}.layer-structure:before{background:#6d78a8}.layer-exterieur:before{background:#596469}.layerTool small{color:#435054;padding:0 5px 0 2px;font-size:11px;font-weight:700}.templateStrip button,.quickPresetStrip button{min-height:30px;padding:5px 8px}.templateStrip>span,.quickPresetStrip>span{color:#5b6468;align-items:center;gap:5px;font-size:12px;font-weight:700;display:inline-flex}.sceneViewport{min-height:0;position:relative;overflow:hidden}.sceneLoading{color:#435054;background:#f4f2ed;justify-content:center;align-items:center;height:100%;min-height:420px;font-size:14px;font-weight:700;display:flex}.sceneCanvas{width:100%;height:100%;min-height:0}.sceneWorkbench .sceneCanvas{min-height:0}.panelBlock{border-bottom:1px solid #dfe3de;gap:12px;padding-bottom:14px;display:grid}.panelHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.selectionTitle{align-items:center;gap:7px;display:inline-flex}.selectionTitle small{background:var(--category-soft,#eef1ee);color:var(--category-color,#687783);border-radius:999px;padding:3px 7px;font-size:11px;font-weight:800}.panelActions{gap:6px;display:flex}.iconButton{aspect-ratio:1;width:34px;min-height:34px;padding:7px}.dangerButton{background:#9d3832;border-color:#9d3832}.dangerButton:hover{background:#b1453f}.inlineControls{flex-wrap:wrap;gap:8px;display:flex}.controlGroup{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.controlGroup button{min-height:32px;padding:6px 9px}.controlLabel{color:#5b6468;font-size:12px;font-weight:700}.presetChips{flex-wrap:wrap;gap:7px;display:flex}.presetChips button{min-height:32px;padding:6px 9px}.vanFilterBlock,.vanPresetGroups,.vanFamilyGroup{gap:8px;display:grid}.filterRow{flex-wrap:wrap;gap:6px;display:flex}.filterRow button{min-height:30px;padding:5px 8px}.vanPresetGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;display:grid}.vanPresetButton{text-align:left;border-radius:7px;justify-content:stretch;align-items:start;gap:3px;min-height:82px;display:grid;position:relative}.activeVanPreset{color:#fff;background:#263238;border-color:#263238}.activeVanPreset:hover{background:#34434a}.vanPresetButton strong,.vanPresetButton small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vanPresetButton small{color:#6f777b;font-size:11px}.activeVanPreset small{color:#dfe6e3}.vanSizeBadge{color:#263238;background:#edf2ee;border:1px solid #d3dbd5;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800;position:absolute;top:7px;right:7px}.activeVanPreset .vanSizeBadge{background:#fff;border-color:#fff}.gridInputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.projectList,.presetList,.placedList,.customForm{gap:8px;display:grid}.presetCategory{gap:6px;display:grid}.presetCategoryHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.presetCategoryHeader span{color:#435054;background:#e7ece7;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:700}.projectRow,.presetRow,.placedRow{color:#202529;justify-content:initial;text-align:left;background:#fff;border:1px solid #d2d8d3;grid-template-columns:auto 1fr auto;display:grid}.presetActionRow{cursor:pointer;border-radius:6px;align-items:center;gap:8px;min-height:36px;padding:8px 12px}.presetRow{border-left:4px solid var(--category-color,#d2d8d3);grid-template-columns:auto minmax(0,1fr) auto auto}.categoryIconBadge{background:var(--category-soft,#eef1ee);border:1px solid color-mix(in srgb, var(--category-color,#687783) 44%, #fff);color:var(--category-color,#687783);border-radius:999px;flex:none;justify-content:center;align-items:center;width:30px;height:30px;display:inline-flex}.projectRow{grid-template-columns:1fr auto}.projectRow:hover,.presetRow:hover,.placedRow:hover,.placedRow.selected{background:#edf2ee}.mutedRow{opacity:.48}.placedRow span:nth-child(2),.presetRow span:nth-child(2){gap:2px;min-width:0;display:grid}.presetTags{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.presetTags>span:not(.verifiedBadge):not(.statusWarning){color:#4f5d62;background:#eef1ee;border-radius:999px;padding:3px 7px;font-size:11px;font-weight:700}.presetCapabilityTags{margin-top:2px}.presetCapabilityTags .capabilityBadge{color:#435054;background:#f3f6f0;border:1px solid #d7dfcf;align-items:center;gap:4px;padding:3px 7px;display:inline-flex}.presetRow strong,.presetRow small,.placedRow strong,.placedRow small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.presetRow small,.placedRow small{color:#6f777b;font-size:11px}.sourceLink{color:#2f6f9f;font-size:11px;font-weight:800;text-decoration:none}.sourceLink:hover{text-decoration:underline}.placementTools{gap:10px;display:grid}.nudgePad{grid-template-columns:repeat(3,34px);justify-content:center;gap:6px;display:grid}.nudgePad button:first-child,.nudgePad button:last-child{grid-column:2}.collisionList{background:#fff4f2;border:1px solid #f0c7c1;border-radius:6px;gap:4px;padding:8px;display:grid}.collisionList p{color:#9d3832;margin:0;font-size:12px}.measurementStrip{color:#435054;background:#eef4f2;border:1px solid #d1dfda;border-radius:6px;gap:4px;padding:8px;font-size:12px;display:grid}.metadataBox{color:#5b4c27;background:#fffdf7;border:1px solid #e1d8bd;border-radius:6px;gap:4px;padding:8px;font-size:12px;display:grid}.dimensionGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.dimensionGrid span{color:#435054;background:#fff;border:1px solid #d2d8d3;border-radius:6px;padding:7px 8px;font-size:12px}.colorSwatch{border:1px solid #fff;border-radius:999px;width:16px;height:16px;display:inline-block}.searchField{background:#fff;border:1px solid #c3c9c5;border-radius:6px;grid-template-columns:auto 1fr;align-items:center;gap:6px;padding:0 8px;display:grid}.searchField input{border:0;min-height:34px;padding-left:0}.searchField input:focus{outline:0}.categoryFilters{flex-wrap:wrap;gap:6px;display:flex}.categoryFilters button{min-height:30px;padding:5px 8px}.categoryFilterButton{border-color:color-mix(in srgb, var(--category-color) 42%, #c9d1cb);color:var(--category-color)}.categoryFilterButton:hover{background:var(--category-soft)}.categoryFilterButton.active{background:var(--category-color);border-color:var(--category-color);color:#fff}.catalogSourceBar{color:#435054;background:#eef4f6;border:1px solid #cbd8df;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 8px;font-size:12px;display:flex}.verifiedBadge{color:#245a78;background:#dbeaf1;border:1px solid #b8cfda;border-radius:999px;padding:4px 7px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.templateStrip,.quickPresetStrip{background:#f0f3ee;border:1px solid #d7ded6;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px;display:flex}.gaugeTrack{background:#d9ded8;border-radius:999px;height:12px;overflow:hidden}.gaugeFill{background:#2f6f73;height:100%;transition:width .16s}.gaugeFill.danger{background:#d94f45}.axlePanel{background:#f3f7f5;border:1px solid #cbd8d2;border-radius:8px;padding:10px}.axlePanel h2{color:#1f5553}.axleCard{background:#fff;border:1px solid #d2d8d3;border-radius:8px;gap:10px;padding:10px;display:grid}.axleBarBlock{gap:6px;display:grid}.axleBarHeader{justify-content:space-between;align-items:center;gap:8px;display:flex}.axleBarHeader strong{color:#263238;font-size:13px}.axleTrack{height:10px}.axleFill{background:#246f73}.axleDiagram{grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:2px 6px;display:grid}.axleWheel{background:#263238;border-radius:999px;width:16px;height:16px;display:block}.axleWheel.danger{background:#d94f45}.axleBodyLine{background:#c6cfca;border-radius:999px;height:5px}.dangerText{color:#9d3832;font-size:12px;font-weight:700}.statusOk,.statusDanger,.statusWarning{border-radius:999px;padding:4px 8px;font-size:12px}.alertList{gap:6px;display:grid}.alertList p{margin:0}.errorText{color:#9d3832;margin:0;font-size:13px}.successText{color:#1e6b45;margin:0;font-size:13px}.mutedText{color:#6f777b;margin:0;font-size:13px}.topDownPanel{background:#f9faf7;border-top:1px solid #d7dbd4;gap:8px;padding:10px 12px 12px;display:grid}.topDownHeader{justify-content:space-between;align-items:center;gap:12px;display:flex}.topDownSvg{touch-action:none;background:#eef0ec;border:1px solid #d2d8d3;border-radius:6px;width:100%;height:220px;display:block}.sceneControls{z-index:3;background:#f9faf7eb;border:1px solid #d2d8d3;border-radius:6px;align-items:center;gap:7px;padding:6px;display:grid;position:absolute;top:12px;right:12px}.sceneControls span{color:#435054;text-align:center;justify-content:center;align-items:center;min-width:42px;font-size:12px;font-weight:700;display:inline-flex}.sceneControlGroup{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;max-width:420px;display:flex}.sceneHud{color:#435054;z-index:3;background:#f9faf7e6;border:1px solid #d2d8d3;border-radius:6px;align-items:start;gap:6px;max-width:min(420px,100% - 24px);padding:8px 10px;display:grid;position:absolute;bottom:12px;left:12px}.sceneHud div{gap:2px;display:grid}.sceneHud strong{color:#202529;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sceneHud span{color:#5b6468;font-size:12px;line-height:1.35}.sceneContextPanel{color:#263238;z-index:4;background:#f9faf7f0;border:1px solid #cfd7db;border-radius:6px;gap:8px;width:max-content;max-width:min(520px,100% - 24px);padding:8px;display:grid;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #1f252924}.sceneContextHeader{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;display:grid}.sceneContextHeader strong,.sceneContextHeader span{display:block}.sceneContextHeader strong{color:#202529;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.sceneContextHeader span{color:#60707a;font-family:var(--font-measure);font-size:11px}.sceneStateStrip,.sceneContextActions{flex-wrap:wrap;gap:5px;display:flex}.sceneContextActions button{min-height:30px;padding:6px 8px}.sceneItemLabel{color:#f8fafa;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;background:#1f2529d1;border:1px solid #f8fafab8;border-radius:4px;max-width:140px;padding:5px 7px;font-size:11px;font-weight:800;line-height:1;overflow:hidden}.surfaceItemLabel{background:#1f2529c2}.scenePill{color:#263238;background:#fff;border-color:#c9d1cb;gap:5px;min-height:30px;padding:5px 8px}.scenePill.active{color:#fff;background:#263238;border-color:#263238}.sceneLayerButton{border-color:color-mix(in srgb, var(--layer-color) 34%, #c9d1cb);color:var(--layer-color);background:#fff;grid-template-columns:auto auto;gap:1px;min-width:42px;min-height:30px;padding:5px 7px;display:inline-grid}.sceneLayerButton.active{background:color-mix(in srgb, var(--layer-color) 13%, #fff);border-color:var(--layer-color);color:var(--layer-color)}.sceneLayerButton:not(.active){opacity:.58}.topDownVan{fill:#fdfdf9;stroke:#263238;stroke-width:2px}.topDownBody{fill:#eef3f2;opacity:.72;stroke:#9aa8aa;stroke-width:1.5px}.topDownGrid{stroke:#d8ddd7;stroke-width:1px}.topDownLabel{fill:#5b6468;font-size:12px;font-weight:700}.topDownCockpit{fill:#dce4e5;opacity:.72;stroke:#9aa8aa;stroke-dasharray:6 5;stroke-width:1.5px}.topDownNose{fill:#cfdadb;opacity:.58;stroke:#8c9a9d;stroke-width:1.4px}.topDownNoseDivider{stroke:#8c9a9d;stroke-dasharray:4 4;stroke-width:1.5px}.topDownDivider{stroke:#79878a;stroke-dasharray:5 4;stroke-width:2px}.topDownDashboard{fill:#56616b;opacity:.82}.topDownSeat{fill:#485258;opacity:.86}.topDownSeatBack{fill:#2f383d;opacity:.86}.topDownWheelWell{fill:#aeb8b9;opacity:.72;stroke:#6f7b7d;stroke-width:1px}.topDownWheel{fill:#202529;opacity:.9}.topDownCabinText{fill:#56616b;text-anchor:middle;font-size:12px;font-weight:700}.topDownItem{cursor:move}.topDownItemRect{opacity:.9;stroke:#fff;stroke-width:2px}.topDownItemRect.selected{stroke:#202529;stroke-width:3px}.topDownSurfaceItem{cursor:pointer}.topDownSurfaceRect{opacity:.76;stroke:#f8fafa;stroke-dasharray:5 3;stroke-width:2px}.topDownSurfaceRect.selected{stroke:#202529;stroke-dasharray:none;stroke-width:3px}.topDownItemText{fill:#fff;paint-order:stroke;pointer-events:none;stroke:#202529;stroke-width:3px;text-anchor:middle;font-size:11px;font-weight:700}.topDownItemCategory{fill:#ffffffe6;letter-spacing:.04em;paint-order:stroke;pointer-events:none;stroke:#1f2529b8;stroke-width:2px;text-anchor:middle;text-transform:uppercase;font-size:9px;font-weight:800}button,input,select,summary{font-family:var(--font-body)}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,.presetActionRow:focus-visible{outline:2px solid var(--measure-blue);outline-offset:2px}label,.mutedText{color:var(--muted-ink)}h2,h3,.commandLabel,.controlLabel{font-family:var(--font-technical)}.appShell{background-color:#dce4e8;background-image:linear-gradient(90deg,#1f25290a 1px,#0000 1px),linear-gradient(0deg,#1f252909 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:24px 24px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;grid-template-columns:minmax(216px,252px) minmax(460px,1fr) minmax(300px,328px)}.appShell.toolsCollapsed{grid-template-columns:minmax(216px,252px) minmax(560px,1fr) 58px}.sidePanel{gap:var(--space-3);padding:var(--space-3);background:#e7eceff2}.leftPanel{border-right-color:var(--line-steel)}.rightPanel{border-left-color:var(--line-steel);background:#f8fafaf7;padding:0}.collapsedPanel{overflow:hidden}.scenePanel{background:#cfd9de}.sceneWorkbench{grid-template-rows:auto auto minmax(0,1fr) auto}.editorToolbar{border-bottom-color:var(--line-steel);padding:var(--space-2) var(--space-3);background:#f8fafaf5}.toolbarPrimary{gap:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto}.modeRail,.commandGroup,.layerMenu summary,.layerMenuBody,.layerTool{border-color:var(--line-steel)}.modeButton.active,.activeToggle,.activeVanPreset,.scenePill.active,.toolTab.active{background:var(--measure-blue);border-color:var(--measure-blue);color:#fff}.mode-placement.active,.mode-dimensions.active,.mode-contraintes.active{background:var(--measure-blue)}.commandDeck{gap:var(--space-2)}.commandGroup{min-height:38px;padding:var(--space-1)}.commandLabel{color:var(--muted-ink);letter-spacing:.04em}.toolButton{background:var(--canvas-white);border-color:var(--line-steel);color:var(--workshop-ink)}.panelBlock{border-bottom-color:var(--line-steel);gap:var(--space-3);padding-bottom:var(--space-3)}.collapsiblePanel{border:1px solid var(--line-steel);border-radius:var(--radius);padding:var(--space-3);background:#f8fafa80}.collapsiblePanel>summary{cursor:pointer;list-style:none}.collapsiblePanel>summary::-webkit-details-marker{display:none}.collapsiblePanel>summary:after{color:var(--measure-blue);content:"Regler";letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.collapsiblePanel[open]>summary:after{content:"Masquer"}.toolSidebar{grid-template-rows:auto auto minmax(0,1fr);height:100vh;min-height:0;display:grid}.toolSidebarHeader{border-bottom:1px solid var(--line-steel);align-items:center;gap:var(--space-2);min-height:58px;padding:var(--space-3);justify-content:space-between;display:flex}.toolSidebarHeader h2,.toolSidebarHeader p{margin:0}.toolSidebarHeader p{color:var(--muted-ink);font-size:12px}.toolTabs{border-bottom:1px solid var(--line-steel);gap:var(--space-1);padding:var(--space-2);background:#edf3f6;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));display:grid}.toolTab{color:var(--workshop-ink);background:0 0;border-color:#0000;min-height:34px}.toolTab:hover{background:#2f6f9f1a}.toolPanel{min-height:0;padding:var(--space-3);overflow-y:auto}.toolPanel>.panelBlock{border-bottom:0}.collapsedToolSidebar{grid-template-rows:auto auto}.collapsedToolSidebar .toolSidebarHeader{padding:var(--space-2);justify-content:center}.collapsedToolSidebar .toolTabs{grid-template-columns:1fr}.collapsedToolSidebar .toolTab{min-width:40px;padding:var(--space-2)}.safetyStatusBar{background:repeating-linear-gradient(90deg, #1f252933 0 1px, transparent 1px 24px), var(--canvas-white);border-bottom:1px solid var(--line-steel);align-items:stretch;gap:var(--space-2);padding:var(--space-2) var(--space-3);grid-template-columns:auto repeat(3,minmax(150px,1fr)) auto;display:grid}.safetySignal{border-radius:var(--radius);color:var(--measure-blue);font-family:var(--font-technical);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);text-transform:uppercase;background:#e6f0f3;border:1px solid #b7c9d3;justify-content:center;font-size:12px;font-weight:800;display:inline-flex}.safetySignal.danger{color:var(--fault-red);background:#f7e9e5;border-color:#e0aaa3}.safetyMetric{border-radius:var(--radius);padding:var(--space-2);background:#f8fafad6;border:1px solid #bcc8cfe0;gap:3px;display:grid}.safetyMetric span{color:var(--muted-ink);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:800}.safetyMetric strong{color:var(--workshop-ink);font-family:var(--font-measure);font-size:13px}.miniGaugeTrack{background:#d5dee3;border-radius:999px;height:5px;overflow:hidden}.miniGaugeFill{background:var(--measure-blue);height:100%}.miniGaugeFill.danger{background:var(--fault-red)}.safetyStatusBar p{color:var(--muted-ink);align-items:center;gap:var(--space-1);justify-content:center;margin:0;font-size:12px;display:inline-flex}.sceneViewport{background:radial-gradient(circle at 50% 0,#f8fafad9,#cfd9dee0 42%,#c5d0d6 100%)}.topDownPanel{border-top-color:var(--line-steel);gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#f8fafaf0}.topDownSvg{border-color:var(--line-steel);height:156px}.sceneControls,.sceneHud{border-color:var(--line-steel);border-radius:var(--radius);background:#f8fafaeb}.sceneCanvas{touch-action:none}.sceneGestureHint{border:1px solid var(--line-steel);border-left:4px solid var(--measure-blue);border-radius:var(--radius);color:var(--workshop-ink);gap:var(--space-1);max-width:min(420px,100% - 32px);padding:var(--space-3);z-index:4;background:#f8fafaf0;display:grid;position:absolute;top:16px;left:16px;box-shadow:0 12px 28px #1f252924}.sceneGestureHint strong{font-family:var(--font-technical);font-size:13px}.sceneGestureHint span{color:var(--muted-ink);font-size:12px;line-height:1.4}.statusOk,.statusDanger,.statusWarning{border-radius:var(--radius);font-family:var(--font-technical);letter-spacing:.03em;font-size:11px;font-weight:800}.statusOk{color:var(--measure-blue);background:#e2eef2}.statusDanger{color:var(--fault-red);background:#f7e2de}.statusWarning{color:var(--safety-amber);background:#f4ead8}.dangerButton,.gaugeFill.danger,.axleWheel.danger{background:var(--fault-red);border-color:var(--fault-red)}.gaugeFill,.axleFill{background:var(--measure-blue)}.measurementStrip,.dimensionGrid span,.safetyMetric strong{font-family:var(--font-measure)}.metadataBox,.measurementStrip,.templateStrip,.quickPresetStrip{border-color:var(--line-steel)}.metadataBox{color:var(--muted-ink);background:#f8faf8}.presetRow,.placedRow,.projectRow{border-color:var(--line-steel);border-radius:var(--radius)}.presetRow:hover,.placedRow:hover,.projectRow:hover,.placedRow.selected{background:#e8f1f5}.emptyStateText{border-radius:var(--radius);color:var(--muted-ink);padding:var(--space-3);background:#edf3f6;border:1px dashed #a9bac4;margin:0;font-size:13px;line-height:1.4}.inspectorSection{border:1px solid var(--line-steel);border-radius:var(--radius);gap:var(--space-3);padding:var(--space-2);display:grid}.inspectorSection>summary{color:var(--workshop-ink);cursor:pointer;font-family:var(--font-technical);letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:800;list-style:none}.inspectorSection>summary::-webkit-details-marker{display:none}.inspectorSection>summary:after{color:var(--measure-blue);content:" +"}.inspectorSection[open]>summary:after{content:" -"}.inspectorSection[open]>summary{margin-bottom:var(--space-2)}@media (width<=980px){body{overflow:auto}.appFrame{height:auto;min-height:100vh;overflow:visible}.appMenuBar{position:sticky;top:0}.menuTopRow,.documentTitleBar{flex-wrap:wrap}.menuDropdown{max-width:calc(100vw - 16px)}.appShell{grid-template-columns:1fr;height:auto;overflow:visible}.appShell.toolsCollapsed{grid-template-columns:1fr}.sidePanel{border:0;height:auto;max-height:none}.rightPanel{border-top:1px solid var(--line-steel)}.collapsedPanel{min-height:0}.scenePanel,.sceneCanvas{min-height:520px}.sceneWorkbench{height:auto;min-height:820px}.editorToolbar{position:sticky;top:0}.toolbarPrimary{grid-template-columns:1fr}.commandDeck{align-items:stretch}.commandGroup{width:100%}.modeRail,.safetyStatusBar{grid-template-columns:repeat(2,minmax(0,1fr))}.safetySignal,.safetyStatusBar p{grid-column:span 2}.toolSidebar,.collapsedToolSidebar{height:auto}.toolSidebarHeader{min-height:50px}.collapsedToolSidebar .toolSidebarHeader{display:none}.collapsedToolSidebar .toolTabs{grid-template-columns:repeat(2,minmax(0,1fr))}.collapsedToolSidebar .toolTab span{display:inline}.layerMenu{justify-self:stretch}.layerMenu summary{justify-content:center;width:100%}.layerMenuBody{left:0;right:0}.vanPresetGrid{grid-template-columns:1fr}.sceneWorkbench .sceneCanvas{min-height:520px}.topDownSvg{height:190px}.sceneControls{top:10px;left:10px;right:10px}.sceneHud{max-width:none;bottom:10px;left:10px;right:10px}.sceneContextPanel{width:auto;top:118px;left:10px;right:10px;transform:none}.sceneControlGroup{justify-content:flex-start;max-width:none}}
