:root {
  color-scheme: dark;
  --bg: #080b0f;
  --panel: #10151b;
  --panel-2: #151c23;
  --line: #28313b;
  --text: #f3f6f8;
  --muted: #8f9ba8;
  --accent: #dbff4a;
  --accent-2: #80d8ff;
  --danger: #ff8b75;
  --radius: 18px;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

.landing-visual img { display:block; width:100%; height:100%; min-height:390px; object-fit:contain; object-position:center; background:#02080c; }
@media (max-width:960px) { .landing-visual img { min-height:300px; } }

.report-menu-command { color:#d6ff37; }
.report-builder { width:min(820px,calc(100vw - 28px)); max-height:90vh; padding:0; border:1px solid #3a4c57; border-radius:18px; background:#0c151b; color:#e9f2f5; box-shadow:0 30px 90px rgba(0,0,0,.72); }
.report-builder::backdrop { background:rgba(0,6,10,.78); backdrop-filter:blur(5px); }
.report-builder form { display:grid; gap:20px; padding:26px; }
.report-builder-head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.report-builder-head h2 { margin:4px 0 8px; font-size:28px; }
.report-builder-head p:last-child { margin:0; max-width:650px; color:#8fa4af; line-height:1.5; }
.report-options { display:grid; grid-template-columns:1fr 1fr; gap:10px; overflow:auto; max-height:48vh; }
.report-options label { display:flex; align-items:flex-start; gap:11px; padding:14px; border:1px solid #293943; border-radius:12px; background:#091218; cursor:pointer; }
.report-options label:has(input:checked) { border-color:#8eaa32; background:#111b16; }
.report-options input { margin-top:3px; accent-color:#d6ff37; }
.report-options span { display:grid; gap:5px; }
.report-options b { color:#e9f1f4; }
.report-options small { color:#8398a3; line-height:1.4; }
.report-builder-actions { display:flex; justify-content:flex-end; gap:9px; flex-wrap:wrap; }
@media (max-width:650px) { .report-options { grid-template-columns:1fr; }.report-builder form { padding:18px; }.report-builder-actions .button { flex:1; } }

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 80% -10%, #172128 0, transparent 34%), var(--bg); color: var(--text); }
.account-page { min-height:100vh;display:grid;place-items:center; }.account-shell { width:min(440px,calc(100% - 28px)); }.account-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:12px; }.account-heading .language-switcher { margin-left:0; }.account-back { display:inline-block;margin:0 0 12px;color:var(--accent-2);text-decoration:none;font-size:12px; }.account-card h1 { margin:5px 0 8px; }.account-card > p:not(.eyebrow) { color:var(--muted);font-size:11px;line-height:1.5; }.account-tabs { display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px 0; }.account-tabs button { padding:9px;border:1px solid #34414b;border-radius:8px;background:#0b1015;color:#aab6bf; }.account-tabs button.active { border-color:var(--accent);color:#111;background:var(--accent); }.account-card form { display:grid;gap:12px; }.account-message { min-height:20px;margin-top:12px;font-size:11px;color:var(--muted); }.account-message.good { color:var(--accent); }.account-message.error { color:var(--danger); }
button, input, select { font: inherit; }
button { cursor: pointer; }

.topbar { min-height: 94px; padding: 16px 30px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; position: sticky; top: 0; z-index: 10; background: rgb(8 11 15 / 91%); backdrop-filter: blur(18px); }
.topbar h1 { margin: 1px 0 0; font-size: 30px; letter-spacing: -1.5px; }
.eyebrow { color: var(--accent); margin: 0; font-size: 10px; text-transform: uppercase; letter-spacing: 1.8px; font-weight: 800; }
.top-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.module-nav { position: relative; display: flex; justify-content: center; min-width: 240px; }
.module-menu-button { min-width: 240px; display: grid; grid-template-columns: auto auto 1fr; align-items: center; gap: 8px; padding: 10px 13px; border: 1px solid #35424d; border-radius: 10px; background: #111820; color: var(--text); text-align: left; }.module-menu-button span { color: var(--accent); text-align: right; font-size: 11px; }.module-menu-button b { font-size: 12px; }
.module-menu { position: absolute; top: calc(100% + 8px); left: 50%; z-index: 30; width: 290px; transform: translateX(-50%); padding: 8px; border: 1px solid #34414c; border-radius: 12px; background: #0c1217; box-shadow: 0 22px 60px rgb(0 0 0 / 55%); }.module-menu .module-tab { width: 100%; margin: 2px 0; }.module-menu hr { border: 0; border-top: 1px solid #28343e; margin: 7px 3px; }.menu-command { width: 100%; padding: 9px 11px; border: 0; border-radius: 8px; background: transparent; color: #b9c5cc; text-align: left; font-size: 11px; }.menu-command:hover { color: var(--accent); background: rgb(219 255 74 / 6%); }
.module-tab { display: flex; align-items: center; gap: 8px; padding: 9px 14px; color: #aeb9c2; border: 1px solid #2c3741; border-radius: 10px; background: #0d1318; font-size: 12px; font-weight: 750; }
.module-tab span { color: #647480; font-size: 9px; }
.module-tab.active { color: #11150b; border-color: var(--accent); background: var(--accent); }
.module-tab.active span { color: #394410; }
.module-tab:disabled { opacity: .42; cursor: default; }
.module-view:not(.active) { display: none !important; }

.shell { display: grid; grid-template-columns: 330px minmax(0, 1fr); gap: 18px; max-width: 1660px; margin: 0 auto; padding: 20px; }
.sidebar { display: flex; flex-direction: column; gap: 14px; align-self: start; position: sticky; top: 114px; }
.content { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.panel { background: linear-gradient(150deg, rgb(19 25 32 / 96%), rgb(13 18 23 / 98%)); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px; box-shadow: 0 24px 70px rgb(0 0 0 / 18%); }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 17px; }
.section-heading > div { display: flex; align-items: center; gap: 10px; }
.section-heading h2 { margin: 0; font-size: 16px; letter-spacing: -.25px; }
.step { width: 27px; height: 27px; border: 1px solid #394652; border-radius: 50%; display: grid; place-items: center; color: var(--muted); font-size: 10px; font-weight: 800; }
.badge { font-size: 9px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--accent); border: 1px solid rgb(219 255 74 / 25%); padding: 5px 7px; border-radius: 99px; }

.field-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.field { display: grid; gap: 6px; min-width: 0; }
.field.wide { margin-bottom: 10px; }
.field span { color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .6px; font-weight: 700; }
.help-label { display: inline-flex; align-items: center; gap: 5px; width: max-content; max-width: 100%; }
.help-icon { position: relative; display: inline-grid; place-items: center; flex: 0 0 auto; width: 14px; height: 14px; padding: 0; border: 1px solid #51606c; border-radius: 50%; background: #10171d; color: #aebbc5; font: 800 9px/1 system-ui; cursor: help; text-transform: none; }
.field-tooltip { position: fixed; z-index: 100; width: min(290px, calc(100vw - 24px)); padding: 10px 12px; border: 1px solid #52616c; border-radius: 10px; background: #eef4f5; color: #182128; box-shadow: 0 14px 40px rgb(0 0 0 / 45%); font-size: 11px; line-height: 1.45; pointer-events: none; }
input, select { width: 100%; color: var(--text); background: #0b1015; border: 1px solid #2a3540; border-radius: 9px; padding: 9px 10px; outline: none; transition: border-color .15s, box-shadow .15s; }
input:focus, select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgb(219 255 74 / 10%); }

.button { border: 1px solid #34404b; border-radius: 10px; padding: 9px 13px; background: transparent; color: var(--text); font-weight: 750; font-size: 12px; transition: transform .15s, border-color .15s, background .15s; }
.button:hover { transform: translateY(-1px); border-color: #667582; }
.button.primary { background: var(--accent); border-color: var(--accent); color: #11150b; min-height: 48px; font-size: 14px; display: flex; justify-content: space-between; align-items: center; padding-inline: 17px; }
.button.secondary { background: #1d2730; }
.button.ghost { color: #b8c3cd; }
.button.full { width: 100%; }
.button:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.method-note { margin: 0 7px; color: #6f7d88; font-size: 10px; line-height: 1.55; }

.heading-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.stl-workspace { display: grid; grid-template-columns: minmax(380px, 1.15fr) minmax(420px, 1fr); gap: 12px; margin-bottom: 9px; }
.stl-dropzone.stl-dropzone-hidden { display: none; }
.stl-dropzone, .stl-metadata, .stl-preview { min-height: 178px; border: 1px solid #2a3540; border-radius: 14px; background: #0b1015; }
.stl-dropzone { display: grid; grid-template-columns: auto 1fr; align-content: center; gap: 9px 11px; padding: 16px; outline: none; transition: border-color .15s, background .15s; }
.stl-dropzone:hover, .stl-dropzone:focus, .stl-dropzone.dragover { border-color: var(--accent); background: #10170f; }
.stl-dropzone .button { grid-column: 1 / -1; }
.upload-symbol { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 11px; background: rgb(219 255 74 / 9%); color: var(--accent); font-size: 22px; }
.stl-dropzone strong, .model-empty strong { display: block; font-size: 12px; margin-bottom: 3px; }
.stl-dropzone span, .model-empty span { display: block; color: var(--muted); font-size: 9px; line-height: 1.4; }
.stl-dropzone.uploading { pointer-events: none; opacity: .65; }
.stl-metadata { padding: 14px; display: grid; align-content: center; }
.model-empty { text-align: center; }
.model-file-row { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; padding-bottom: 9px; border-bottom: 1px solid #222d36; }
.model-file-row strong { display: block; max-width: 215px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.model-file-row span { color: var(--muted); font-size: 9px; }
.model-remove { border: 0; background: transparent; color: var(--danger); font-size: 10px; padding: 2px; }
.model-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 11px; margin-top: 10px; }
.model-stat span { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .6px; }
.model-stat strong { display: block; font-size: 11px; margin-top: 2px; }
.import-components { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; padding-top: 9px; border-top: 1px solid #222d36; }.import-components > span { width: 100%; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .6px; }.import-components b { display: inline-flex; align-items: center; gap: 6px; padding: 4px 7px; border: 1px solid #2c3b45; border-radius: 7px; color: #c8d3d9; font-size: 9px; }.import-components small { color: #748590; font-size: 8px; font-weight: 500; }
.unit-row { display: flex; align-items: center; justify-content: space-between; gap: 9px; margin-top: 9px; }
.unit-row span { color: var(--muted); font-size: 9px; }.unit-row select { width: 120px; padding: 6px 8px; font-size: 10px; }
.unit-row input { width: 120px; padding: 6px 8px; font-size: 10px; }
.body-analysis-options { margin-top: 8px; padding-top: 7px; border-top: 1px solid #202a33; }
.body-analysis-options .unit-row { margin-top: 6px; }
.body-analysis-options .compact-check { margin-top: 8px; }
.stl-auto-note { margin: 0 3px 15px; color: #82919c; font-size: 10px; line-height: 1.45; }
.surface-recognition { margin: 0 0 15px; padding: 14px; border: 1px solid rgb(128 216 255 / 28%); border-radius: 13px; background: linear-gradient(120deg, rgb(128 216 255 / 7%), #0b1116 58%); }
.surface-recognition > div:first-child { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.surface-recognition > div:first-child strong { font-size: 13px; }
.surface-recognition > p { margin: 8px 0 12px; color: #9cabb5; font-size: 10px; line-height: 1.5; }
.recognition-metrics { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.recognition-metrics article { padding: 10px; border: 1px solid #2a3741; border-radius: 10px; background: #091016; }
.recognition-metrics span, .recognition-metrics small { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .5px; }
.recognition-metrics strong { display: block; margin: 5px 0 2px; color: var(--accent); font-size: 18px; }
.recognition-metrics small { text-transform: none; letter-spacing: 0; }
.recognition-actions { display: flex; gap: 8px; margin-top: 11px; }.recognition-actions .button.primary { min-height: 37px; font-size: 12px; }
.segment-legend { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 5px; margin-left: 10px; color: #c0cbd2; }
.segment-legend i { width: 9px; height: 9px; border-radius: 3px; }.segment-legend .body { background: #87939a; }.segment-legend .wing { background: #6be15c; }.segment-legend .fin { background: #348cff; }
.mesh-status { display: inline-flex; align-items: center; gap: 5px; }.mesh-status::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--danger); }
.mesh-status.good::before { background: var(--accent); }
.stl-preview { position: relative; overflow: hidden; min-height: 260px; background-color: #0a1015; background-image: linear-gradient(rgb(255 255 255 / 4%) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / 4%) 1px, transparent 1px), radial-gradient(circle at center, #182129, #090e12 75%); background-size: 28px 28px, 28px 28px, 100% 100%; background-position: 0 42px, 0 42px, 0 0; }
.stl-preview canvas { display: block; width: 100%; height: calc(100% - 42px); min-height: 218px; cursor: grab; touch-action: none; }
.stl-preview canvas:active { cursor: grabbing; }

.geometry-layout { display: grid; grid-template-columns: minmax(330px, .9fr) minmax(420px, 1.1fr); gap: 16px; }
.surface-list { display: flex; flex-direction: column; gap: 10px; overflow: visible; min-width: 0; }
.surface-card { background: #0c1116; border: 1px solid #27313a; border-radius: 13px; padding: 13px; }
.surface-card.disabled { opacity: .55; }
.surface-head { display: grid; grid-template-columns: auto 1fr auto; gap: 9px; align-items: center; }
.surface-index { width: 26px; height: 26px; border-radius: 8px; background: var(--accent); color: #11150b; display: grid; place-items: center; font-size: 11px; font-weight: 900; }
.surface-name { background: transparent; border-color: transparent; padding: 6px; font-weight: 750; }
.icon-button { width: 31px; height: 31px; border-radius: 9px; border: 1px solid #303b45; color: var(--muted); background: transparent; }
.surface-quick { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 11px; }
.surface-card details { margin-top: 10px; border-top: 1px solid #202932; padding-top: 9px; }
.surface-card summary, .data-details summary { color: var(--muted); font-size: 11px; cursor: pointer; user-select: none; }
.advanced-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.compact-check { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.compact-check input { width: auto; accent-color: var(--accent); }

.preview-wrap { border: 1px solid #26313a; border-radius: 14px; min-height: 430px; background: radial-gradient(circle at center, #182129, #0a0f14 72%); overflow: hidden; position: relative; }
.preview-wrap::after { content: ""; position: absolute; inset: 42px 0 34px; pointer-events: none; background-image: linear-gradient(rgb(255 255 255 / 3%) 1px, transparent 1px), linear-gradient(90deg, rgb(255 255 255 / 3%) 1px, transparent 1px); background-size: 34px 34px; }
.preview-title { height: 42px; padding: 0 14px; display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid #24303a; }
#planform { width: 100%; height: 360px; position: relative; z-index: 1; }
.legend { position: absolute; left: 13px; bottom: 10px; z-index: 2; display: flex; gap: 13px; color: var(--muted); font-size: 9px; }
.dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; }
.dot.cg { background: var(--danger); }.dot.ac { background: var(--accent-2); }

.tunnel-badge { color: #ffbf69; border-color: rgb(255 191 105 / 25%); }
.tunnel-fullscreen-area { min-width: 0; }
.tunnel-controls { display: grid; grid-template-columns: .78fr 1.12fr 1.12fr .68fr .8fr auto auto auto auto; gap: 9px; align-items: end; margin-bottom: 9px; }
.tunnel-controls label { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; align-items: center; }
.tunnel-controls label > span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.tunnel-controls label > strong { color: var(--accent); font-size: 11px; }
.tunnel-controls input[type="range"] { grid-column: 1 / -1; padding: 0; height: 4px; border: 0; accent-color: var(--accent); }
.tunnel-controls select { grid-column: 1 / -1; padding: 7px 9px; font-size: 11px; }
.tunnel-zoom { display: grid; gap: 6px; }.tunnel-zoom > span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.tunnel-zoom > div { display: flex; height: 32px; }.tunnel-zoom button { min-width: 31px; border: 1px solid #33404b; background: #0b1015; color: var(--text); }
.tunnel-zoom button:first-child { border-radius: 8px 0 0 8px; }.tunnel-zoom button:last-child { border-radius: 0 8px 8px 0; }.tunnel-zoom button + button { border-left: 0; }
.tunnel-zoom b { min-width: 48px; display: inline-block; color: var(--accent); font-size: 9px; }
.tunnel-orientation { display: flex; align-items: end; gap: 12px; margin: 0 0 11px; padding: 9px 11px; border: 1px solid #25313a; border-radius: 10px; background: #0a1015; }
.tunnel-orientation label { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; width: min(220px, 24%); }
.tunnel-orientation label span, .orientation-help { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .55px; }
.tunnel-orientation label strong { color: var(--accent-2); font-size: 10px; }
.tunnel-orientation input { grid-column: 1 / -1; height: 4px; padding: 0; border: 0; accent-color: var(--accent-2); }
.orientation-help { margin-left: auto; align-self: center; text-transform: none; letter-spacing: 0; }
.tunnel-slices { display: flex; gap: 12px; margin: 0 0 11px; padding: 9px 11px; border: 1px solid #25313a; border-radius: 10px; background: linear-gradient(90deg, rgb(84 168 232 / 5%), #0a1015); }
.tunnel-slices label { display: grid; grid-template-columns: 1fr auto; gap: 5px 10px; width: min(420px, 48%); }
.tunnel-slices label span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .55px; }
.tunnel-slices label strong { color: var(--accent); font-size: 10px; }
.tunnel-slices input { grid-column: 1 / -1; height: 4px; padding: 0; border: 0; accent-color: var(--accent); }
.tunnel-stage { position: relative; border: 1px solid #2a3540; border-radius: 14px; overflow: hidden; background: radial-gradient(ellipse at center, #14202a, #080d12 75%); }
#windTunnelCanvas { display: block; width: 100%; height: 430px; cursor: grab; touch-action: none; }
#windTunnelBodyCanvas { position: absolute; inset: 0; z-index: 1; display: block; width: 100%; height: 430px; pointer-events: none; }
#windTunnelCanvas:active { cursor: grabbing; }
.tunnel-overlay { position: absolute; z-index: 2; top: 10px; left: 12px; right: 12px; display: flex; justify-content: space-between; color: #91a0ac; font-size: 9px; text-transform: uppercase; letter-spacing: .7px; pointer-events: none; }
.tunnel-overlay b { color: var(--text); }
.orientation-status { position: absolute; z-index: 2; left: 12px; bottom: 10px; color: #a8bac5; font-size: 9px; letter-spacing: .55px; pointer-events: none; }
.flow-legend { position: absolute; z-index: 2; bottom: 9px; right: 12px; display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.flow-legend i { display: block; width: 100px; height: 5px; border-radius: 9px; background: linear-gradient(90deg, #54a8e8, #dbff4a, #ff9b65); }
.tunnel-note { color: #71808c; font-size: 9px; line-height: 1.5; margin: 9px 3px 0; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) { box-sizing: border-box; position: fixed; inset: 0; z-index: 50; width: 100vw; height: 100vh; padding: 14px; display: flex; flex-direction: column; overflow: hidden; background: #080d12; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) .tunnel-controls { flex: 0 0 auto; grid-template-columns: .7fr 1fr 1fr .65fr .85fr auto auto auto auto; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) .tunnel-orientation,
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) .tunnel-slices { flex: 0 0 auto; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) .tunnel-stage { flex: 1 1 auto; min-height: 280px; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) #windTunnelCanvas,
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) #windTunnelBodyCanvas { height: 100%; }
.tunnel-fullscreen-area:is(:fullscreen, .is-fullscreen) #tunnelFullscreen { border-color: rgb(219 255 74 / 45%); color: var(--accent); }
body.tunnel-fullscreen-open { overflow: hidden; }

.cfd-intro { margin: -4px 0 14px; max-width: 880px; color: #a3b0ba; font-size: 12px; line-height: 1.55; }
.cfd-engine-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.cfd-engine-card { border: 1px solid #2a3540; border-radius: 13px; background: #0b1015; padding: 13px; }
.cfd-engine-card.ready { border-color: rgb(219 255 74 / 42%); background: linear-gradient(120deg, rgb(219 255 74 / 5%), #0b1015 55%); }
.cfd-engine-card > div { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.cfd-engine-card strong { font-size: 13px; }
.cfd-engine-card p { margin: 8px 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.cfd-engine-card.ready p { color: var(--accent); }
.cfd-engine-card a { color: var(--accent-2); font-size: 10px; text-decoration: none; }
.cfd-engine-card a:hover { text-decoration: underline; }
.cfd-engine-tag { color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .55px; }
.cfd-controls { display: grid; grid-template-columns: 1fr 1fr auto auto; gap: 9px; align-items: end; margin-top: 12px; }
.cfd-controls label { display: grid; gap: 6px; }
.cfd-controls label span { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.cfd-controls select { padding: 9px; font-size: 11px; }
.cfd-controls .button.primary { min-height: 37px; font-size: 12px; }
.cfd-job { margin-top: 12px; padding: 13px; border: 1px solid #2b3741; border-radius: 13px; background: linear-gradient(120deg, #111a20, #0b1116); }
.cfd-job-heading { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.cfd-job-heading > div { display: grid; gap: 3px; }
.cfd-job-heading strong { font-size: 12px; }
.cfd-job-heading span, #cfdJobPercent { color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.cfd-progress { height: 6px; overflow: hidden; margin: 10px 0 8px; border-radius: 99px; background: #26313a; }
.cfd-progress i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--accent-2), var(--accent)); transition: width .3s; }
.cfd-job > p { margin: 0; color: #aab6bf; font-size: 11px; line-height: 1.45; }
.cfd-job-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
.cfd-job-actions .button { text-decoration: none; min-height: auto; }
.cfd-metrics { display: grid; grid-template-columns: repeat(3, minmax(80px, 130px)); gap: 8px; margin-top: 10px; }
.cfd-metrics div { border-left: 2px solid var(--accent); padding: 5px 8px; }
.cfd-metrics span { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; }
.cfd-metrics strong { display: block; margin-top: 2px; font-size: 14px; }
.cfd-note { margin: 10px 3px 0; color: #71808c; font-size: 9px; line-height: 1.5; }

.results-panel { min-height: 320px; }
.empty-state { min-height: 225px; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }
.empty-state h3 { margin: 5px 0; color: var(--text); font-size: 17px; }
.empty-state p { max-width: 420px; margin: 0; font-size: 12px; }
.airflow-mark { color: var(--accent); font-size: 55px; font-family: Georgia, serif; line-height: .8; transform: rotate(-8deg); }
.summary-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-bottom: 14px; }
.metric { padding: 13px; border: 1px solid #28333d; border-radius: 12px; background: #0b1015; }
.metric span { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .8px; margin-bottom: 6px; }
.metric strong { font-size: 20px; letter-spacing: -.7px; }
.metric small { color: var(--muted); font-size: 10px; margin-left: 4px; }
.metric.good strong { color: var(--accent); }.metric.bad strong { color: var(--danger); }
.body-results { margin-bottom: 12px; border: 1px solid #2d3943; border-radius: 13px; background: linear-gradient(100deg, #111a20, #0b1116); padding: 13px; }
.body-results-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.body-results-head h3 { margin: 0; font-size: 12px; }.body-results-head span { color: var(--accent-2); font-size: 9px; text-transform: uppercase; letter-spacing: .8px; }
.body-results-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; }
.body-result { padding: 8px 9px; border-left: 1px solid #2b3741; }
.body-result:first-child { border-left: 0; }.body-result span { display: block; color: var(--muted); font-size: 8px; text-transform: uppercase; letter-spacing: .5px; }.body-result strong { display: block; font-size: 13px; margin-top: 4px; }
.chart-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 11px; }
.chart-card { margin: 0; padding: 13px; background: #0b1015; border: 1px solid #28333d; border-radius: 13px; min-width: 0; }
.chart-card > div { display: flex; justify-content: space-between; gap: 8px; align-items: baseline; margin-bottom: 8px; }
.chart-card h3 { margin: 0; font-size: 12px; }.chart-card span { color: var(--muted); font-size: 9px; }
.chart-card canvas { display: block; width: 100%; height: 220px; }
.warnings { display: grid; gap: 7px; margin-top: 12px; }
.warning { border-left: 2px solid #e8b65c; background: #221c12; color: #d9c5a1; padding: 9px 11px; font-size: 11px; border-radius: 0 8px 8px 0; }
.data-details { margin-top: 13px; }
.table-wrap { overflow: auto; max-height: 360px; margin-top: 10px; border: 1px solid #27313a; border-radius: 10px; }
table { width: 100%; border-collapse: collapse; font-size: 11px; }
th, td { text-align: right; padding: 8px 10px; border-bottom: 1px solid #202932; white-space: nowrap; }
th { color: var(--muted); position: sticky; top: 0; background: #121820; }

.toast { position: fixed; right: 20px; bottom: 20px; max-width: 380px; background: #eef5f6; color: #111820; border-radius: 11px; padding: 11px 15px; font-size: 12px; font-weight: 700; transform: translateY(90px); opacity: 0; transition: .2s; z-index: 20; }
.toast.show { transform: translateY(0); opacity: 1; }.toast.error { background: #ffb3a5; }

.propulsion-shell { max-width: 1460px; margin: 0 auto; padding: 20px; }
.propulsion-hero { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.propulsion-hero h2 { margin: 3px 0 7px; font-size: 25px; }
.propulsion-hero p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.engine-selector-panel { margin-bottom:18px; }.engine-type-row { display:grid;grid-template-columns:minmax(320px,.75fr) minmax(320px,1.25fr);gap:14px;align-items:stretch; }.engine-type-row .field { margin:0; }.active-engine-note { display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-content:center;padding:12px 14px;border:1px solid rgb(219 255 74 / 28%);border-radius:10px;background:rgb(219 255 74 / 5%); }.active-engine-note span { color:var(--muted);font-size:8px;text-transform:uppercase; }.active-engine-note strong { color:var(--accent);font-size:13px;text-align:right; }.active-engine-note small { grid-column:1/-1;margin-top:5px;color:#9fb0b9;font-size:9px; }.engine-kind-panel[hidden] { display:none!important; }.engine-subhero { margin:0 0 18px; }
.propulsion-layout { display: grid; grid-template-columns: minmax(420px, .9fr) minmax(520px, 1.1fr); gap: 18px; align-items: start; }
.propulsion-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-bottom: 15px; }
.propulsion-grid .wide { grid-column: 1 / -1; margin: 0; }
.drive-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.drive-metric { min-height: 94px; padding: 13px; border: 1px solid #2b3741; border-radius: 12px; background: #0b1015; }
.drive-metric span { display: block; min-height: 25px; color: var(--muted); font-size: 9px; text-transform: uppercase; letter-spacing: .6px; }
.drive-metric strong { display: inline-block; margin-top: 7px; color: var(--accent); font-size: 21px; white-space: nowrap; }
.drive-metric small { display: inline-block; margin-left: 5px; color: #84929c; font-size: 10px; white-space: nowrap; }
.drive-gauges { display: grid; gap: 10px; margin-top: 15px; }
.drive-gauges article { padding: 11px 13px; border: 1px solid #28333d; border-radius: 11px; background: #0b1015; }
.drive-gauges article div { display: flex; justify-content: space-between; margin-bottom: 7px; font-size: 11px; }
.drive-gauges article span { color: var(--muted); }
.drive-gauges progress { width: 100%; height: 7px; border: 0; accent-color: var(--accent); }
.drive-explanation { margin-top: 15px; padding: 14px; border-radius: 12px; background: linear-gradient(120deg, rgb(128 216 255 / 7%), #0b1015); }
.drive-explanation h3 { margin: 0 0 7px; font-size: 12px; }
.drive-explanation p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.drive-chart-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 15px; }
.drive-chart canvas { height: 245px; }
.chart-legend { display: flex; flex-wrap: wrap; gap: 7px 12px; margin-top: 8px; color: var(--muted); font-size: 9px; }
.chart-legend span { display: inline-flex; align-items: center; gap: 5px; }
.chart-legend i { width: 14px; height: 3px; border-radius: 4px; }
.drive-table-details { padding: 12px; border: 1px solid #28333d; border-radius: 12px; background: #0b1015; }
.drive-table-details summary { color: var(--text); font-weight: 750; }
.drive-table-details .table-wrap { max-height: 330px; }
.drive-table-details table { width: 100%; min-width: 900px; }
.drive-table-details tbody tr:last-child { color: var(--accent); font-weight: 750; }
.propulsion-tables { display: grid; gap: 14px; width: 100%; margin-top: 18px; }
.propulsion-tables .drive-explanation { margin-top: 0; }
.help-shell { max-width: 1460px; margin: 0 auto; padding: 20px; }
.help-hero { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.help-hero h2 { margin: 3px 0 7px; font-size: 27px; }.help-hero p:last-child { margin: 0; color: var(--muted); font-size: 12px; }
.help-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; align-items: start; }
.help-toc { position: sticky; top: 114px; display: grid; gap: 4px; padding: 13px; }
.help-toc strong { padding: 6px 9px 10px; color: var(--text); font-size: 12px; }.help-toc a { padding: 8px 9px; border-radius: 8px; color: var(--muted); font-size: 11px; text-decoration: none; }.help-toc a:hover { color: var(--accent); background: rgb(219 255 74 / 6%); }
.help-content { display: grid; gap: 18px; min-width: 0; }.help-section { scroll-margin-top: 112px; }
.help-section h2 { margin: 4px 0 14px; font-size: 22px; }.help-section h3 { margin: 0 0 7px; font-size: 13px; }
.help-section p, .help-section li, .help-section dd { color: #a8b4bd; font-size: 12px; line-height: 1.65; }.help-section b, .help-section dt { color: var(--text); }
.help-section ol, .help-section ul { margin: 10px 0; padding-left: 22px; }.help-section li + li { margin-top: 7px; }
.help-section img { display: block; width: 100%; max-height: 620px; margin: 14px 0 7px; object-fit: contain; object-position: center; border: 1px solid #2b3741; border-radius: 13px; background: #080d12; }
.help-caption { margin: 0 4px 15px !important; color: #748592 !important; font-size: 10px !important; }
.help-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 14px 0; }.help-grid > div { padding: 14px; border: 1px solid #29353e; border-radius: 12px; background: #0b1015; }.help-grid p { margin: 0; }
.help-callout { margin-top: 14px; padding: 12px 14px; border-left: 3px solid var(--accent-2); border-radius: 9px; background: rgb(128 216 255 / 7%); color: #b8c5cd; font-size: 12px; line-height: 1.55; }.help-callout.warning { border-left-color: var(--danger); background: rgb(255 139 117 / 7%); }
.help-section dl { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.help-section dl > div { padding: 12px; border: 1px solid #29353e; border-radius: 10px; background: #0b1015; }.help-section dt { font-size: 12px; font-weight: 800; }.help-section dd { margin: 4px 0 0; }
.help-section code { padding: 2px 5px; border-radius: 5px; background: #081016; color: var(--accent-2); }
.launch-shell { max-width: 1460px; margin: 0 auto; padding: 20px; }.launch-layout { display: grid; grid-template-columns: 390px minmax(0,1fr); gap: 18px; align-items: start; }.launch-controls { display: grid; gap: 13px; }.launch-type-fields { padding-top: 2px; }.launch-simulation { min-width: 0; }

.brand-home { appearance:none; border:0; padding:0; color:inherit; background:transparent; cursor:pointer; }.language-switcher { display:flex; gap:2px; border:1px solid #2d3c46; border-radius:9px; padding:3px; background:#0d1720; margin-left:auto; }.language-switcher button { border:0; background:transparent; color:#8fa0ad; font:700 11px/1 system-ui; padding:7px 8px; cursor:pointer; border-radius:6px; }.language-switcher button.active { color:#101910; background:#d6ff37; }
.landing-shell { max-width:1360px; margin:0 auto; padding:28px 20px 48px; display:grid; gap:26px; }.landing-hero { overflow:hidden; position:relative; min-height:500px; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr); align-items:center; gap:34px; padding:54px; border:1px solid #30414c; border-radius:24px; background:radial-gradient(circle at 78% 32%,rgba(85,186,220,.18),transparent 28%),linear-gradient(135deg,#0f202b,#081116 72%); }.landing-copy { position:relative; z-index:2; max-width:660px; }.landing-copy h2,.landing-section h2,.landing-callout h2 { margin:8px 0 16px; color:#f0f7f9; font-size:clamp(34px,4.5vw,64px); line-height:1.03; letter-spacing:-.045em; }.landing-copy>p:not(.eyebrow):not(.landing-note),.landing-section>div>p,.landing-callout p { max-width:660px; color:#a7bac4; font-size:18px; line-height:1.65; }.landing-actions { display:flex; gap:11px; margin:26px 0 16px; flex-wrap:wrap; }.landing-note { color:#7e929d; font-size:13px; line-height:1.5; }.landing-visual { position:relative; min-height:390px; border:1px solid rgba(160,215,227,.16); border-radius:18px; overflow:hidden; background:#091217; }.landing-grid { position:absolute; inset:0; opacity:.44; background-image:linear-gradient(#1d3641 1px,transparent 1px),linear-gradient(90deg,#1d3641 1px,transparent 1px); background-size:38px 38px; }.landing-plane { position:absolute; width:235px; height:82px; left:22%; top:41%; transform:rotate(-8deg); filter:drop-shadow(0 15px 16px rgba(0,0,0,.55)); }.landing-plane i { position:absolute; width:100%; height:40px; top:20px; background:linear-gradient(120deg,#dff9f8,#5fc4d3); clip-path:polygon(0 50%,42% 18%,100% 36%,88% 52%,40% 70%); }.landing-plane b { position:absolute; width:120px; height:80px; left:60px; top:0; background:linear-gradient(135deg,#9ee8eb,#428ca2); clip-path:polygon(0 50%,100% 0,76% 56%,100% 100%); }.landing-plane em { position:absolute; left:188px; top:10px; width:34px; height:66px; background:#7ab6c7; clip-path:polygon(0 65%,100% 0,78% 100%); }.landing-flow { position:absolute; inset:0; }.landing-flow span { position:absolute; left:-15%; width:130%; border-top:1px solid rgba(205,255,75,.62); transform:rotate(-8deg); }.landing-flow span:nth-child(1){top:22%}.landing-flow span:nth-child(2){top:34%}.landing-flow span:nth-child(3){top:49%}.landing-flow span:nth-child(4){top:63%}.landing-flow span:nth-child(5){top:76%}.landing-readout { position:absolute; right:18px; bottom:18px; display:grid; gap:3px; padding:11px 13px; border:1px solid rgba(214,255,55,.45); background:rgba(9,18,23,.86); color:#d6ff37; }.landing-readout small { color:#a9bdc7; }.landing-section { display:grid; grid-template-columns:minmax(250px,.6fr) minmax(580px,1.4fr); gap:34px; padding:30px 0; }.landing-section h2,.landing-callout h2 { font-size:34px; }.landing-modules { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }.landing-modules article { min-height:155px; padding:20px; border:1px solid #263842; background:#0c171e; }.landing-modules span { color:#d6ff37; font:700 12px system-ui; }.landing-modules h3 { margin:16px 0 7px; color:#e9f1f4; }.landing-modules p { margin:0; color:#91a6b1; font-size:14px; line-height:1.5; }.landing-process { display:grid; grid-template-columns:.7fr 1.3fr; padding:34px; border:1px solid #263842; background:#0b151b; }.landing-process ol { display:grid; gap:18px; margin:0; padding:0; list-style:none; }.landing-process li { display:flex; gap:14px; color:#d9e5e9; }.landing-process li>b { display:grid; place-items:center; flex:0 0 30px; height:30px; border-radius:50%; background:#d6ff37; color:#14201d; }.landing-process li div { display:grid; gap:5px; }.landing-process li span { color:#91a6b1; font-size:14px; line-height:1.45; }.landing-callout { display:flex; align-items:center; justify-content:space-between; gap:25px; padding:34px; border:1px solid #547166; background:linear-gradient(110deg,#11231f,#101b21); }.landing-callout h2 { font-size:30px; }.landing-callout p { margin-bottom:0; font-size:15px; }
.landing-insights { display:grid; grid-template-columns:minmax(280px,.75fr) minmax(520px,1.25fr); gap:28px; padding:36px; border:1px solid #263842; background:linear-gradient(120deg,#0d1920,#0a1117); }.landing-insight-copy h2 { margin:8px 0 14px; color:#edf5f7; font-size:34px; line-height:1.08; letter-spacing:-.035em; }.landing-insight-copy>p { color:#91a6b1; line-height:1.6; }.landing-insight-copy ul { display:grid; gap:12px; margin:22px 0 0; padding:0; list-style:none; }.landing-insight-copy li { display:grid; gap:3px; padding-left:14px; border-left:2px solid #d6ff37; }.landing-insight-copy li b { color:#e8f2f4; }.landing-insight-copy li span { color:#8ca2ad; font-size:13px; }.landing-charts { display:grid; grid-template-columns:1fr 1fr; gap:12px; }.landing-charts article { padding:18px; border:1px solid #28404a; background:#091319; }.landing-charts article>div { display:grid; gap:4px; }.landing-charts span { color:#8298a3; font-size:12px; }.landing-charts strong { color:#dce8ec; font-size:14px; }.landing-charts svg { width:100%; height:auto; margin-top:15px; overflow:visible; }.landing-charts text { font:10px system-ui; fill:#738996; }.chart-axis { stroke:#536772; stroke-width:1.2; fill:none; }.chart-gridline { stroke:#263a44; stroke-width:1; stroke-dasharray:3 4; }.chart-lift,.chart-drag,.chart-thrust,.chart-thrust-muted { fill:none; stroke-width:3; }.chart-lift{stroke:#d6ff37}.chart-drag{stroke:#78d9ff}.chart-thrust{stroke:#d6ff37}.chart-thrust-muted{stroke:#4e9dc0;stroke-dasharray:7 5}.chart-lift-label{fill:#d6ff37!important}.chart-drag-label{fill:#78d9ff!important}.chart-thrust-label{fill:#d6ff37!important}.chart-thrust-muted-label{fill:#78d9ff!important}.landing-faq { align-items:start; }.landing-faq-list { display:grid; gap:10px; }.landing-faq-list article { padding:18px 20px; border:1px solid #273b45; background:#0c171e; }.landing-faq-list strong { color:#e7f0f3; }.landing-faq-list p { margin:8px 0 0; color:#92a7b1; line-height:1.5; font-size:14px; }

@media (max-width:960px){.landing-insights{grid-template-columns:1fr}}@media (max-width:620px){.landing-insights{padding:23px}.landing-charts{grid-template-columns:1fr}}
.field small { display:block; margin-top:5px; color:var(--muted); font-size:9px; line-height:1.35; }
#launchCanvas { display: block; width: 100%; height: 430px; border: 1px solid #2a3741; border-radius: 13px; background: #0a141b; }.launch-timeline { display: grid; grid-template-columns: auto minmax(120px,1fr) auto auto; gap: 8px; align-items: start; margin-top: 12px; }.launch-scrubber { position:relative; min-width:0; padding-bottom:24px; }.launch-scrubber input { width:100%; margin-top:9px; }.launch-ticks { position:absolute; inset:27px 8px auto 8px; height:18px; border-top:1px solid #43515b; }.launch-ticks i { position:absolute; top:-4px; width:1px; height:4px; background:#687782; }.launch-ticks i.major { top:-7px; height:7px; background:#9cabb4; }.launch-ticks span { position:absolute; top:7px; transform:translateX(-50%); color:var(--muted); font-size:8px; white-space:nowrap; }.launch-ticks span.edge-start { transform:none; }.launch-ticks span.edge-end { transform:translateX(-100%); }.button.compact { min-height:38px;padding:8px 13px;font-size:11px; }.launch-metrics { display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px; }.launch-metrics article { padding: 11px; border: 1px solid #293640; border-radius: 10px; background: #0b1015; }.launch-metrics span { display:block;color:var(--muted);font-size:8px;text-transform:uppercase; }.launch-metrics strong { display:block;margin-top:5px;color:var(--accent);font-size:16px; }.launch-metrics strong.unsafe { color:var(--danger); }.launch-events { display:flex;flex-wrap:wrap;gap:7px;margin-top:10px; }.launch-events span { display:inline-flex;gap:6px;padding:6px 8px;border-radius:7px;background:rgb(128 216 255 / 8%);color:#a8bac4;font-size:9px; }.launch-events b { color:var(--accent-2); }
.launch-recommendations { margin-top:18px;padding:18px;border:1px solid #2b3943;border-radius:14px;background:linear-gradient(145deg,#0d171e,#0a1015); }.launch-recommendations-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:14px; }.launch-recommendations-heading h3 { margin:3px 0 0;font-size:17px; }.launch-recommendations-heading .eyebrow { margin:0; }.launch-recommendations .badge.safe { border-color:rgb(190 255 46 / 42%);color:var(--accent); }.launch-recommendations .badge.unsafe { border-color:rgb(255 115 97 / 50%);color:var(--danger); }.launch-recommendation-summary { margin:12px 0;color:#aebdc6;font-size:11px;line-height:1.55; }.launch-recommendation-list { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px; }.launch-recommendation { display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px;border:1px solid #26343d;border-radius:11px;background:#0a1116; }.launch-recommendation-icon { display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:rgb(128 216 255 / 12%);color:var(--accent-2);font-weight:800; }.launch-recommendation h4 { margin:0 0 4px;font-size:11px; }.launch-recommendation p { margin:0;color:#91a3ad;font-size:9px;line-height:1.55; }.launch-recommendation strong { align-self:center;color:#dce7eb;font-size:10px;white-space:nowrap; }.launch-recommendation.critical { border-color:rgb(255 115 97 / 45%); }.launch-recommendation.critical .launch-recommendation-icon { background:rgb(255 115 97 / 14%);color:var(--danger); }.launch-recommendation.warning { border-color:rgb(255 190 70 / 30%); }.launch-recommendation.warning .launch-recommendation-icon { background:rgb(255 190 70 / 12%);color:#ffc35c; }.launch-recommendation.good { border-color:rgb(190 255 46 / 28%); }.launch-recommendation.good .launch-recommendation-icon { background:rgb(190 255 46 / 11%);color:var(--accent); }
.preset-bar { display: grid; grid-template-columns: 1.2fr 1fr auto auto; gap: 8px; margin: 0 0 12px; padding-top: 12px; border-top: 1px solid #28333d; }
.preset-bar input, .preset-bar select { min-width: 0; }
.balance-shell { max-width: 1280px; margin: 0 auto; padding: 20px; }
.balance-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
.balance-note { margin: 0 0 13px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.balance-table-head, .balance-row { display: grid; grid-template-columns: minmax(140px, 1.4fr) 110px 130px 34px; gap: 8px; align-items: center; }
.balance-table-head { padding: 0 4px 7px; color: var(--muted); font-size: 9px; text-transform: uppercase; }
.balance-items { display: grid; gap: 8px; margin-bottom: 14px; }
.balance-row { padding: 8px; border: 1px solid #29353e; border-radius: 11px; background: #0b1015; }.balance-row input { min-width: 0; }
.balance-metrics { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.balance-metrics article { padding: 13px; border: 1px solid #29353e; border-radius: 12px; background: #0b1015; }
.balance-metrics span, .balance-metrics small { display: block; color: var(--muted); font-size: 9px; text-transform: uppercase; }.balance-metrics strong { display: block; margin: 6px 0 2px; color: var(--accent); font-size: 23px; }
.balance-diagram { position: relative; height: 280px; margin: 15px 0; overflow: hidden; border: 1px solid #29353e; border-radius: 13px; background: radial-gradient(circle at center,#15212a,#091016 72%); }
#balancePlanformCanvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.balance-axis { position: absolute; left: 6%; right: 6%; top: 50%; height: 1px; background: rgb(128 151 164 / 42%); }.balance-axis::before { content: "НІС"; position: absolute; left: 0; top: 9px; color: var(--muted); font-size: 9px; }.balance-axis::after { content: "ХВІСТ"; position: absolute; right: 0; top: 9px; color: var(--muted); font-size: 9px; }
.balance-wing-band { position: absolute; top: 12%; height: 76%; border: 1px solid rgb(219 255 74 / 25%); background: rgb(219 255 74 / 4%); }
.balance-marker { position: absolute; top: 8%; width: 2px; height: 84%; transform: translateX(-1px); }.balance-marker b { position: absolute; left: 6px; top: -3px; font-size: 10px; }.balance-marker.cg { background: var(--danger); color: var(--danger); }.balance-marker.np { background: var(--accent-2); color: var(--accent-2); }
.balance-cg-distance { position: absolute; left: 12px; bottom: 10px; padding: 5px 8px; border: 1px solid rgb(255 116 103 / 32%); border-radius: 7px; background: rgb(9 16 22 / 86%); color: #ff8a7e; font-size: 10px; font-weight: 750; }
.balance-legend { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: -4px 2px 14px; color: var(--muted); font-size: 10px; }
.balance-legend span { display: inline-flex; align-items: center; gap: 5px; }.balance-legend span > i { width: 18px; height: 2px; border-radius: 3px; }.balance-legend i.cg { background: var(--danger); }.balance-legend i.np { background: var(--accent-2); }.balance-legend b { color: var(--text); }
.balance-results > .button { margin-top: 12px; }
.ai-advisor-toggle { position:fixed;right:0;top:38%;z-index:42;display:grid;gap:2px;justify-items:center;padding:12px 8px;border:1px solid rgb(219 255 74 / 45%);border-right:0;border-radius:12px 0 0 12px;background:#10191f;color:var(--accent);box-shadow:0 12px 35px rgb(0 0 0 / 45%);cursor:pointer; }.ai-advisor-toggle span { display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--accent);color:#071014;font-weight:900; }.ai-advisor-toggle b { font-size:8px;writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:.08em; }.ai-advisor { position:fixed;z-index:43;top:70px;right:12px;bottom:12px;width:min(390px,calc(100vw - 24px));display:flex;flex-direction:column;padding:16px;border:1px solid #35434d;border-radius:16px;background:rgb(9 15 20 / 97%);box-shadow:0 24px 80px rgb(0 0 0 / 65%);backdrop-filter:blur(18px);transition:transform .22s ease,opacity .22s ease; }.ai-advisor.collapsed { transform:translateX(calc(100% + 24px));opacity:0;pointer-events:none; }.ai-advisor header { display:flex;justify-content:space-between;gap:14px;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid #26323b; }.ai-advisor header h2 { margin:3px 0 0;font-size:19px; }.ai-advisor header .eyebrow { margin:0; }.ai-advisor-source { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px; }.ai-advisor-source small { color:var(--muted);font-size:8px;text-align:right; }.ai-advisor-summary { margin:12px 0;color:#b9c7ce;font-size:11px;line-height:1.55; }.ai-advisor-list { flex:1;min-height:100px;overflow:auto;display:grid;align-content:start;gap:8px;padding-right:3px; }.ai-advice-card { display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;padding:10px;border:1px solid #293741;border-radius:10px;background:#0a1116; }.ai-advice-card i { display:grid;place-items:center;width:21px;height:21px;border-radius:50%;background:rgb(128 216 255 / 12%);color:var(--accent-2);font-style:normal;font-weight:800; }.ai-advice-card h3 { margin:0;font-size:10px; }.ai-advice-card h3 span { margin-left:5px;color:var(--muted);font-size:7px;text-transform:uppercase; }.ai-advice-card p { margin:4px 0 0;color:#94a6af;font-size:9px;line-height:1.5; }.ai-advice-card strong { display:block;margin-top:5px;color:#d9e5e9;font-size:9px;line-height:1.45; }.ai-advice-card.critical { border-color:rgb(255 101 91 / 45%); }.ai-advice-card.critical i { color:var(--danger);background:rgb(255 101 91 / 12%); }.ai-advice-card.warning { border-color:rgb(255 190 70 / 32%); }.ai-advice-card.warning i { color:#ffc35c;background:rgb(255 190 70 / 10%); }.ai-advice-card.good { border-color:rgb(219 255 74 / 28%); }.ai-advice-card.good i { color:var(--accent);background:rgb(219 255 74 / 10%); }.ai-advisor-question { margin-top:10px; }.ai-advisor-question .field { margin:0; }.ai-advisor-question textarea { resize:vertical;min-height:55px; }.ai-advisor footer { display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:9px; }.ai-advisor-note { margin:9px 0 0;color:#6f828d;font-size:8px;line-height:1.45; }

@media (max-width: 1180px) {
  .topbar { grid-template-columns: auto 1fr; }.top-actions { grid-column: 1 / -1; justify-content: center; }
  .shell { grid-template-columns: 290px minmax(0, 1fr); }
  .geometry-layout, .chart-grid { grid-template-columns: 1fr; }
  .preview-wrap { min-height: 390px; }
  .summary-grid { grid-template-columns: repeat(3, 1fr); }
  .body-results-grid { grid-template-columns: repeat(4, 1fr); }
  .stl-workspace { grid-template-columns: 1fr 1fr; }.stl-preview { grid-column: 1 / -1; }
  .tunnel-controls { grid-template-columns: 1fr 1fr 1fr; }
  .tunnel-orientation { flex-wrap: wrap; }.tunnel-orientation label { width: 38%; }.orientation-help { width: 100%; margin-left: 0; }
  .cfd-controls { grid-template-columns: 1fr 1fr; }
  .propulsion-layout { grid-template-columns: 1fr; }
  .balance-layout { grid-template-columns: 1fr; }
  .drive-chart-grid { grid-template-columns: 1fr; }
  .recognition-metrics { grid-template-columns: repeat(3, 1fr); }
  .help-layout { grid-template-columns: 1fr; }.help-toc { position: static; grid-template-columns: repeat(3, 1fr); }.help-toc strong { grid-column: 1 / -1; }
  .launch-layout { grid-template-columns: 1fr; }
  .landing-hero,.landing-section,.landing-process { grid-template-columns:1fr; }.landing-hero { padding:30px; }.landing-visual { min-height:300px; }.landing-callout { align-items:flex-start; flex-direction:column; }
}
@media (max-width: 780px) {
  .topbar { position: static; display: flex; align-items: flex-start; flex-direction: column; padding: 17px; }
  .module-nav { width: 100%; justify-content: flex-start; overflow-x: auto; }
  .help-shell { padding: 12px; }.help-hero { align-items: flex-start; flex-direction: column; }.help-toc { grid-template-columns: 1fr 1fr; }.help-grid, .help-section dl { grid-template-columns: 1fr; }
  .module-nav { width: 100%; min-width: 0; }.module-menu-button { width: 100%; }.module-menu { left: 0; width: min(320px,100%); transform: none; }.launch-shell { padding: 10px; }.launch-timeline { grid-template-columns: 1fr 1fr; }.launch-timeline input { grid-column:1/-1;grid-row:1; }.launch-metrics { grid-template-columns:1fr 1fr; }.launch-recommendation-list { grid-template-columns:1fr; }.launch-recommendation { grid-template-columns:28px minmax(0,1fr); }.launch-recommendation strong { grid-column:2; }
  .shell { grid-template-columns: 1fr; padding: 10px; }
  .sidebar { position: static; }
  .surface-quick, .advanced-grid { grid-template-columns: 1fr 1fr; }
  .summary-grid { grid-template-columns: 1fr 1fr; }
  .body-results-grid { grid-template-columns: 1fr 1fr; }
  .stl-workspace { grid-template-columns: 1fr; }.stl-preview { grid-column: auto; }
  .tunnel-controls { grid-template-columns: 1fr 1fr; }
  .tunnel-orientation label { width: 100%; }
  #windTunnelCanvas, #windTunnelBodyCanvas { height: 300px; }
  .cfd-engine-grid, .cfd-controls { grid-template-columns: 1fr; }
  .recognition-metrics { grid-template-columns: 1fr 1fr; }
  .propulsion-shell { padding: 10px; }.propulsion-hero { align-items: flex-start; gap: 12px; }.propulsion-grid, .drive-metrics { grid-template-columns: 1fr 1fr; }.preset-bar { grid-template-columns: 1fr 1fr; }
  .engine-type-row { grid-template-columns:1fr; }
  .ai-advisor { top:8px;right:8px;bottom:8px;width:calc(100vw - 16px); }.ai-advisor-toggle { top:auto;bottom:18px; }
  .landing-shell { padding:10px; }.landing-hero { padding:24px; border-radius:16px; }.landing-copy h2 { font-size:38px; }.landing-modules { grid-template-columns:1fr; }.landing-process,.landing-callout { padding:23px; }
  .balance-shell { padding: 10px; }.balance-table-head { display: none; }.balance-row { grid-template-columns: 1fr 1fr 34px; }.balance-row input:first-child { grid-column: 1 / -1; }
}
