.ms-cg {
    --ms-cg-primary: #174a6e;
    --ms-cg-accent: #e5702a;
    --ms-cg-ink: #163244;
    --ms-cg-muted: #5c7180;
    --ms-cg-line: #d8e2e8;
    --ms-cg-soft: #f3f7f9;
    --ms-cg-ok: #2f7d58;
    --ms-cg-warn: #9a681c;
    --ms-cg-error: #a13c33;
    color: var(--ms-cg-ink);
    font: 15px/1.48 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    max-width: 1680px;
    margin: 24px auto;
    background: #fff;
}

.ms-cg *, .ms-cg *::before, .ms-cg *::after { box-sizing: border-box; }
.ms-cg button, .ms-cg input, .ms-cg select, .ms-cg textarea { font: inherit; }
.ms-cg button { cursor: pointer; }
.ms-cg h2, .ms-cg h3, .ms-cg h4, .ms-cg p { margin-top: 0; }
.ms-cg h2 { font-size: clamp(1.55rem, 2.3vw, 2.35rem); line-height: 1.13; margin-bottom: 8px; }
.ms-cg h3 { font-size: 1.13rem; margin-bottom: 9px; }
.ms-cg h4 { margin: 18px 0 8px; }

.ms-cg-appbar {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: flex-end;
    padding: 24px clamp(18px, 3vw, 38px);
    color: #fff;
    background: linear-gradient(132deg, var(--ms-cg-primary), #0d2f45);
    border-radius: 18px 18px 0 0;
}
.ms-cg-appbar p { max-width: 820px; margin-bottom: 0; color: rgba(255,255,255,.86); }
.ms-cg-eyebrow { font-size: .76rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.ms-cg-project-tools { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; align-items: flex-end; min-width: min(100%, 430px); }
.ms-cg-project-tools .ms-cg-field { min-width: 210px; flex: 1 1 210px; }
.ms-cg-project-tools .ms-cg-field > span { color: rgba(255,255,255,.82); }

.ms-cg-button, .ms-cg-viewbar button, .ms-cg-steps button, .ms-cg-subtabs button, .ms-cg-canvas-tools button {
    border: 1px solid transparent;
    border-radius: 9px;
    padding: 9px 13px;
    min-height: 40px;
    font-weight: 750;
    color: #fff;
    background: var(--ms-cg-primary);
    box-shadow: none;
    white-space: normal;
}
.ms-cg-button:hover, .ms-cg-button:focus-visible { filter: brightness(1.07); transform: translateY(-1px); }
.ms-cg button:disabled, .ms-cg input:disabled, .ms-cg select:disabled { cursor: not-allowed; opacity: .5; transform: none; }
.ms-cg-button--quiet { color: var(--ms-cg-primary); background: #fff; border-color: #c4d4dc; }
.ms-cg-file-button { display: inline-flex; align-items: center; justify-content: center; position: relative; overflow: hidden; }
.ms-cg-file-button input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.ms-cg-icon-button { width: 34px; height: 34px; border: 1px solid var(--ms-cg-line); border-radius: 50%; color: var(--ms-cg-muted); background: #fff; font-size: 21px; line-height: 1; }

.ms-cg-notice { padding: 13px 16px; border-left: 4px solid var(--ms-cg-primary); background: #edf5f8; }
.ms-cg-notice--critical { margin: 0; border-left-color: var(--ms-cg-accent); background: #fff5ec; }
.ms-cg-notice--info { margin: 10px 0 16px; }
.ms-cg-notice--disclaimer { margin: 0; border-left-color: #a04f16; color: #5c3418; background: #fff8e9; }
.ms-cg-safety { margin: 0; border: 0; border-bottom: 1px solid #e0b775; background: #fff8e9; }
.ms-cg-safety > summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 11px clamp(16px, 2.5vw, 30px); border-left: 4px solid #b96b18; color: #543814; cursor: pointer; list-style: none; }
.ms-cg-safety > summary::-webkit-details-marker { display: none; }
.ms-cg-safety > summary span { flex: 0 0 auto; color: #805116; font-weight: 750; }
.ms-cg-safety > summary span::after { content: ' ▾'; }
.ms-cg-safety[open] > summary span::after { content: ' ▴'; }
.ms-cg-safety [data-safety-open] { display: none; }
.ms-cg-safety[open] [data-safety-closed] { display: none; }
.ms-cg-safety[open] [data-safety-open] { display: inline; }
.ms-cg-safety > div { display: grid; gap: 8px; padding: 0 clamp(20px, 3vw, 34px) 14px; color: #5c3418; }
.ms-cg-safety > div p { margin: 0; }

.ms-cg-unitbar { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; padding: 12px clamp(16px, 2.5vw, 30px); border: 1px solid var(--ms-cg-line); border-top: 0; background: #fff; }
.ms-cg-unitbar label { display: flex; align-items: center; gap: 7px; color: var(--ms-cg-muted); font-size: .86rem; font-weight: 700; }
.ms-cg-unitbar select { min-width: 92px; padding: 6px 28px 6px 8px; border: 1px solid var(--ms-cg-line); border-radius: 7px; background: #fff; }
.ms-cg-status { margin-left: auto; padding: 6px 10px; border-radius: 999px; color: var(--ms-cg-ok); background: #e7f4ed; font-size: .82rem; font-weight: 800; }
.ms-cg-status.is-dirty { color: var(--ms-cg-warn); background: #fff1d8; }
.ms-cg-audit { margin: 0 0 16px; padding: 16px; border: 1px solid var(--ms-cg-line); border-top: 4px solid var(--ms-cg-ok); border-radius: 12px; background: #eef7f2; }
.ms-cg-app-notice { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px clamp(16px, 2.5vw, 30px); border: 1px solid var(--ms-cg-line); border-top: 0; color: #173b2b; background: #e7f4ed; }
.ms-cg-app-notice.is-error { color: #6f1f18; background: #fff0ee; }.ms-cg-app-notice.is-info { color: #20495f; background: #edf5f8; }
.ms-cg-app-notice button { flex: 0 0 auto; min-height: 34px; padding: 5px 10px; border: 1px solid currentColor; border-radius: 8px; color: inherit; background: rgba(255,255,255,.75); font-weight: 750; }
.ms-cg-audit.is-warning, .ms-cg-audit.is-stale { border-top-color: #c38924; background: #fff8e7; }.ms-cg-audit.is-error { border-top-color: var(--ms-cg-error); background: #fff0ee; }
.ms-cg-audit__head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 8px 16px; }
.ms-cg-audit__head h3 { margin: 0 0 3px; }
.ms-cg-audit__head p { margin: 0; color: var(--ms-cg-muted); }
.ms-cg-audit__head > strong { color: var(--ms-cg-error); }
.ms-cg-audit-group { margin-top: 14px; }
.ms-cg-audit-group h4 { margin: 0 0 7px; color: var(--ms-cg-primary); }
.ms-cg-audit ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.ms-cg-audit li { display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 7px 9px; border-radius: 7px; background: rgba(255,255,255,.78); }
.ms-cg-audit li button { padding: 4px 8px; border: 1px solid #b8c9d2; border-radius: 6px; color: var(--ms-cg-primary); background: #fff; font-size: .78rem; font-weight: 750; }
.ms-cg-audit-level { color: var(--ms-cg-error); font-size: .72rem; font-weight: 850; text-transform: uppercase; }
.ms-cg-audit-level.is-warning { color: #8a5a12; }
.ms-cg-audit__success { margin: 12px 0 0; color: var(--ms-cg-ok); font-weight: 750; }
.ms-cg-audit li:nth-child(n) .ms-cg-audit-level { min-width: 52px; }
.ms-cg .is-audit-error { border-color: var(--ms-cg-error) !important; box-shadow: 0 0 0 2px rgba(161,60,51,.18) !important; }
.ms-cg .is-audit-warning { border-color: #d99a31 !important; box-shadow: 0 0 0 2px rgba(217,154,49,.14) !important; }
.ms-cg tr.is-audit-error, .ms-cg tr.is-audit-warning { box-shadow: inset 4px 0 0 currentColor !important; }

.ms-cg-designer { display: grid; grid-template-columns: minmax(430px, 1.45fr) minmax(450px, 1fr); min-height: 760px; border: 1px solid var(--ms-cg-line); border-top: 0; border-radius: 0 0 18px 18px; overflow: clip; }
.ms-cg-workspace { position: sticky; top: 16px; align-self: start; display: flex; flex-direction: column; min-width: 0; height: min(82vh, 900px); background: #eaf1f4; border-right: 1px solid var(--ms-cg-line); overflow: hidden; }
.ms-cg-viewbar { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px; border-bottom: 1px solid #cbd9df; background: rgba(255,255,255,.92); }
.ms-cg-viewbar button { color: var(--ms-cg-primary); background: transparent; border-color: transparent; padding: 7px 10px; min-height: 35px; }
.ms-cg-viewbar button[aria-pressed="true"] { color: #fff; background: var(--ms-cg-primary); }
.ms-cg-canvas { position: relative; flex: 1; min-height: 430px; overflow: hidden; touch-action: none; cursor: grab; background-color: #edf3f5; background-image: linear-gradient(#dbe6ea 1px, transparent 1px), linear-gradient(90deg, #dbe6ea 1px, transparent 1px); background-size: 25px 25px; }
.ms-cg-canvas:active { cursor: grabbing; }
.ms-cg-canvas svg { width: 100%; height: 100%; transform-origin: 50% 50%; transition: transform .08s linear; }
.ms-cg-canvas-empty { position: absolute; inset: 0; display: grid; place-content: center; gap: 5px; text-align: center; color: var(--ms-cg-muted); pointer-events: none; }
.ms-cg-canvas-empty strong { font-size: 1.25rem; color: var(--ms-cg-primary); }
.ms-cg-canvas-tools { display: flex; gap: 7px; align-items: center; padding: 9px 11px; border-top: 1px solid #cbd9df; background: #fff; }
.ms-cg-canvas-tools button { min-width: 38px; min-height: 36px; padding: 6px 10px; color: var(--ms-cg-primary); background: #edf4f7; }
.ms-cg-canvas-tools output { min-width: 58px; text-align: center; color: var(--ms-cg-muted); font-weight: 800; }
.ms-cg-visual-controls { display: grid; grid-template-columns: minmax(150px,1fr) minmax(150px,1fr) auto auto; gap: 8px; align-items: end; padding: 9px 11px; border-bottom: 1px solid var(--ms-cg-line); background: #f8fbfc; }
.ms-cg-visual-controls label { display: grid; gap: 4px; min-width: 0; color: var(--ms-cg-muted); font-size: .72rem; font-weight: 800; }
.ms-cg-visual-controls select { width: 100%; min-width: 0; padding: 7px 28px 7px 8px; border: 1px solid var(--ms-cg-line); border-radius: 8px; background: #fff; color: var(--ms-cg-text); }
.ms-cg-visual-controls .ms-cg-visual-check { display: flex; flex-direction: row; gap: 6px; align-items: center; min-height: 34px; padding: 5px 8px; border: 1px solid var(--ms-cg-line); border-radius: 8px; background: #fff; white-space: nowrap; }
.ms-cg-visual-controls .ms-cg-visual-check input { width: 16px; height: 16px; margin: 0; }
.ms-cg-visual-status { display: flex; flex-wrap: wrap; gap: 6px; min-height: 37px; padding: 7px 11px; border-top: 1px solid var(--ms-cg-line); background: #f8fbfc; }
.ms-cg-visual-status span { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; border: 1px solid #cfdae0; border-radius: 999px; color: #365361; background: #fff; font-size: .72rem; font-weight: 800; }
.ms-cg-visual-status .is-ok { color: #17613e; border-color: #98ceb3; background: #eaf8f0; }
.ms-cg-visual-status .is-warning { color: #76500b; border-color: #e2bf68; background: #fff5d8; }
.ms-cg-visual-status .is-error { color: #87291f; border-color: #e3a29a; background: #fff0ed; }
.ms-cg-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; padding: 9px 13px; color: var(--ms-cg-muted); background: #fff; border-top: 1px solid var(--ms-cg-line); font-size: .78rem; }
.ms-cg-legend span { display: inline-flex; align-items: center; gap: 6px; }
.ms-cg-legend i { display: inline-block; width: 18px; height: 4px; border-radius: 2px; background: #4b89ad; }
.ms-cg-legend .is-cg { background: #bb3f33; }.ms-cg-legend .is-np { background: #7b4caf; }.ms-cg-legend .is-ac { background: #e5702a; }
.ms-cg-legend .is-mass, .ms-cg-legend .is-fuel { background: #e5702a; }.ms-cg-legend .is-envelope { background: #2f7d58; }.ms-cg-legend .is-reserve { background: linear-gradient(90deg,#2d8a61 0 50%,#d48a26 50%); }.ms-cg-legend .is-open { border: 1px dashed #7e929d; background: rgba(92,113,128,.16); }

.ms-cg-tools { display: flex; flex-direction: column; min-width: 0; height: min(82vh, 900px); background: #fff; }
.ms-cg-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; flex: 0 0 auto; border-bottom: 1px solid var(--ms-cg-line); background: var(--ms-cg-line); }
.ms-cg-steps button { border-radius: 0; min-height: 44px; padding: 8px; color: var(--ms-cg-muted); background: #fff; font-size: .84rem; }
.ms-cg-steps button[aria-selected="true"] { color: var(--ms-cg-primary); background: #edf5f8; box-shadow: inset 0 -3px 0 var(--ms-cg-accent); }
.ms-cg-tool-scroll { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 18px; }
.ms-cg-panel[hidden], .ms-cg [hidden] { display: none !important; }
.ms-cg-panel-head, .ms-cg-card-title { display: flex; gap: 14px; justify-content: space-between; align-items: flex-start; margin-bottom: 12px; }
.ms-cg-panel-head p { margin-bottom: 0; color: var(--ms-cg-muted); }
.ms-cg-card { margin-bottom: 16px; padding: clamp(14px, 2vw, 20px); border: 1px solid var(--ms-cg-line); border-radius: 13px; background: #fff; box-shadow: 0 8px 24px rgba(17,59,82,.06); }
.ms-cg-surface { border-top: 4px solid var(--ms-cg-primary); }
.ms-cg-tank { border-left: 4px solid #3a7c9c; }
.ms-cg-help { color: var(--ms-cg-muted); }
.ms-cg-axis-card { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 16px; }
.ms-cg-axis-card span { padding: 11px; border: 1px solid var(--ms-cg-line); border-radius: 9px; background: var(--ms-cg-soft); text-align: center; }
.ms-cg-axis-card b { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: 5px; border-radius: 50%; color: #fff; background: var(--ms-cg-primary); }

.ms-cg-grid { display: grid; gap: 11px; }
.ms-cg-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }.ms-cg-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }.ms-cg-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ms-cg-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ms-cg-field > span { display: flex; align-items: center; gap: 5px; min-height: 24px; color: #365160; font-size: .79rem; font-weight: 780; }
.ms-cg-field input, .ms-cg-field select, .ms-cg-table input, .ms-cg-table select { width: 100%; min-width: 78px; height: 40px; padding: 7px 9px; color: var(--ms-cg-ink); background: #fff; border: 1px solid #bdccd4; border-radius: 8px; }
.ms-cg input:focus, .ms-cg select:focus { outline: 3px solid rgba(229,112,42,.28); border-color: var(--ms-cg-accent); }
.ms-cg-info { display: inline-grid; place-items: center; flex: 0 0 19px; width: 19px; height: 19px; padding: 0; border: 1px solid #9eb4c0; border-radius: 50%; color: var(--ms-cg-primary); background: #fff; font-size: .69rem; font-weight: 900; }
.ms-cg-check { display: flex; align-items: center; gap: 8px; padding-top: 25px; font-weight: 750; }
.ms-cg-check input { width: 20px; height: 20px; }
.ms-cg-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; }

.ms-cg-table-wrap { width: 100%; overflow-x: auto; border: 1px solid var(--ms-cg-line); border-radius: 10px; }
.ms-cg-table { width: 100%; min-width: 650px; border-collapse: collapse; background: #fff; }
.ms-cg-table th, .ms-cg-table td { padding: 8px; border-bottom: 1px solid #e4ebef; text-align: left; vertical-align: middle; }
.ms-cg-table thead th { position: sticky; top: 0; z-index: 1; color: #3a5665; background: #eef4f6; font-size: .76rem; }
.ms-cg-table tbody th { width: 38px; text-align: center; color: var(--ms-cg-muted); }
.ms-cg-table tr:last-child td, .ms-cg-table tr:last-child th { border-bottom: 0; }

.ms-cg-subtabs { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }
.ms-cg-subtabs button { color: var(--ms-cg-primary); background: #edf4f7; }
.ms-cg-subtabs button[aria-pressed="true"] { color: #fff; background: var(--ms-cg-primary); }
.ms-cg-advanced-only, .ms-cg-advanced-cell { display: none; }.ms-cg.is-advanced .ms-cg-advanced-only { display: block; }.ms-cg.is-advanced .ms-cg-advanced-cell { display: table-cell; }

.ms-cg-result { margin-top: 13px; }
.ms-cg-result:empty { display: none; }
.ms-cg-result > .ms-cg-result { margin: 0; }
.ms-cg-result h4 { margin: 0; padding: 11px 13px; color: #fff; background: var(--ms-cg-primary); border-radius: 9px 9px 0 0; }
.ms-cg-result dl { display: grid; gap: 1px; margin: 0; background: var(--ms-cg-line); border: 1px solid var(--ms-cg-line); }
.ms-cg-result dl div { display: grid; grid-template-columns: minmax(160px, 1.5fr) minmax(100px, 1fr); gap: 12px; padding: 8px 11px; background: #fff; }
.ms-cg-result dt { color: var(--ms-cg-muted); }.ms-cg-result dd { margin: 0; font-weight: 800; text-align: right; }
.ms-cg-result-note { margin: 0; padding: 9px 12px; border: 1px solid var(--ms-cg-line); border-top: 0; background: #f8fafb; font-size: .84rem; }
.ms-cg-result.is-ok h4 { background: var(--ms-cg-ok); }.ms-cg-result.is-warning h4 { background: var(--ms-cg-warn); }.ms-cg-result.is-error h4 { background: var(--ms-cg-error); }

.ms-cg-field-tooltip { position: fixed; z-index: 100001; width: min(340px, calc(100vw - 20px)); padding: 10px 12px; border-radius: 8px; color: #fff; background: #102f40; box-shadow: 0 10px 28px rgba(0,0,0,.24); font-size: .82rem; line-height: 1.4; pointer-events: none; }

.ms-cg-report { margin-top: 18px; color: #192e3a; background: #fff; }
.ms-cg-report header { padding: 18px; color: #fff; background: var(--ms-cg-primary); }
.ms-cg-report section, .ms-cg-report aside { padding: 14px 18px; border: 1px solid var(--ms-cg-line); border-top: 0; }
.ms-cg-report table { width: 100%; border-collapse: collapse; }.ms-cg-report th, .ms-cg-report td { padding: 7px; border: 1px solid var(--ms-cg-line); text-align: left; }
.ms-cg-report-disclaimer { border-color: #e1a05e !important; color: #5c3418; background: #fff5e7; }
.ms-cg-report-status { display: inline-block; margin: 8px 0 0; padding: 7px 10px; border-radius: 999px; color: #173b2b; background: #dff2e7; font-weight: 800; }
.ms-cg-report-status.is-warning { color: #6a4308; background: #ffecbd; }.ms-cg-report-status.is-error { color: #6f1f18; background: #ffd9d4; }
.ms-cg-report-kv { display: grid; gap: 1px; margin: 0; background: var(--ms-cg-line); }.ms-cg-report-kv div { display: grid; grid-template-columns: minmax(150px, 1fr) 1fr; gap: 12px; padding: 7px 9px; background: #fff; }.ms-cg-report-kv dt { color: var(--ms-cg-muted); }.ms-cg-report-kv dd { margin: 0; font-weight: 700; }
.ms-cg-report-chart { display: block; width: 100%; height: auto; max-height: 520px; background: #eef4f6; }
.ms-cg-report-signoff > div { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 42px 0 10px; }.ms-cg-report-signoff > div span { padding-top: 7px; border-top: 1px solid #70838d; color: var(--ms-cg-muted); }

/* Technical SVG */
.ms-cg .cg-grid-bg { fill: rgba(255,255,255,.28); }.ms-cg .cg-grid { stroke: #c7d5dc; stroke-width: 1; }.ms-cg .cg-station-grid { stroke: #aebfc7; stroke-width: 1; stroke-dasharray: 4 7; }.ms-cg .cg-centerline { stroke: #728b97; stroke-width: 2; stroke-dasharray: 16 7 3 7; }.ms-cg .cg-fuselage, .ms-cg .cg-fuselage-side { fill: #f8fafb; stroke: #76909e; stroke-width: 3; }.ms-cg .cg-surface { fill: rgba(69,136,171,.38); stroke: #235b7a; stroke-width: 3; transition: .15s; }.ms-cg .cg-tail { fill: rgba(64,145,118,.38); stroke: #277258; }.ms-cg .cg-canard { fill: rgba(218,129,49,.4); stroke: #a95b1d; }.ms-cg .cg-surface.is-highlighted, .ms-cg [data-visual-key].is-highlighted { fill: rgba(229,112,42,.58); stroke: #d45b12; stroke-width: 6; }.ms-cg .cg-side-surface { fill: #6a9db8; stroke: #235b7a; stroke-width: 2; }.ms-cg .cg-mac { stroke: #193f55; stroke-width: 5; }.ms-cg .cg-dimension { fill: none; stroke: #174a6e; stroke-width: 2; }.ms-cg .cg-dimension-extension { stroke: #658596; stroke-width: 1.2; }.ms-cg .cg-reserve-forward { stroke: #2d8a61; stroke-width: 5; }.ms-cg .cg-reserve-aft { stroke: #d48a26; stroke-width: 5; }.ms-cg .cg-ac { fill: var(--ms-cg-accent); stroke: #fff; stroke-width: 2; }.ms-cg .cg-cg { stroke: #bb3f33; stroke-width: 4; stroke-dasharray: 10 7; }.ms-cg .cg-cg.is-secondary { opacity: .34; stroke-width: 2.5; }.ms-cg .cg-cg.is-focus { stroke-width: 6; }.ms-cg .cg-np { stroke: #73449e; stroke-width: 4; stroke-dasharray: 4 6; }.ms-cg .cg-origin { fill: #fff; stroke: var(--ms-cg-primary); stroke-width: 4; }.ms-cg .cg-axis { stroke: var(--ms-cg-primary); stroke-width: 3; }.ms-cg .cg-label, .ms-cg .cg-panel-label, .ms-cg .cg-axis-label, .ms-cg .cg-cg-label, .ms-cg .cg-np-label, .ms-cg .cg-mass-label, .ms-cg .cg-load-label, .ms-cg .cg-tick, .ms-cg .cg-empty-text, .ms-cg .cg-dimension-label, .ms-cg .cg-status-label { font: 700 15px Arial, sans-serif; fill: #294b5d; paint-order: stroke; stroke: rgba(255,255,255,.9); stroke-width: 4px; stroke-linejoin: round; }.ms-cg .cg-panel-label, .ms-cg .cg-tick { font-size: 12px; }.ms-cg .cg-dimension-label { fill: #174a6e; font-size: 13px; }.ms-cg .cg-cg-label { fill: #a33029; }.ms-cg .cg-cg-label.is-secondary { opacity: .55; }.ms-cg .cg-np-label { fill: #63378a; }.ms-cg .cg-mass-point { fill: rgba(229,112,42,.78); stroke: #fff; stroke-width: 3; }.ms-cg .cg-undetermined-band { fill: rgba(92,113,128,.08); stroke: #7e929d; stroke-width: 1.5; stroke-dasharray: 5 5; }.ms-cg .cg-envelope { fill: rgba(47,125,88,.24); stroke: #2f7d58; stroke-width: 4; }.ms-cg .cg-load-point { fill: #b63b32; stroke: #fff; stroke-width: 3; }.ms-cg .cg-load-point.is-secondary { opacity: .45; }.ms-cg .cg-load-point.is-focus { stroke: #7d1e18; stroke-width: 5; }.ms-cg .cg-load-point.is-outside { fill: #d22f25; }.ms-cg .cg-load-point.is-boundary { fill: #e5a129; }.ms-cg .cg-load-point.is-inside { fill: #2c8b60; }.ms-cg .cg-fuel-path { fill: none; stroke: #e5702a; stroke-width: 5; stroke-linecap: round; }

.ms-cg .cg-matrix-title { font: 800 21px Arial,sans-serif; fill: #173f55; }
.ms-cg .cg-matrix-subtitle,.ms-cg .cg-matrix-note { font: 600 12px Arial,sans-serif; fill: #607783; }
.ms-cg .cg-matrix-column,.ms-cg .cg-matrix-row,.ms-cg .cg-matrix-value { font: 700 12px Arial,sans-serif; fill: #294b5d; paint-order: stroke; stroke: rgba(255,255,255,.85); stroke-width: 3px; stroke-linejoin: round; }
.ms-cg .cg-matrix-cell { stroke: rgba(28,60,77,.28); stroke-width: 1.5; }
.ms-cg .cg-matrix-cell.is-stable { fill: rgba(45,138,97,.42); }
.ms-cg .cg-matrix-cell.is-neutral { fill: rgba(229,161,41,.52); }
.ms-cg .cg-matrix-cell.is-unstable { fill: rgba(210,47,37,.52); }
.ms-cg .cg-matrix-cell.is-open { fill: rgba(110,130,140,.16); stroke-dasharray: 5 4; }
.ms-cg .cg-matrix-cell.is-assigned { stroke: #174a6e; stroke-width: 3; }
.ms-cg .cg-matrix-cell.is-focus { stroke: #111; stroke-width: 5; }
.ms-cg .cg-matrix-envelope { stroke: #fff; stroke-width: 1.5; }
.ms-cg .cg-matrix-envelope.is-inside { fill: #2d8a61; }.ms-cg .cg-matrix-envelope.is-boundary { fill: #e5a129; }.ms-cg .cg-matrix-envelope.is-outside { fill: #d22f25; }.ms-cg .cg-matrix-envelope.is-open { fill: #8999a1; }
.ms-cg .ms-cg-legend i.is-stable { background:#2d8a61; }.ms-cg .ms-cg-legend i.is-neutral { background:#e5a129; }.ms-cg .ms-cg-legend i.is-unstable { background:#d22f25; }
.ms-cg .ms-cg-scenario-table tr.is-ok td { background:rgba(45,138,97,.06); }.ms-cg .ms-cg-scenario-table tr.is-warning td { background:rgba(229,161,41,.08); }.ms-cg .ms-cg-scenario-table tr.is-error td { background:rgba(210,47,37,.08); }.ms-cg .ms-cg-scenario-table tr.is-assigned td:first-child { box-shadow:inset 4px 0 #174a6e; font-weight:800; }
.ms-cg .cg-mass-point.is-undetermined { fill: rgba(92,113,128,.65); stroke-dasharray: 4 3; }
.ms-cg .cg-side-surface.is-highlighted { fill: rgba(229,112,42,.78); stroke: #d45b12; stroke-width: 6; }

@media (max-width: 1120px) {
    .ms-cg-appbar { align-items: stretch; flex-direction: column; }
    .ms-cg-project-tools { justify-content: flex-start; }
    .ms-cg-designer { grid-template-columns: 1fr; overflow: visible; }
    .ms-cg-workspace { position: relative; top: auto; height: min(64vh, 650px); border-right: 0; border-bottom: 1px solid var(--ms-cg-line); }
    .ms-cg-tools { height: auto; min-height: 650px; }
    .ms-cg-tool-scroll { overflow: visible; }
}

@media (max-width: 720px) {
    .ms-cg { margin: 0; }
    .ms-cg-appbar { border-radius: 0; padding: 18px; }
    .ms-cg-unitbar { align-items: stretch; }.ms-cg-unitbar label { flex: 1 1 130px; justify-content: space-between; }.ms-cg-status { flex: 1 0 100%; margin: 0; text-align: center; }
    .ms-cg-workspace { height: 520px; }.ms-cg-canvas { min-height: 330px; }
    .ms-cg-steps { grid-template-columns: repeat(2, 1fr); }
    .ms-cg-tool-scroll { padding: 10px; }
    .ms-cg-grid--2, .ms-cg-grid--3, .ms-cg-grid--4, .ms-cg-axis-card { grid-template-columns: 1fr; }
    .ms-cg-panel-head { flex-direction: column; }.ms-cg-panel-head .ms-cg-button { width: 100%; }
    .ms-cg-project-tools .ms-cg-button, .ms-cg-project-tools .ms-cg-file-button { flex: 1 1 130px; }
    .ms-cg-result dl div { grid-template-columns: 1fr; }.ms-cg-result dd { text-align: left; }
    .ms-cg-audit li { grid-template-columns: 1fr; }.ms-cg-audit li button { justify-self: start; }
    .ms-cg-report-signoff > div { grid-template-columns: 1fr; gap: 42px; }
    .ms-cg-app-notice { align-items: stretch; flex-direction: column; }.ms-cg-app-notice button { align-self: flex-start; }
    .ms-cg-viewbar, .ms-cg-subtabs, .ms-cg-canvas-tools { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .ms-cg-viewbar button, .ms-cg-subtabs button, .ms-cg-canvas-tools button { flex: 0 0 auto; min-height: 44px; }
}

@media print {
    body * { visibility: hidden !important; }
    .ms-cg.is-printing-report, .ms-cg.is-printing-report * { visibility: visible !important; }
    .ms-cg.is-printing-report { position: absolute; inset: 0; width: 100%; margin: 0; }
    .ms-cg.is-printing-report > :not(.ms-cg-designer), .ms-cg.is-printing-report .ms-cg-workspace, .ms-cg.is-printing-report .ms-cg-steps, .ms-cg.is-printing-report .ms-cg-panel:not([data-panel="report"]), .ms-cg.is-printing-report [data-panel="report"] > .ms-cg-card > :not([data-report-preview]) { display: none !important; }
    .ms-cg.is-printing-report .ms-cg-designer, .ms-cg.is-printing-report .ms-cg-tools, .ms-cg.is-printing-report .ms-cg-tool-scroll, .ms-cg.is-printing-report [data-panel="report"] { display: block !important; height: auto; overflow: visible; border: 0; }
    .ms-cg-report { font-size: 10pt; }.ms-cg-report section { break-inside: avoid; }.ms-cg-report header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
    .ms-cg-report-disclaimer { display: block !important; break-inside: avoid; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* 0.7.6 – an die MS-Designer angeglichene Bedienoberfläche; Zeichen- und Rechenlogik unverändert. */
.ms-cg{--ms-cg-line:#e1e6ee;--ms-cg-soft:#f8fafc;--ms-cg-ink:#162033;--ms-cg-muted:#647086;border:1px solid var(--ms-cg-line);border-radius:18px;box-shadow:0 14px 42px rgba(18,32,51,.07);overflow:hidden}
.ms-cg-appbar{align-items:center;color:var(--ms-cg-ink);background:linear-gradient(135deg,color-mix(in srgb,var(--ms-cg-primary) 8%,#fff),#fff 68%);border-bottom:1px solid var(--ms-cg-line)}
.ms-cg-appbar p{color:var(--ms-cg-muted)}.ms-cg-project-tools .ms-cg-field>span{color:var(--ms-cg-muted)}
.ms-cg-card,.ms-cg-unitbar,.ms-cg-viewbar,.ms-cg-canvas-tools{border-color:var(--ms-cg-line);box-shadow:0 8px 26px rgba(18,32,51,.045)}
.ms-cg-field input,.ms-cg-field select,.ms-cg-table input,.ms-cg-table select{border-color:#ccd4df;border-radius:9px;box-shadow:0 1px 2px rgba(18,32,51,.025)}
.ms-cg input:focus,.ms-cg select:focus{outline:3px solid color-mix(in srgb,var(--ms-cg-primary) 13%,transparent);border-color:var(--ms-cg-primary)}
.ms-cg-button,.ms-cg-viewbar button,.ms-cg-steps button,.ms-cg-subtabs button,.ms-cg-canvas-tools button{border-radius:10px}
@media(max-width:720px){.ms-cg{border-radius:0;box-shadow:none}}

/* 0.7.9 – isolierte Vollbildansicht nach dem gemeinsamen MS-Designer-Muster. */
html.ms-cg-page-locked, body.ms-cg-page-locked { overflow: hidden !important; overscroll-behavior: none; }
#page .ms-cg.ms-cg-overlay, .ms-cg.ms-cg-overlay {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483640 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #f3f6f8 !important;
    box-shadow: none !important;
    isolation: isolate !important;
}
.ms-cg.ms-cg-overlay::before { content: ""; position: fixed; inset: 0; z-index: -1; background: #f3f6f8; }
.ms-cg.ms-cg-overlay .ms-cg-appbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
    flex: 0 0 auto;
    width: 100%;
    padding: 14px clamp(16px, 2vw, 30px);
    border-radius: 0 !important;
    box-shadow: 0 5px 18px rgba(18,32,51,.09);
}
.ms-cg.ms-cg-overlay .ms-cg-appbar h2 { font-size: clamp(1.35rem, 2vw, 1.9rem); }
.ms-cg.ms-cg-overlay .ms-cg-appbar > div:first-child { min-width: 270px; }
.ms-cg.ms-cg-overlay .ms-cg-project-tools { flex: 1 1 720px; min-width: 0; }
.ms-cg.ms-cg-overlay .ms-cg-project-tools .ms-cg-field { min-width: 190px; }
.ms-cg-button--fullscreen { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.ms-cg.ms-cg-overlay .ms-cg-button--fullscreen { color: #fff; border-color: var(--ms-cg-primary); background: var(--ms-cg-primary); }
.ms-cg.ms-cg-overlay > .ms-cg-safety,
.ms-cg.ms-cg-overlay > .ms-cg-unitbar,
.ms-cg.ms-cg-overlay > .ms-cg-app-notice,
.ms-cg.ms-cg-overlay > .ms-cg-audit { flex: 0 0 auto; width: min(100%, 1680px); margin-right: auto; margin-left: auto; }
.ms-cg.ms-cg-overlay .ms-cg-designer {
    flex: 1 1 auto;
    width: min(100%, 1680px);
    min-height: 0;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 0;
}
.ms-cg.ms-cg-overlay .ms-cg-workspace,
.ms-cg.ms-cg-overlay .ms-cg-tools { align-self: stretch; height: 100%; max-height: none; min-height: 0; }
.ms-cg.ms-cg-overlay .ms-cg-workspace { position: relative; top: auto; }
.ms-cg.ms-cg-overlay .ms-cg-tool-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }

@media (max-width: 1120px) {
    #page .ms-cg.ms-cg-overlay, .ms-cg.ms-cg-overlay { overflow-x: hidden !important; overflow-y: auto !important; }
    .ms-cg.ms-cg-overlay .ms-cg-appbar { position: sticky !important; }
    .ms-cg.ms-cg-overlay .ms-cg-project-tools { flex-basis: auto; }
    .ms-cg.ms-cg-overlay .ms-cg-designer { display: flex; flex: 0 0 auto; flex-direction: column; min-height: 0; overflow: visible; }
    .ms-cg.ms-cg-overlay .ms-cg-tools { order: 1; height: auto; min-height: 650px; }
    .ms-cg.ms-cg-overlay .ms-cg-workspace { order: 2; height: min(68vh, 680px); min-height: 460px; }
    .ms-cg.ms-cg-overlay .ms-cg-tool-scroll { overflow: visible; }
}

@media (max-width: 720px) {
    .ms-cg.ms-cg-overlay .ms-cg-appbar { gap: 8px; padding: 12px 14px; }
    .ms-cg.ms-cg-overlay .ms-cg-appbar > div:first-child { min-width: 0; }
    .ms-cg.ms-cg-overlay .ms-cg-appbar > div:first-child > p:not(.ms-cg-eyebrow) { display: none; }
    .ms-cg.ms-cg-overlay .ms-cg-project-tools { flex-wrap: nowrap; width: 100%; padding-bottom: 3px; overflow-x: auto; scrollbar-width: thin; }
    .ms-cg.ms-cg-overlay .ms-cg-project-tools .ms-cg-field { flex: 0 0 210px; min-width: 210px; }
    .ms-cg.ms-cg-overlay .ms-cg-project-tools .ms-cg-button,
    .ms-cg.ms-cg-overlay .ms-cg-project-tools .ms-cg-file-button { flex: 0 0 auto; }
    .ms-cg.ms-cg-overlay .ms-cg-button--fullscreen { order: -1; width: auto; }
    .ms-cg.ms-cg-overlay .ms-cg-tools { min-height: 560px; }
    .ms-cg.ms-cg-overlay .ms-cg-workspace { height: 520px; min-height: 420px; }
    .ms-cg-visual-controls { grid-template-columns: minmax(180px,1fr) minmax(180px,1fr) auto auto; overflow-x: auto; scrollbar-width: thin; }
}

@media print {
    .ms-cg.ms-cg-overlay.is-printing-report { position: absolute !important; height: auto !important; overflow: visible !important; }
}

/* 3.2.14 – eigenständige, eindeutig benannte Maximierung nur der technischen Darstellung. */
.ms-cg.ms-cg-visual-focus .ms-cg-workspace {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483641 !important;
    width: 100vw !important;
    max-width: none !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    border: 0 !important;
    background: #eaf1f4 !important;
    box-shadow: none !important;
}
.ms-cg.ms-cg-visual-focus .ms-cg-canvas { min-height: 0; }
.ms-cg.ms-cg-visual-focus [data-action="visual-maximize"] { color: #fff; border-color: var(--ms-cg-primary); background: var(--ms-cg-primary); }

@media (max-width: 720px) {
    .ms-cg-safety > summary { align-items: flex-start; flex-direction: column; gap: 5px; }
    .ms-cg-safety > summary span { flex-basis: auto; }
}

.ms-cg-reference-check { display:none !important; margin: 22px 0; padding: 18px; border: 1px solid #d7e1e6; border-radius: 14px; background: #f8fafb; }
.ms-cg-reference-check .ms-cg-panel-head { margin-bottom: 10px; }
.ms-cg-reference-table .is-pass td:last-child { color: #176b43; font-weight: 700; }
.ms-cg-reference-table .is-fail { background: #fff0f0; }
.ms-cg-reference-table .is-fail td:last-child { color: #a32020; font-weight: 800; }
.ms-cg-comparison-table .is-reference { background: #edf6fb; }
.ms-cg-comparison-table .is-reference td:first-child { color: var(--ms-cg-primary); font-weight: 800; }

.ms-cg-phase-card { border-left: 4px solid var(--ms-cg-accent); }
.ms-cg-phase-timeline { display: grid; gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.ms-cg-phase-timeline li { position: relative; display: grid; grid-template-columns: 38px minmax(150px,1fr) minmax(360px,2fr) auto; gap: 14px; align-items: center; padding: 14px; border: 1px solid #d7e1e6; border-radius: 12px; background: #fff; }
.ms-cg-phase-timeline li:not(:last-child)::after { content: ""; position: absolute; left: 32px; bottom: -13px; width: 2px; height: 13px; background: #a9bac3; }
.ms-cg-phase-timeline .ms-cg-phase-index { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: #fff; background: #667b86; font-weight: 800; }
.ms-cg-phase-timeline small { display: block; margin-top: 3px; color: #60727b; }
.ms-cg-phase-timeline dl { display: grid; grid-template-columns: repeat(3,minmax(110px,1fr)); gap: 8px; margin: 0; }
.ms-cg-phase-timeline dl div { padding: 7px 9px; border-radius: 8px; background: #f3f6f8; }
.ms-cg-phase-timeline dt { color: #60727b; font-size: .75rem; }
.ms-cg-phase-timeline dd { margin: 2px 0 0; font-weight: 700; }
.ms-cg-phase-timeline .is-pass { border-color: #8bc8a8; background: #f2fbf6; }
.ms-cg-phase-timeline .is-pass .ms-cg-phase-index { background: #176b43; }
.ms-cg-phase-timeline .is-fail { border-color: #e3a1a1; background: #fff3f3; }
.ms-cg-phase-timeline .is-fail .ms-cg-phase-index { background: #a32020; }
.ms-cg-phase-timeline .is-open { border-color: #e6c77d; background: #fffaf0; }
.ms-cg-phase-timeline .is-open .ms-cg-phase-index { background: #9b6818; }
@media (max-width: 900px) { .ms-cg-phase-timeline li { grid-template-columns: 38px 1fr; } .ms-cg-phase-timeline dl, .ms-cg-phase-timeline li > b { grid-column: 2; } }
@media (max-width: 560px) { .ms-cg-phase-timeline dl { grid-template-columns: 1fr; } }
.ms-cg-critical-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:14px; }
.ms-cg-critical-item { display:grid; gap:5px; min-width:0; padding:13px 14px; border:1px solid #cad7de; border-left-width:5px; border-radius:11px; background:#fff; }
.ms-cg-critical-item span { color:#536d7a; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.025em; }
.ms-cg-critical-item strong { color:#173f55; font-size:1.12rem; }
.ms-cg-critical-item small { overflow-wrap:anywhere; color:#60727b; }
.ms-cg-critical-item.is-pass { border-left-color:#2d8a61; background:#f2fbf6; }
.ms-cg-critical-item.is-open { border-left-color:#d49a28; background:#fffaf0; }
.ms-cg-critical-item.is-fail { border-left-color:#c6473d; background:#fff3f1; }
.ms-cg .cg-critical-card { stroke-width:2; }
.ms-cg .cg-critical-card.is-pass { fill:#eef9f3; stroke:#75b896; }
.ms-cg .cg-critical-card.is-open { fill:#fff8e8; stroke:#d4ad55; }
.ms-cg .cg-critical-card.is-fail { fill:#fff0ee; stroke:#cf766e; }
.ms-cg .cg-critical-dot.is-pass { fill:#2d8a61; }.ms-cg .cg-critical-dot.is-open { fill:#d49a28; }.ms-cg .cg-critical-dot.is-fail { fill:#c6473d; }
.ms-cg .cg-critical-label { font:800 15px Arial,sans-serif; fill:#294b5d; }
.ms-cg .cg-critical-value { font:800 23px Arial,sans-serif; fill:#173f55; }
.ms-cg .cg-critical-detail { font:700 12px Arial,sans-serif; fill:#60727b; }
@media (max-width: 620px) { .ms-cg-critical-grid { grid-template-columns:1fr; } }
.ms-cg-revision-card { border-left:4px solid #5b4f98; }
.ms-cg-revision-table tr.is-added td { background:rgba(45,138,97,.08); }
.ms-cg-revision-table tr.is-removed td { background:rgba(198,71,61,.08); }
.ms-cg-revision-table tr.is-changed td { background:rgba(212,154,40,.08); }
.ms-cg-revision-table tr.is-not-comparable td { background:rgba(91,79,152,.08); }
.ms-cg .cg-revision-track { fill:#e7edf0; }
.ms-cg .cg-revision-bar { fill:#5b76a8; }
.ms-cg .cg-revision-label, .ms-cg .cg-revision-count { font:800 14px Arial,sans-serif; fill:#294b5d; }
.ms-cg .cg-revision-count { fill:#173f55; }
.ms-cg .cg-revision-ok { fill:#eaf8f0; stroke:#2d8a61; stroke-width:5; }
.ms-cg .cg-revision-ok-mark { font:800 78px Arial,sans-serif; fill:#2d8a61; }
.ms-cg-readiness-card { display:none !important; margin:22px 0; padding:18px; border:1px solid #c7d7df; border-left:4px solid #2f7f6c; border-radius:14px; background:linear-gradient(145deg,#fff,#f5f9fb); }
.ms-cg-readiness-card .ms-cg-panel-head { flex-wrap:wrap; }
.ms-cg-readiness-card .ms-cg-panel-head > div { flex:1 1 280px; min-width:0; }
.ms-cg-readiness-card .ms-cg-panel-head > .ms-cg-button { flex:0 0 auto; min-width:max-content; white-space:nowrap; }
.ms-cg-readiness-checklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:14px 0; }
.ms-cg-readiness-item { display:flex; align-items:flex-start; gap:10px; padding:11px; border:1px solid #d8e2e7; border-radius:10px; background:#fff; cursor:pointer; }
.ms-cg-readiness-item.is-checked { border-color:#68a58e; background:#f1faf6; }
.ms-cg-readiness-item input { flex:0 0 auto; margin-top:3px; }
.ms-cg-readiness-item span { display:grid; gap:4px; line-height:1.35; }
.ms-cg-readiness-item small { color:#5d6d75; }
.ms-cg-readiness-table tr.is-pass td { background:#eff9f4; }
.ms-cg-readiness-table tr.is-open td { background:#fff8e8; }
.ms-cg-readiness-table tr.is-fail td { background:#fff0ee; }
.ms-cg-readiness-actions > .ms-cg-button, .ms-cg-readiness-actions > .ms-cg-file-button { flex:1 1 190px; justify-content:center; text-align:center; }
@media (max-width:760px) { .ms-cg-readiness-checklist { grid-template-columns:1fr; } .ms-cg-readiness-card .ms-cg-panel-head > .ms-cg-button { width:100%; white-space:normal; } }

/* 2.4.0 – verständliche Flugzeugsilhouetten und räumliche Schwerpunktansicht. */
.ms-cg .cg-fuselage,.ms-cg .cg-fuselage-side { fill:rgba(225,232,237,.94); stroke:#425d6b; stroke-width:3; }
.ms-cg .cg-canopy-top,.ms-cg .cg-canopy-side { fill:rgba(83,151,184,.42); stroke:#285e79; stroke-width:2.5; }
.ms-cg .cg-propeller-top,.ms-cg .cg-propeller-side { stroke:#596d77; stroke-width:5; stroke-linecap:round; }
.ms-cg .cg-fin-side { fill:#cad8df; stroke:#425d6b; stroke-width:3; }
.ms-cg .cg-wheel { fill:#26343b; stroke:#fff; stroke-width:3; }
.ms-cg .cg-3d-bg { fill:#eef4f6; }
.ms-cg .cg-3d-envelope { stroke-width:3; stroke-dasharray:9 6; }
.ms-cg .cg-3d-envelope.is-inside { fill:rgba(45,138,97,.28); stroke:#2d8a61; }
.ms-cg .cg-3d-envelope.is-outside { fill:rgba(198,71,61,.24); stroke:#c6473d; }
.ms-cg .cg-3d-fuselage { fill:#dbe6eb; stroke:#385666; stroke-width:3; }
.ms-cg .cg-3d-fuselage-shadow { fill:#9eafb8; stroke:#58707c; stroke-width:2; }
.ms-cg .cg-3d-surface { stroke:#294f63; stroke-width:2.5; }
.ms-cg .cg-3d-fin { fill:#beced6; stroke:#385666; stroke-width:3; }
.ms-cg .cg-3d-cg { stroke:#fff; stroke-width:4; }
.ms-cg .cg-3d-cg.is-inside { fill:#168a55; }.ms-cg .cg-3d-cg.is-outside { fill:#c93b31; }.ms-cg .cg-3d-cg.is-open { fill:#d69320; }
.ms-cg .cg-3d-cg-cross { stroke:#162f3c; stroke-width:3; }
.ms-cg-button--cart { background:#5b7f24; border-color:#5b7f24; }
.ms-cg-button--cart:hover, .ms-cg-button--cart:focus-visible { background:#496a1b; border-color:#496a1b; }
.ms-cg-shop-status { margin:10px 0 16px; padding:11px 14px; border:1px solid #9bb879; border-left:4px solid #5b7f24; border-radius:10px; background:#f5faef; color:#34491d; }

/* Geführter Arbeitsablauf 1.7 */
.ms-cg .ms-cg-ux-advanced { display:none !important; }
.ms-cg.is-advanced button.ms-cg-ux-advanced { display:inline-flex !important; }
.ms-cg.is-advanced label.ms-cg-ux-advanced { display:grid !important; }
.ms-cg.is-advanced div.ms-cg-ux-advanced,
.ms-cg.is-advanced section.ms-cg-ux-advanced { display:block !important; }
.ms-cg.is-advanced div.ms-cg-subtab-group.ms-cg-ux-advanced { display:flex !important; }
.ms-cg-workflow-intro { margin:0 0 16px; padding:14px 16px; border-left:4px solid var(--ms-cg-accent); border-radius:10px; background:#f3f7f9; }
.ms-cg-workflow-intro h3 { margin:0 0 5px; color:var(--ms-cg-primary); }
.ms-cg-workflow-intro p { margin:0; color:#536d7a; }
.ms-cg-subtabs--grouped { align-items:flex-end; }
.ms-cg-subtab-group { display:flex; flex-wrap:wrap; gap:7px; align-items:center; padding:6px; border:1px solid #d7e1e6; border-radius:12px; background:#f8fafb; }
.ms-cg-subtab-group > span { padding:0 5px; color:#60727b; font-size:.72rem; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.ms-cg-project-menu { position:relative; align-self:flex-end; }
.ms-cg-project-menu > summary { display:inline-flex; min-height:40px; align-items:center; padding:8px 13px; border:1px solid #b7cad4; border-radius:10px; color:var(--ms-cg-primary); background:#fff; font-weight:750; cursor:pointer; list-style:none; }
.ms-cg-project-menu > summary:hover,.ms-cg-project-menu > summary:focus-visible { border-color:var(--ms-cg-primary); background:#edf4f7; }
.ms-cg-project-menu > summary::-webkit-details-marker { display:none; }
.ms-cg-project-menu > summary::after { content:'▾'; margin-left:8px; font-size:.75em; }
.ms-cg-project-menu[open] > summary::after { content:'▴'; }
.ms-cg-project-menu__items { position:absolute; z-index:30; top:calc(100% + 7px); right:0; display:grid; width:max-content; min-width:190px; gap:7px; padding:10px; border:1px solid #c7d7df; border-radius:12px; background:#fff; box-shadow:0 12px 30px rgba(17,50,67,.2); }
.ms-cg-project-menu__items .ms-cg-button,
.ms-cg-project-menu__items .ms-cg-file-button { width:100%; justify-content:flex-start; color:var(--ms-cg-primary); background:#edf4f7; border-color:#d1dfe5; }
.ms-cg-limit-masses { margin:0 0 16px; padding:16px; border:1px solid #d7e1e6; border-radius:12px; background:#f8fafb; }
.ms-cg-limit-masses h3 { margin:0 0 4px; }
.ms-cg-limit-masses p { margin:0 0 12px; color:#60727b; }
.ms-cg-shop-status--result { margin:18px 0 10px; font-size:.9rem; }
.ms-cg-result-cart { margin-left:auto; }
@media (max-width:720px) {
    .ms-cg-project-menu__items { right:auto; left:0; }
    .ms-cg-subtab-group { flex:0 0 auto; }
    .ms-cg-result-cart { margin-left:0; }
}

/* Geführter Projektfortschritt 1.8 */
.ms-cg-workflow-progress { display:grid; gap:7px; padding:10px 14px; border-bottom:1px solid var(--ms-cg-line); background:#f8fafb; }
.ms-cg-workflow-progress > div:first-child { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 14px; color:#60727b; font-size:.78rem; }
.ms-cg-workflow-progress strong { color:var(--ms-cg-primary); }
.ms-cg-workflow-track { height:5px; overflow:hidden; border-radius:999px; background:#dce6eb; }
.ms-cg-workflow-track i { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ms-cg-primary),var(--ms-cg-accent)); transition:width .22s ease; }
.ms-cg-steps button::after { content:attr(data-step-status); display:block; margin-top:2px; color:#71858f; font-size:.66rem; font-weight:800; text-transform:uppercase; }
.ms-cg-steps button[data-step-state="complete"]::after { color:#287454; }
.ms-cg-steps button[data-step-state="partial"]::after { color:#986417; }
.ms-cg-steps button[data-step-state="optional"]::after { color:#687985; }
.ms-cg-workflow-nav { display:flex; justify-content:space-between; gap:10px; margin-top:20px; padding-top:15px; border-top:1px solid var(--ms-cg-line); }
.ms-cg-workflow-nav .ms-cg-button:last-child { margin-left:auto; }
.ms-cg-result-overview { margin-bottom:16px; padding:clamp(14px,2vw,20px); border:1px solid #c8d8df; border-top:4px solid var(--ms-cg-primary); border-radius:13px; background:linear-gradient(145deg,#fff,#f3f7f9); box-shadow:0 8px 24px rgba(17,59,82,.06); }
.ms-cg-result-overview__head { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }
.ms-cg-result-overview__head h3 { margin-bottom:4px; }
.ms-cg-result-overview__head p { margin:0; color:#60727b; }
.ms-cg-result-overview__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.ms-cg-result-overview__grid article { display:grid; gap:4px; min-width:0; padding:12px 13px; border:1px solid #d4e0e5; border-left:4px solid #8b9da6; border-radius:10px; background:#fff; }
.ms-cg-result-overview__grid article.is-ok { border-left-color:var(--ms-cg-ok); background:#f3faf6; }
.ms-cg-result-overview__grid article.is-error { border-left-color:var(--ms-cg-error); background:#fff3f1; }
.ms-cg-result-overview__grid span { color:#60727b; font-size:.72rem; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.ms-cg-result-overview__grid strong { overflow-wrap:anywhere; color:#183e52; font-size:.96rem; }
@media (max-width:620px) {
    .ms-cg-result-overview__grid { grid-template-columns:1fr; }
    .ms-cg-workflow-nav .ms-cg-button { flex:1 1 0; }
}

/* Sichere Varianten- und Reihenfolgebedienung 1.9 */
.ms-cg-item-actions { display:flex; flex:0 0 auto; flex-wrap:wrap; justify-content:flex-end; gap:5px; }
.ms-cg-item-actions .ms-cg-icon-button { display:inline-grid; place-items:center; width:32px; height:32px; font-size:17px; }
.ms-cg-item-actions .ms-cg-icon-button:disabled { opacity:.3; }
.ms-cg-item-actions .ms-cg-icon-button.is-remove { color:#8b3029; border-color:#ddb8b4; }
.ms-cg-table td > .ms-cg-item-actions { min-width:70px; max-width:74px; }
@media (max-width:620px) {
    .ms-cg-card-title { align-items:flex-start; }
    .ms-cg-card-title .ms-cg-item-actions { max-width:74px; }
}

/* Projektweiter Bearbeitungsverlauf 2.0 */
.ms-cg-history-controls { display:grid; grid-template-columns:1fr 1fr; gap:7px; padding-bottom:8px; border-bottom:1px solid #dce6eb; }
.ms-cg-project-menu__items .ms-cg-history-controls .ms-cg-button { justify-content:center; min-width:0; }
.ms-cg-history-controls small { grid-column:1 / -1; color:#647985; font-size:.72rem; text-align:center; }
.ms-cg-history-controls .ms-cg-button:disabled { opacity:.45; cursor:not-allowed; }
@media (max-width:420px) { .ms-cg-history-controls { grid-template-columns:1fr; } .ms-cg-history-controls small { grid-column:1; } }

/* 3.0.0 – gemeinsamer Arbeitsbereich und synchronisierte 2D-/3D-Darstellung. */
.ms-cg [hidden] { display:none !important; }
.ms-cg-mobile-workspace { display:none; }
.ms-cg-designer { grid-template-columns:minmax(410px,.88fr) minmax(540px,1.32fr); }
.ms-cg-tools { grid-column:1; grid-row:1; }
.ms-cg-workspace { grid-column:2; grid-row:1; border-right:0; border-left:1px solid var(--ms-cg-line); }
.ms-cg-visual-head { display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:8px 18px; padding:13px 15px 11px; border-bottom:1px solid #cbd9df; background:#fff; }
.ms-cg-visual-head h3 { margin:0; color:var(--ms-cg-primary); font-size:1.05rem; }
.ms-cg-visual-head small { display:block; margin-bottom:2px; color:#6a7d87; font-size:.66rem; font-weight:850; letter-spacing:.055em; }
.ms-cg-visual-head p { flex:1 1 320px; margin:2px 0 0; color:#60727b; font-size:.82rem; line-height:1.4; }
.ms-cg-viewbar { align-items:stretch; padding:8px 10px; }
.ms-cg-view-group { display:flex; flex-wrap:wrap; gap:5px; align-items:center; padding:4px; border:1px solid #d3e0e6; border-radius:11px; background:#f7fafb; }
.ms-cg-view-group > b { padding:0 5px; color:#60727b; font-size:.68rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.ms-cg-viewbar .ms-cg-view-group button { min-height:34px; }
.ms-cg-layer-menu { position:relative; margin-left:auto; }
.ms-cg-layer-menu > summary { display:flex; min-height:36px; align-items:center; padding:7px 11px; border:1px solid #cbd9df; border-radius:10px; color:var(--ms-cg-primary); background:#fff; font-weight:800; cursor:pointer; list-style:none; }
.ms-cg-layer-menu > summary::-webkit-details-marker { display:none; }
.ms-cg-layer-menu > summary::after { content:'▾'; margin-left:8px; font-size:.72rem; }
.ms-cg-layer-menu[open] > summary::after { content:'▴'; }
.ms-cg-layer-menu > div { position:absolute; z-index:24; top:calc(100% + 6px); right:0; display:grid; width:230px; gap:7px; padding:11px; border:1px solid #c7d7df; border-radius:12px; background:#fff; box-shadow:0 12px 28px rgba(17,50,67,.18); }
.ms-cg-layer-menu label { display:flex; align-items:center; gap:8px; font-size:.82rem; font-weight:700; }
.ms-cg-layer-menu input { margin:0; }
.ms-cg-3d-toolbar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:8px 11px; border-bottom:1px solid #cbd9df; background:#f8fafb; }
.ms-cg-3d-toolbar span { margin-right:auto; color:#60727b; font-size:.76rem; }
.ms-cg-3d-toolbar button { min-height:34px; padding:6px 9px; border:1px solid #cad8df; border-radius:9px; color:var(--ms-cg-primary); background:#fff; font-weight:750; cursor:pointer; }
.ms-cg-canvas canvas[data-live-3d] { display:block; width:100%; height:100%; outline:0; touch-action:none; cursor:grab; }
.ms-cg-canvas canvas[data-live-3d]:active { cursor:grabbing; }
.ms-cg-canvas canvas[data-live-3d]:focus-visible { box-shadow:inset 0 0 0 3px var(--ms-cg-accent); }
.ms-cg-3d-hint { position:absolute; z-index:3; right:12px; bottom:12px; max-width:calc(100% - 24px); padding:7px 10px; border-radius:8px; color:#f6fbfd; background:rgba(19,48,63,.82); font-size:.72rem; pointer-events:none; }
.ms-cg [data-visual-key] { cursor:pointer; }
.ms-cg [data-visual-key]:focus { outline:none; filter:drop-shadow(0 0 4px rgba(16,118,164,.75)); }
.ms-cg .cg-limit-band { fill:rgba(53,139,100,.12); stroke:#358b64; stroke-width:1.5; stroke-dasharray:7 5; }
.ms-cg .cg-limit-label { fill:#256b4c; font:800 12px Arial,sans-serif; }

@media (max-width:1120px) {
    .ms-cg-designer { grid-template-columns:minmax(360px,.9fr) minmax(460px,1.1fr); }
}

@media (max-width:920px) {
    .ms-cg-mobile-workspace { display:grid; grid-template-columns:1fr 1fr; gap:5px; padding:7px; border:1px solid var(--ms-cg-line); border-top:0; background:#eef4f7; }
    .ms-cg-mobile-workspace button { min-height:44px; border:1px solid #c5d5dd; border-radius:10px; color:var(--ms-cg-primary); background:#fff; font-weight:800; }
    .ms-cg-mobile-workspace button[aria-pressed="true"] { color:#fff; border-color:var(--ms-cg-primary); background:var(--ms-cg-primary); }
    .ms-cg-designer { display:block; min-height:0; overflow:visible; }
    .ms-cg-tools,.ms-cg-workspace { width:100%; height:auto; min-height:620px; border:0; }
    .ms-cg-workspace { position:relative; top:auto; min-height:590px; }
    .ms-cg[data-workspace-mode="input"] .ms-cg-workspace { display:none; }
    .ms-cg[data-workspace-mode="preview"] .ms-cg-tools { display:none; }
    .ms-cg[data-workspace-mode="preview"] .ms-cg-workspace { display:flex; }
    .ms-cg-canvas { min-height:430px; }
}

@media (max-width:620px) {
    .ms-cg-tools,.ms-cg-workspace { min-height:540px; }
    .ms-cg-workspace { min-height:520px; }
    .ms-cg-visual-head { padding:11px 12px 9px; }
    .ms-cg-viewbar { flex-wrap:nowrap; overflow-x:auto; }
    .ms-cg-view-group { flex:0 0 auto; flex-wrap:nowrap; }
    .ms-cg-layer-menu { flex:0 0 auto; margin-left:0; }
    .ms-cg-layer-menu > div { position:fixed; z-index:100002; top:auto; right:12px; bottom:12px; left:12px; width:auto; }
    .ms-cg-canvas { min-height:360px; }
    .ms-cg-3d-hint { font-size:.67rem; }
}

@media (prefers-reduced-motion:reduce) {
    .ms-cg-canvas svg,.ms-cg-workflow-track i { transition:none; }
}

/* 3.1.0 – verbindliche geführte Grundkonfiguration. */
.ms-cg-config-mode { display:grid; grid-template-columns:1fr 1fr; gap:5px; flex:0 0 auto; padding:7px; border-bottom:1px solid var(--ms-cg-line); background:#eaf1f4; }
.ms-cg-config-mode button { min-height:40px; padding:7px 10px; border:1px solid #bfd0d8; border-radius:9px; color:var(--ms-cg-primary); background:#fff; font-weight:800; cursor:pointer; }
.ms-cg-config-mode button[aria-pressed="true"] { color:#fff; border-color:var(--ms-cg-primary); background:var(--ms-cg-primary); box-shadow:0 4px 12px rgba(25,67,88,.18); }
.ms-cg-guide-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; flex:0 0 auto; border-bottom:1px solid var(--ms-cg-line); background:var(--ms-cg-line); }
.ms-cg-guide-steps button { position:relative; display:grid; grid-template-columns:26px minmax(0,1fr); align-items:center; gap:7px; min-height:54px; padding:7px 9px; border:0; color:#536d7a; background:#fff; text-align:left; cursor:pointer; }
.ms-cg-guide-steps button b { display:grid; place-items:center; width:25px; height:25px; border:1px solid #b8cad3; border-radius:50%; color:#496675; background:#f3f7f9; }
.ms-cg-guide-steps button span { font-size:.76rem; font-weight:800; line-height:1.15; }
.ms-cg-guide-steps button::after { content:attr(data-step-status); position:absolute; right:7px; bottom:3px; color:#748791; font-size:.58rem; font-weight:850; letter-spacing:.035em; text-transform:uppercase; }
.ms-cg-guide-steps button[aria-current="step"] { color:var(--ms-cg-primary); background:#edf6f9; box-shadow:inset 0 -3px 0 var(--ms-cg-accent); }
.ms-cg-guide-steps button[aria-current="step"] b { color:#fff; border-color:var(--ms-cg-primary); background:var(--ms-cg-primary); }
.ms-cg-guide-steps button[data-step-state="complete"]::after { color:#287454; }
.ms-cg-guide-steps button[data-step-state="partial"]::after { color:#986417; }
.ms-cg-guide-steps button:disabled { opacity:.45; cursor:not-allowed; }
.ms-cg-guide-context { flex:0 0 auto; padding:12px 15px; border-bottom:1px solid var(--ms-cg-line); background:linear-gradient(135deg,#f8fbfc,#eef5f7); }
.ms-cg-guide-context [data-guide-intro] small { display:block; margin-bottom:2px; color:#657b86; font-size:.65rem; font-weight:850; letter-spacing:.05em; text-transform:uppercase; }
.ms-cg-guide-context h3 { margin:0 0 3px; color:var(--ms-cg-primary); font-size:1rem; }
.ms-cg-guide-context p { margin:0; color:#58707c; font-size:.78rem; line-height:1.4; }
.ms-cg-guide-stability { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:10px; padding-top:9px; border-top:1px solid #d5e1e6; }
.ms-cg-guide-stability span { margin-right:3px; color:#60727b; font-size:.68rem; font-weight:850; text-transform:uppercase; }
.ms-cg-guide-stability button { min-height:34px; padding:6px 9px; border:1px solid #c5d5dd; border-radius:8px; color:var(--ms-cg-primary); background:#fff; font-weight:750; cursor:pointer; }
.ms-cg-guide-stability button[aria-pressed="true"] { color:#fff; border-color:var(--ms-cg-primary); background:var(--ms-cg-primary); }
.ms-cg-guide-footer { display:flex; flex:0 0 auto; justify-content:space-between; gap:10px; padding:10px 14px; border-top:1px solid var(--ms-cg-line); background:#f7fafb; }
.ms-cg-guide-footer .ms-cg-button:last-child { margin-left:auto; }
.ms-cg-guided-review { margin-bottom:16px; padding:16px; border:1px solid #c6d7df; border-top:4px solid var(--ms-cg-accent); border-radius:12px; background:#f8fbfc; }
.ms-cg-guided-review h3 { margin:0 0 4px; }
.ms-cg-guided-review p { margin:0 0 12px; color:#60727b; }
.ms-cg-guided-review ul { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.ms-cg-guided-review li { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:10px; padding:9px 10px; border-left:4px solid #93a4ad; border-radius:8px; background:#fff; }
.ms-cg-guided-review li.is-complete { border-left-color:var(--ms-cg-ok); }
.ms-cg-guided-review li.is-partial { border-left-color:#c38924; }
.ms-cg-guided-review li strong { color:#536d7a; font-size:.75rem; text-transform:uppercase; }
.ms-cg-guided-review li button { min-height:32px; padding:5px 8px; border:1px solid #c8d7de; border-radius:7px; color:var(--ms-cg-primary); background:#fff; font-weight:750; cursor:pointer; }
.ms-cg-guided-review__actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
.ms-cg[data-configuration-mode="guided"] .ms-cg-steps,
.ms-cg[data-configuration-mode="guided"] .ms-cg-workflow-nav { display:none; }
.ms-cg[data-configuration-mode="detail"] .ms-cg-guide-steps,
.ms-cg[data-configuration-mode="detail"] .ms-cg-guide-context,
.ms-cg[data-configuration-mode="detail"] .ms-cg-guide-footer,
.ms-cg[data-configuration-mode="detail"] .ms-cg-guided-review { display:none; }

@media (max-width:620px) {
    .ms-cg-guide-steps { display:flex; overflow-x:auto; scroll-snap-type:x proximity; }
    .ms-cg-guide-steps button { flex:0 0 155px; scroll-snap-align:start; }
    .ms-cg-guide-context { padding:10px 12px; }
    .ms-cg-guide-footer .ms-cg-button { flex:1 1 0; }
    .ms-cg-guided-review li { grid-template-columns:minmax(0,1fr) auto; }
    .ms-cg-guided-review li button { grid-column:1 / -1; }
}

@media print {
    .ms-cg-config-mode,.ms-cg-guide-steps,.ms-cg-guide-context,.ms-cg-guide-footer,.ms-cg-guided-review { display:none !important; }
}
