@import '_content/BlazorLib/BlazorLib.c3zhb07sin.bundle.scp.css';
@import '_content/Microsoft.AspNetCore.Components.QuickGrid/Microsoft.AspNetCore.Components.QuickGrid.boiwgh0w5b.bundle.scp.css';

/* /Components/DeltaVCalculator.razor.rz.scp.css */

.dv-calc[b-ol7ezjrwga] {
    --bg: #0d1117;
    --panel: #161b22;
    --card: #1a2035;
    --card2: #1e2a45;
    --border: #30363d;
    --text: #e2e8f0;
    --muted: #8b949e;
    --accent: #58a6ff;
    --green: #3fb950;
    --yellow: #d29922;
    --orange: #f0883e;
    --red: #f85149;
    --teal: #39d353;

    font-family: 'Segoe UI', system-ui, sans-serif;
    background: var(--bg);
    color: var(--text);
    padding: 1rem;
    border-radius: 12px;
}

.muted[b-ol7ezjrwga] {
    color: var(--muted);
}

/* ── HEADER ── */
.dv-header[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: .6rem 1rem;
    margin-bottom: 1rem;
}

.dv-title[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.dv-title__text[b-ol7ezjrwga] {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 700;
    color: var(--accent);
}

.header-group[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .5rem;
}

.header-label[b-ol7ezjrwga] {
    font-size: .7rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.hdr-select[b-ol7ezjrwga] {
    background: var(--card);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: .3rem .5rem;
    font-size: .85rem;
    cursor: pointer;
}

.hdr-input-wrap[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 6px;
}

.hdr-input[b-ol7ezjrwga] {
    width: 70px;
    background: none;
    border: none;
    outline: none;
    color: var(--text);
    padding: .3rem .4rem;
    font-size: .85rem;
    text-align: right;
}

.hdr-unit[b-ol7ezjrwga] {
    padding-right: .5rem;
    font-size: .75rem;
    color: var(--muted);
}

.body-pill[b-ol7ezjrwga] {
    font-size: .72rem;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-weight: 600;
    color: #fff;
    opacity: .9;
}

.body-pill--atm[b-ol7ezjrwga] {
    background: #2a4a6a;
}

.body-pill--vac[b-ol7ezjrwga] {
    background: #2a2a4a;
}

/* ── LAYOUT ── */
.dv-layout[b-ol7ezjrwga] {
    display: grid;
    grid-template-columns: 290px 1fr 320px;
    gap: 1rem;
    align-items: start;
}


@media (max-width: 1100px) {
    .dv-layout[b-ol7ezjrwga] {
        grid-template-columns: 1fr 1fr;
    }
}


@media (max-width: 700px) {
    .dv-layout[b-ol7ezjrwga] {
        grid-template-columns: 1fr;
    }
}

/* ── PANELS ── */
.dv-panel[b-ol7ezjrwga] {
    background: var(--panel);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 1rem;
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

.panel-title[b-ol7ezjrwga] {
    margin: 0;
    font-size: .95rem;
    font-weight: 600;
    color: var(--accent);
}

/* ── SEARCH ── */
.search-bar[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .4rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: .3rem .6rem;
}

.search-input[b-ol7ezjrwga] {
    flex: 1;
    background: none;
    border: none;
    outline: none;
    color: var(--text);
    font-size: .88rem;
}

.btn-icon[b-ol7ezjrwga] {
    background: none;
    border: none;
    color: var(--muted);
    cursor: pointer;
    font-size: .8rem;
}

.btn-icon:hover[b-ol7ezjrwga] {
    color: var(--red);
}

/* ── TABS CATALOGUE ── */
.tabs[b-ol7ezjrwga] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
}

.tab[b-ol7ezjrwga] {
    font-size: .7rem;
    padding: .22rem .5rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--card);
    color: var(--muted);
    cursor: pointer;
}

.tab:hover[b-ol7ezjrwga] {
    border-color: var(--accent);
    color: var(--text);
}

.tab--active[b-ol7ezjrwga] {
    background: var(--accent);
    color: #000;
    border-color: var(--accent);
    font-weight: 600;
}

/* ── PART LIST ── */
.part-list[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    gap: .3rem;
    max-height: 440px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--border) transparent;
}

.part-card[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: .35rem .55rem;
    transition: all .12s;
}

.part-card--catalog[b-ol7ezjrwga] {
    cursor: pointer;
}

.part-card--catalog:hover[b-ol7ezjrwga] {
    background: var(--card2);
    border-color: var(--accent);
    transform: translateX(2px);
}

.part-icon[b-ol7ezjrwga] {
    font-size: 1rem;
    flex-shrink: 0;
}

.part-info[b-ol7ezjrwga] {
    flex: 1;
    min-width: 0;
}

.part-name[b-ol7ezjrwga] {
    display: block;
    font-size: .82rem;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.part-stats[b-ol7ezjrwga] {
    display: block;
    font-size: .68rem;
    color: var(--muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.btn-add[b-ol7ezjrwga] {
    color: var(--green);
    border: 1px solid var(--green);
    background: none;
    border-radius: 5px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .9rem;
    flex-shrink: 0;
    cursor: pointer;
}

.btn-add:hover[b-ol7ezjrwga] {
    background: var(--green);
    color: #000;
}

.btn-remove[b-ol7ezjrwga] {
    color: var(--red);
    border: 1px solid var(--red);
    background: none;
    border-radius: 5px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .72rem;
    flex-shrink: 0;
    cursor: pointer;
}

.btn-remove:hover[b-ol7ezjrwga] {
    background: var(--red);
    color: #fff;
}

.empty-hint[b-ol7ezjrwga] {
    color: var(--muted);
    font-size: .82rem;
    text-align: center;
    padding: .75rem 0;
}

/* ── ONGLETS ÉTAGES ── */
.stage-tabs-bar[b-ol7ezjrwga] {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    border-bottom: 1px solid var(--border);
    padding-bottom: .5rem;
}

.stage-tab[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .78rem;
    padding: .25rem .65rem;
    border: 1px solid var(--border);
    border-radius: 7px;
    background: var(--card);
    color: var(--muted);
    cursor: pointer;
}

.stage-tab:hover[b-ol7ezjrwga] {
    border-color: var(--accent);
    color: var(--text);
}

.stage-tab--active[b-ol7ezjrwga] {
    background: var(--card2);
    border-color: var(--accent);
    color: var(--text);
    font-weight: 600;
}

.stage-tab--add[b-ol7ezjrwga] {
    border-style: dashed;
    color: var(--green);
    border-color: var(--green);
}

.stage-tab--add:hover[b-ol7ezjrwga] {
    background: rgba(63, 185, 80, .1);
}

.stage-tab__close[b-ol7ezjrwga] {
    font-size: .65rem;
    color: var(--muted);
    margin-left: .1rem;
    padding: .1rem .25rem;
    border-radius: 3px;
}

.stage-tab__close:hover[b-ol7ezjrwga] {
    color: var(--red);
    background: rgba(248, 81, 73, .15);
}

/* ── CONTENU ÉTAGE ── */
.stage-content[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    gap: .6rem;
}

.stage-type-toggle[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
}

.type-btn[b-ol7ezjrwga] {
    font-size: .78rem;
    padding: .25rem .65rem;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--card);
    color: var(--muted);
    cursor: pointer;
}

.type-btn--active[b-ol7ezjrwga] {
    background: var(--accent);
    border-color: var(--accent);
    color: #000;
    font-weight: 600;
}

.type-btn--active.asp[b-ol7ezjrwga] {
    background: #2d5a27;
    border-color: var(--green);
    color: var(--green);
}

.booster-count[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .3rem;
}

.btn-clear[b-ol7ezjrwga] {
    margin-left: auto;
    background: none;
    border: 1px solid var(--red);
    color: var(--red);
    border-radius: 6px;
    padding: .22rem .55rem;
    font-size: .74rem;
    cursor: pointer;
}

.btn-clear:hover[b-ol7ezjrwga] {
    background: var(--red);
    color: #fff;
}

/* ── MASSES ── */
.mass-row[b-ol7ezjrwga] {
    display: flex;
    gap: .4rem;
}

.mass-chip[b-ol7ezjrwga] {
    flex: 1;
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: .35rem .55rem;
    display: flex;
    flex-direction: column;
}

.mass-chip--fuel[b-ol7ezjrwga] {
    border-color: var(--orange);
}

.mass-chip__label[b-ol7ezjrwga] {
    font-size: .62rem;
    color: var(--muted);
    text-transform: uppercase;
}

.mass-chip__value[b-ol7ezjrwga] {
    font-size: .88rem;
    font-weight: 700;
}

/* ── ASPERGE ── */
.asp-layout[b-ol7ezjrwga] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
}

.asp-section[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    gap: .35rem;
}

.asp-header[b-ol7ezjrwga] {
    display: flex;
    align-items: center;
    gap: .4rem;
}

.asp-target-btn[b-ol7ezjrwga] {
    font-size: .75rem;
    padding: .2rem .55rem;
    border: 1px solid var(--border);
    border-radius: 5px;
    background: var(--card);
    color: var(--muted);
    cursor: pointer;
}

.asp-target-btn--active[b-ol7ezjrwga] {
    border-color: var(--accent);
    color: var(--accent);
    background: rgba(88, 166, 255, .1);
    font-weight: 600;
}

.asp-target-btn--booster.asp-target-btn--active[b-ol7ezjrwga] {
    border-color: var(--green);
    color: var(--green);
    background: rgba(63, 185, 80, .1);
}

.asp-mass[b-ol7ezjrwga] {
    font-size: .68rem;
}

.asp-list[b-ol7ezjrwga] {
    max-height: 220px;
}

.asp-add-hint[b-ol7ezjrwga] {
    font-size: .76rem;
    color: var(--muted);
    background: var(--card);
    border: 1px dashed var(--border);
    border-radius: 6px;
    padding: .3rem .6rem;
}

/* ── RÉSULTATS ── */
.empty-state[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    padding: 2rem 0;
    color: var(--muted);
    text-align: center;
}

.empty-icon[b-ol7ezjrwga] {
    font-size: 2rem;
    opacity: .4;
}

.deltav-hero[b-ol7ezjrwga] {
    text-align: center;
    padding: .9rem;
    background: linear-gradient(135deg, #0f2a1a 0%, #0d1f2d 100%);
    border: 1px solid var(--green);
    border-radius: 10px;
}

.deltav-hero--danger[b-ol7ezjrwga] {
    border-color: var(--red);
    background: linear-gradient(135deg, #2a0f0f 0%, #1d0d0d 100%);
}

.deltav-hero__label[b-ol7ezjrwga] {
    display: block;
    font-size: .68rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
}

.deltav-hero__value[b-ol7ezjrwga] {
    display: block;
    font-size: 2rem;
    font-weight: 800;
    color: var(--teal);
    line-height: 1.1;
}

.deltav-hero__sub[b-ol7ezjrwga] {
    display: block;
    font-size: .75rem;
    color: var(--muted);
    margin-top: .2rem;
}

/* ── STAGE BREAKDOWN ── */
.stage-breakdown[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    gap: .4rem;
}

.stage-result[b-ol7ezjrwga] {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 7px;
    padding: .5rem .7rem;
}

.stage-result--asp[b-ol7ezjrwga] {
    border-color: #2d5a27;
}

.sr-header[b-ol7ezjrwga] {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.sr-name[b-ol7ezjrwga] {
    font-size: .82rem;
    font-weight: 600;
}

.sr-dv[b-ol7ezjrwga] {
    font-size: .95rem;
    font-weight: 700;
    color: var(--teal);
}

.sr-stats[b-ol7ezjrwga] {
    display: flex;
    gap: .6rem;
    flex-wrap: wrap;
    margin-top: .3rem;
    font-size: .7rem;
    color: var(--muted);
}

.sr-asp-detail[b-ol7ezjrwga] {
    display: flex;
    gap: .8rem;
    margin-top: .3rem;
    font-size: .68rem;
    color: var(--green);
    padding-top: .3rem;
    border-top: 1px solid var(--border);
}

/* ── STAT VALUE COLORS ── */
.stat-value[b-ol7ezjrwga] {
}

.stat-value--danger[b-ol7ezjrwga] {
    color: var(--red);
}

.stat-value--warning[b-ol7ezjrwga] {
    color: var(--yellow);
}

.stat-value--ok[b-ol7ezjrwga] {
    color: var(--orange);
}

.stat-value--good[b-ol7ezjrwga] {
    color: var(--green);
}

/* ── ORBITAL CHECK ── */
.orbital-check[b-ol7ezjrwga] {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: .7rem;
}

.orbital-title[b-ol7ezjrwga] {
    margin: 0 0 .5rem;
    font-size: .85rem;
    font-weight: 600;
}

.orbital-stats[b-ol7ezjrwga] {
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

.orb-line[b-ol7ezjrwga] {
    display: flex;
    justify-content: space-between;
    font-size: .8rem;
    color: var(--muted);
}

.orb-line--total[b-ol7ezjrwga] {
    font-weight: 600;
    color: var(--text);
    border-top: 1px solid var(--border);
    padding-top: .25rem;
    margin-top: .15rem;
}

.orb-line--margin[b-ol7ezjrwga] {
    font-weight: 700;
    font-size: .88rem;
    padding-top: .15rem;
}

.margin--danger[b-ol7ezjrwga] {
    color: var(--red);
}

.margin--warning[b-ol7ezjrwga] {
    color: var(--yellow);
}

.margin--ok[b-ol7ezjrwga] {
    color: var(--orange);
}

.margin--good[b-ol7ezjrwga] {
    color: var(--green);
}

.orbital-note[b-ol7ezjrwga] {
    margin: .4rem 0 0;
    font-size: .72rem;
    color: var(--yellow);
}

/* ── VALIDATION ── */
.val-panel[b-ol7ezjrwga] {
    background: var(--card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: .6rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.val-title[b-ol7ezjrwga] {
    margin: 0 0 .3rem;
    font-size: .82rem;
    font-weight: 600;
}

.msg[b-ol7ezjrwga] {
    display: flex;
    align-items: flex-start;
    gap: .45rem;
    border-radius: 5px;
    padding: .28rem .45rem;
    font-size: .76rem;
}

.msg--error[b-ol7ezjrwga] {
    background: rgba(248, 81, 73, .12);
    color: #ffa0a0;
    border-left: 3px solid var(--red);
}

.msg--warning[b-ol7ezjrwga] {
    background: rgba(240, 136, 62, .12);
    color: #ffc080;
    border-left: 3px solid var(--orange);
}

.msg--info[b-ol7ezjrwga] {
    background: rgba(88, 166, 255, .10);
    color: #a0c8ff;
    border-left: 3px solid var(--accent);
}

.msg__text[b-ol7ezjrwga] {
    line-height: 1.4;
}

.dv-calc[b-ol7ezjrwga] {
    --bg:       #0d1117; --panel:   #161b22; --card:    #1a2035;
    --card2:    #1e2a45; --border:  #30363d; --text:    #e2e8f0;
    --muted:    #8b949e; --accent:  #58a6ff; --green:   #3fb950;
    --yellow:   #d29922; --orange:  #f0883e; --red:     #f85149;
    --teal:     #39d353;

    font-family: 'Segoe UI', system-ui, sans-serif;
    background: var(--bg); color: var(--text);
    padding: 1rem; border-radius: 12px;
}
.muted[b-ol7ezjrwga] { color: var(--muted); }

/* ── HEADER ── */
.dv-header[b-ol7ezjrwga] {
    display: flex; align-items: center; gap: 1.2rem; flex-wrap: wrap;
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 10px; padding: .6rem 1rem; margin-bottom: 1rem;
}
.dv-title[b-ol7ezjrwga] { display: flex; align-items: center; gap: .5rem; }
.dv-title__text[b-ol7ezjrwga] { margin: 0; font-size: 1.1rem; font-weight: 700; color: var(--accent); }
.header-group[b-ol7ezjrwga] { display: flex; align-items: center; gap: .5rem; }
.header-label[b-ol7ezjrwga] { font-size: .7rem; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.hdr-select[b-ol7ezjrwga] {
    background: var(--card); color: var(--text); border: 1px solid var(--border);
    border-radius: 6px; padding: .3rem .5rem; font-size: .85rem; cursor: pointer;
}
.hdr-input-wrap[b-ol7ezjrwga] { display: flex; align-items: center; background: var(--card); border: 1px solid var(--border); border-radius: 6px; }
.hdr-input[b-ol7ezjrwga] { width: 70px; background: none; border: none; outline: none; color: var(--text); padding: .3rem .4rem; font-size: .85rem; text-align: right; }
.hdr-unit[b-ol7ezjrwga] { padding-right: .5rem; font-size: .75rem; color: var(--muted); }
.body-pill[b-ol7ezjrwga] {
    font-size: .72rem; padding: .18rem .55rem; border-radius: 999px;
    font-weight: 600; color: #fff; opacity: .9;
}
.body-pill--atm[b-ol7ezjrwga] { background: #2a4a6a; }
.body-pill--vac[b-ol7ezjrwga] { background: #2a2a4a; }

/* ── LAYOUT ── */
.dv-layout[b-ol7ezjrwga] {
    display: grid; grid-template-columns: 290px 1fr 320px;
    gap: 1rem; align-items: start;
}
@@media (max-width: 1100px) { .dv-layout[b-ol7ezjrwga] { grid-template-columns: 1fr 1fr; } }
@@media (max-width: 700px)  { .dv-layout[b-ol7ezjrwga] { grid-template-columns: 1fr; } }

/* ── PANELS ── */
.dv-panel[b-ol7ezjrwga] {
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 10px; padding: 1rem;
    display: flex; flex-direction: column; gap: .7rem;
}
.panel-title[b-ol7ezjrwga] { margin: 0; font-size: .95rem; font-weight: 600; color: var(--accent); }

/* ── SEARCH ── */
.search-bar[b-ol7ezjrwga] {
    display: flex; align-items: center; gap: .4rem;
    background: var(--card); border: 1px solid var(--border);
    border-radius: 7px; padding: .3rem .6rem;
}
.search-input[b-ol7ezjrwga] { flex: 1; background: none; border: none; outline: none; color: var(--text); font-size: .88rem; }
.btn-icon[b-ol7ezjrwga] { background: none; border: none; color: var(--muted); cursor: pointer; font-size: .8rem; }
.btn-icon:hover[b-ol7ezjrwga] { color: var(--red); }

/* ── TABS CATALOGUE ── */
.tabs[b-ol7ezjrwga] { display: flex; flex-wrap: wrap; gap: .3rem; }
.tab[b-ol7ezjrwga] {
    font-size: .7rem; padding: .22rem .5rem;
    border: 1px solid var(--border); border-radius: 999px;
    background: var(--card); color: var(--muted); cursor: pointer;
}
.tab:hover[b-ol7ezjrwga]   { border-color: var(--accent); color: var(--text); }
.tab--active[b-ol7ezjrwga] { background: var(--accent); color: #000; border-color: var(--accent); font-weight: 600; }

/* ── PART LIST ── */
.part-list[b-ol7ezjrwga] {
    display: flex; flex-direction: column; gap: .3rem;
    max-height: 440px; overflow-y: auto;
    scrollbar-width: thin; scrollbar-color: var(--border) transparent;
}
.part-card[b-ol7ezjrwga] {
    display: flex; align-items: center; gap: .5rem;
    background: var(--card); border: 1px solid var(--border);
    border-radius: 7px; padding: .35rem .55rem; transition: all .12s;
}
.part-card--catalog[b-ol7ezjrwga] { cursor: pointer; }
.part-card--catalog:hover[b-ol7ezjrwga] { background: var(--card2); border-color: var(--accent); transform: translateX(2px); }
.part-icon[b-ol7ezjrwga]  { font-size: 1rem; flex-shrink: 0; }
.part-info[b-ol7ezjrwga]  { flex: 1; min-width: 0; }
.part-name[b-ol7ezjrwga]  { display: block; font-size: .82rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.part-stats[b-ol7ezjrwga] { display: block; font-size: .68rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.btn-add[b-ol7ezjrwga] {
    color: var(--green); border: 1px solid var(--green); background: none;
    border-radius: 5px; width: 22px; height: 22px; display: flex; align-items: center;
    justify-content: center; font-size: .9rem; flex-shrink: 0; cursor: pointer;
}
.btn-add:hover[b-ol7ezjrwga] { background: var(--green); color: #000; }
.btn-remove[b-ol7ezjrwga] {
    color: var(--red); border: 1px solid var(--red); background: none;
    border-radius: 5px; width: 22px; height: 22px; display: flex; align-items: center;
    justify-content: center; font-size: .72rem; flex-shrink: 0; cursor: pointer;
}
.btn-remove:hover[b-ol7ezjrwga] { background: var(--red); color: #fff; }
.empty-hint[b-ol7ezjrwga] { color: var(--muted); font-size: .82rem; text-align: center; padding: .75rem 0; }

/* ── ONGLETS ÉTAGES ── */
.stage-tabs-bar[b-ol7ezjrwga] {
    display: flex; flex-wrap: wrap; gap: .3rem;
    border-bottom: 1px solid var(--border); padding-bottom: .5rem;
}
.stage-tab[b-ol7ezjrwga] {
    display: flex; align-items: center; gap: .3rem;
    font-size: .78rem; padding: .25rem .65rem;
    border: 1px solid var(--border); border-radius: 7px;
    background: var(--card); color: var(--muted); cursor: pointer;
}
.stage-tab:hover[b-ol7ezjrwga]         { border-color: var(--accent); color: var(--text); }
.stage-tab--active[b-ol7ezjrwga]       { background: var(--card2); border-color: var(--accent); color: var(--text); font-weight: 600; }
.stage-tab--add[b-ol7ezjrwga]          { border-style: dashed; color: var(--green); border-color: var(--green); }
.stage-tab--add:hover[b-ol7ezjrwga]    { background: rgba(63,185,80,.1); }
.stage-tab__close[b-ol7ezjrwga] {
    font-size: .65rem; color: var(--muted); margin-left: .1rem;
    padding: .1rem .25rem; border-radius: 3px;
}
.stage-tab__close:hover[b-ol7ezjrwga] { color: var(--red); background: rgba(248,81,73,.15); }

/* ── CONTENU ÉTAGE ── */
.stage-content[b-ol7ezjrwga] { display: flex; flex-direction: column; gap: .6rem; }
.stage-type-toggle[b-ol7ezjrwga] { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
.type-btn[b-ol7ezjrwga] {
    font-size: .78rem; padding: .25rem .65rem;
    border: 1px solid var(--border); border-radius: 6px;
    background: var(--card); color: var(--muted); cursor: pointer;
}
.type-btn--active[b-ol7ezjrwga]          { background: var(--accent); border-color: var(--accent); color: #000; font-weight: 600; }
.type-btn--active.asp[b-ol7ezjrwga]      { background: #2d5a27; border-color: var(--green); color: var(--green); }
.booster-count[b-ol7ezjrwga]             { display: flex; align-items: center; gap: .3rem; }
.btn-clear[b-ol7ezjrwga] {
    margin-left: auto; background: none; border: 1px solid var(--red); color: var(--red);
    border-radius: 6px; padding: .22rem .55rem; font-size: .74rem; cursor: pointer;
}
.btn-clear:hover[b-ol7ezjrwga] { background: var(--red); color: #fff; }

/* ── MASSES ── */
.mass-row[b-ol7ezjrwga] { display: flex; gap: .4rem; }
.mass-chip[b-ol7ezjrwga] {
    flex: 1; background: var(--card); border: 1px solid var(--border);
    border-radius: 6px; padding: .35rem .55rem; display: flex; flex-direction: column;
}
.mass-chip--fuel[b-ol7ezjrwga] { border-color: var(--orange); }
.mass-chip__label[b-ol7ezjrwga] { font-size: .62rem; color: var(--muted); text-transform: uppercase; }
.mass-chip__value[b-ol7ezjrwga] { font-size: .88rem; font-weight: 700; }

/* ── ASPERGE ── */
.asp-layout[b-ol7ezjrwga]  { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.asp-section[b-ol7ezjrwga] { display: flex; flex-direction: column; gap: .35rem; }
.asp-header[b-ol7ezjrwga]  { display: flex; align-items: center; gap: .4rem; }
.asp-target-btn[b-ol7ezjrwga] {
    font-size: .75rem; padding: .2rem .55rem;
    border: 1px solid var(--border); border-radius: 5px;
    background: var(--card); color: var(--muted); cursor: pointer;
}
.asp-target-btn--active[b-ol7ezjrwga]         { border-color: var(--accent); color: var(--accent); background: rgba(88,166,255,.1); font-weight: 600; }
.asp-target-btn--booster.asp-target-btn--active[b-ol7ezjrwga] { border-color: var(--green); color: var(--green); background: rgba(63,185,80,.1); }
.asp-mass[b-ol7ezjrwga]   { font-size: .68rem; }
.asp-list[b-ol7ezjrwga]   { max-height: 220px; }
.asp-add-hint[b-ol7ezjrwga] {
    font-size: .76rem; color: var(--muted); background: var(--card);
    border: 1px dashed var(--border); border-radius: 6px; padding: .3rem .6rem;
}

/* ── RÉSULTATS ── */
.empty-state[b-ol7ezjrwga] {
    display: flex; flex-direction: column; align-items: center; gap: .5rem;
    padding: 2rem 0; color: var(--muted); text-align: center;
}
.empty-icon[b-ol7ezjrwga] { font-size: 2rem; opacity: .4; }

.deltav-hero[b-ol7ezjrwga] {
    text-align: center; padding: .9rem;
    background: linear-gradient(135deg, #0f2a1a 0%, #0d1f2d 100%);
    border: 1px solid var(--green); border-radius: 10px;
}
.deltav-hero--danger[b-ol7ezjrwga] { border-color: var(--red); background: linear-gradient(135deg, #2a0f0f 0%, #1d0d0d 100%); }
.deltav-hero__label[b-ol7ezjrwga] { display: block; font-size: .68rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.deltav-hero__value[b-ol7ezjrwga] { display: block; font-size: 2rem; font-weight: 800; color: var(--teal); line-height: 1.1; }
.deltav-hero__sub[b-ol7ezjrwga]   { display: block; font-size: .75rem; color: var(--muted); margin-top: .2rem; }

/* ── STAGE BREAKDOWN ── */
.stage-breakdown[b-ol7ezjrwga] { display: flex; flex-direction: column; gap: .4rem; }
.stage-result[b-ol7ezjrwga] {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 7px; padding: .5rem .7rem;
}
.stage-result--asp[b-ol7ezjrwga] { border-color: #2d5a27; }
.sr-header[b-ol7ezjrwga] { display: flex; justify-content: space-between; align-items: center; }
.sr-name[b-ol7ezjrwga]   { font-size: .82rem; font-weight: 600; }
.sr-dv[b-ol7ezjrwga]     { font-size: .95rem; font-weight: 700; color: var(--teal); }
.sr-stats[b-ol7ezjrwga]  { display: flex; gap: .6rem; flex-wrap: wrap; margin-top: .3rem; font-size: .7rem; color: var(--muted); }
.sr-asp-detail[b-ol7ezjrwga] {
    display: flex; gap: .8rem; margin-top: .3rem; font-size: .68rem;
    color: var(--green); padding-top: .3rem; border-top: 1px solid var(--border);
}

/* ── STAT VALUE COLORS ── */
.stat-value[b-ol7ezjrwga]         { }
.stat-value--danger[b-ol7ezjrwga]  { color: var(--red); }
.stat-value--warning[b-ol7ezjrwga] { color: var(--yellow); }
.stat-value--ok[b-ol7ezjrwga]      { color: var(--orange); }
.stat-value--good[b-ol7ezjrwga]    { color: var(--green); }

/* ── ORBITAL CHECK ── */
.orbital-check[b-ol7ezjrwga] {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 8px; padding: .7rem;
}
.orbital-title[b-ol7ezjrwga] { margin: 0 0 .5rem; font-size: .85rem; font-weight: 600; }
.orbital-stats[b-ol7ezjrwga] { display: flex; flex-direction: column; gap: .25rem; }
.orb-line[b-ol7ezjrwga] { display: flex; justify-content: space-between; font-size: .8rem; color: var(--muted); }
.orb-line--total[b-ol7ezjrwga] { font-weight: 600; color: var(--text); border-top: 1px solid var(--border); padding-top: .25rem; margin-top: .15rem; }
.orb-line--margin[b-ol7ezjrwga] { font-weight: 700; font-size: .88rem; padding-top: .15rem; }
.margin--danger[b-ol7ezjrwga]  { color: var(--red); }
.margin--warning[b-ol7ezjrwga] { color: var(--yellow); }
.margin--ok[b-ol7ezjrwga]      { color: var(--orange); }
.margin--good[b-ol7ezjrwga]    { color: var(--green); }
.orbital-note[b-ol7ezjrwga] { margin: .4rem 0 0; font-size: .72rem; color: var(--yellow); }

/* ── VALIDATION ── */
.val-panel[b-ol7ezjrwga] {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 8px; padding: .6rem; display: flex; flex-direction: column; gap: .3rem;
}
.val-title[b-ol7ezjrwga] { margin: 0 0 .3rem; font-size: .82rem; font-weight: 600; }
.msg[b-ol7ezjrwga] {
    display: flex; align-items: flex-start; gap: .45rem;
    border-radius: 5px; padding: .28rem .45rem; font-size: .76rem;
}
.msg--error[b-ol7ezjrwga]   { background: rgba(248,81,73,.12);  color: #ffa0a0; border-left: 3px solid var(--red); }
.msg--warning[b-ol7ezjrwga] { background: rgba(240,136,62,.12); color: #ffc080; border-left: 3px solid var(--orange); }
.msg--info[b-ol7ezjrwga]    { background: rgba(88,166,255,.10); color: #a0c8ff; border-left: 3px solid var(--accent); }
.msg__text[b-ol7ezjrwga]    { line-height: 1.4; }

/* ── BOUTON OPTIMISER ── */
.btn-optimize[b-ol7ezjrwga] {
    margin-left: auto;
    background: linear-gradient(135deg, #1a3a2a, #0d2a1a);
    border: 1px solid var(--green); color: var(--green);
    border-radius: 8px; padding: .35rem .9rem;
    font-size: .85rem; font-weight: 600; cursor: pointer;
    transition: all .15s;
}
.btn-optimize:hover[b-ol7ezjrwga] { background: var(--green); color: #000; }

/* ── MODAL OVERLAY ── */
.opt-overlay[b-ol7ezjrwga] {
    position: fixed; inset: 0; z-index: 1000;
    background: rgba(0,0,0,.7); backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center;
    padding: 1rem;
}
.opt-modal[b-ol7ezjrwga] {
    background: var(--panel); border: 1px solid var(--border);
    border-radius: 14px; width: 100%; max-width: 900px;
    max-height: 90vh; overflow-y: auto;
    display: flex; flex-direction: column; gap: 1rem;
    padding: 1.5rem;
}
.opt-header[b-ol7ezjrwga] {
    display: flex; justify-content: space-between; align-items: flex-start;
}
.opt-title[b-ol7ezjrwga]    { margin: 0; font-size: 1.2rem; font-weight: 700; color: var(--accent); }
.opt-subtitle[b-ol7ezjrwga] { margin: .25rem 0 0; font-size: .8rem; color: var(--muted); }
.opt-close[b-ol7ezjrwga] {
    background: none; border: 1px solid var(--border); color: var(--text);
    border-radius: 6px; padding: .2rem .6rem; cursor: pointer; font-size: .9rem;
}
.opt-close:hover[b-ol7ezjrwga] { border-color: var(--red); color: var(--red); }
.opt-loading[b-ol7ezjrwga], .opt-empty[b-ol7ezjrwga] { text-align: center; padding: 2rem; color: var(--muted); }

.opt-cards[b-ol7ezjrwga] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: .75rem;
}
.opt-card[b-ol7ezjrwga] {
    background: var(--card); border: 1px solid var(--border);
    border-radius: 10px; padding: 1rem;
    display: flex; flex-direction: column; gap: .6rem;
    transition: border-color .15s;
}
.opt-card:hover[b-ol7ezjrwga] { border-color: var(--accent); }

.opt-card-header[b-ol7ezjrwga] { display: flex; justify-content: space-between; align-items: center; }
.opt-strategy[b-ol7ezjrwga] { font-size: .72rem; padding: .15rem .5rem; border-radius: 999px; background: rgba(88,166,255,.15); color: var(--accent); font-weight: 600; }
.opt-mass[b-ol7ezjrwga]     { font-size: .85rem; font-weight: 700; color: var(--text); }
.opt-engine-name[b-ol7ezjrwga] { font-size: .95rem; font-weight: 600; color: var(--text); }
.opt-summary[b-ol7ezjrwga]  { font-size: .72rem; }

.opt-stats[b-ol7ezjrwga] { display: grid; grid-template-columns: 1fr 1fr; gap: .4rem; }
.opt-stat[b-ol7ezjrwga]  { display: flex; flex-direction: column; gap: .05rem; font-size: .78rem; }
.opt-dv[b-ol7ezjrwga]    { font-weight: 700; color: var(--teal); }
.opt-ok[b-ol7ezjrwga]    { color: var(--green); font-weight: 600; }
.opt-warn[b-ol7ezjrwga]  { color: var(--yellow); font-weight: 600; }

.opt-margin[b-ol7ezjrwga]           { font-weight: 700; }
.opt-margin.margin--danger[b-ol7ezjrwga]  { color: var(--red); }
.opt-margin.margin--warning[b-ol7ezjrwga] { color: var(--yellow); }
.opt-margin.margin--ok[b-ol7ezjrwga]      { color: var(--orange); }
.opt-margin.margin--good[b-ol7ezjrwga]    { color: var(--green); }

.btn-load-config[b-ol7ezjrwga] {
    margin-top: auto;
    background: none; border: 1px solid var(--accent);
    color: var(--accent); border-radius: 7px;
    padding: .4rem .7rem; font-size: .8rem; font-weight: 600;
    cursor: pointer; width: 100%; transition: all .15s;
}
.btn-load-config:hover[b-ol7ezjrwga] { background: var(--accent); color: #000; }

/* ── OPTIMISEUR — nouveaux styles ── */
.opt-params[b-ol7ezjrwga] {
    display: flex; align-items: center; gap: 1rem; flex-wrap: wrap;
    background: var(--card); border: 1px solid var(--border);
    border-radius: 8px; padding: .6rem .9rem;
}
.opt-param[b-ol7ezjrwga] { display: flex; align-items: center; gap: .5rem; }
.opt-param-label[b-ol7ezjrwga] { font-size: .72rem; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.opt-param-input[b-ol7ezjrwga] { display: flex; align-items: center; gap: .3rem; }
.opt-counter-btn[b-ol7ezjrwga] {
    background: var(--bg-card, #1a2035); border: 1px solid var(--border);
    color: var(--text); border-radius: 5px; width: 26px; height: 26px;
    cursor: pointer; font-size: 1rem; display: flex; align-items: center; justify-content: center;
}
.opt-counter-btn:hover[b-ol7ezjrwga] { border-color: var(--accent); color: var(--accent); }
.opt-counter-val[b-ol7ezjrwga] { font-size: .95rem; font-weight: 700; min-width: 24px; text-align: center; }
.btn-rerun[b-ol7ezjrwga] {
    margin-left: auto; background: none; border: 1px solid var(--green);
    color: var(--green); border-radius: 6px; padding: .25rem .7rem;
    font-size: .78rem; cursor: pointer;
}
.btn-rerun:hover[b-ol7ezjrwga] { background: var(--green); color: #000; }

.opt-label[b-ol7ezjrwga] { display: block; font-size: .82rem; font-weight: 600; color: var(--text); margin-top: .2rem; }
.opt-err[b-ol7ezjrwga]   { color: var(--red); font-weight: 600; }

.opt-stages-detail[b-ol7ezjrwga] { display: flex; flex-direction: column; gap: .35rem; }
.opt-stage-row[b-ol7ezjrwga] {
    display: flex; gap: .5rem; align-items: center; flex-wrap: wrap;
    font-size: .75rem; border-top: 1px solid var(--border); padding-top: .3rem;
}
.opt-stage-name[b-ol7ezjrwga]  { font-weight: 600; color: var(--accent); }
.opt-stage-dv[b-ol7ezjrwga]    { font-size: .72rem; }
.opt-stage-twr[b-ol7ezjrwga]   { font-size: .72rem; }
.opt-stage-mass[b-ol7ezjrwga]  { font-size: .72rem; }

.opt-parts-list[b-ol7ezjrwga]  { display: flex; flex-wrap: wrap; gap: .25rem; padding-left: .2rem; }
.opt-part-badge[b-ol7ezjrwga]  {
    font-size: .68rem; padding: .12rem .45rem;
    background: rgba(88,166,255,.08); border: 1px solid rgba(88,166,255,.2);
    border-radius: 4px; color: var(--text); white-space: nowrap;
}
