/* ═══════════════════════════════════════════════════════════════════════════
   Bearded Gunworks AR Builder v3 — Frontend CSS
   Color Spec:
   Primary BG:       #000000
   Panel BG:         #20211D
   Secondary Panel:  #3C3F32
   Accent:           #A3966B
   Primary Button:   #E76E1B
   Text:             #F2F2F2
   Secondary Text:   #D1D3CD
   Input BG:         #20211D
   Border:           #3F413A
   Focus Border:     #E76E1B
   ═══════════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Source+Sans+3:wght@300;400;600&display=swap');

:root {
    --bgw-black:   #000000;
    --bgw-panel:   #20211D;
    --bgw-panel2:  #3C3F32;
    --bgw-accent:  #A3966B;
    --bgw-btn:     #E76E1B;
    --bgw-btn-h:   #c95b10;
    --bgw-text:    #F2F2F2;
    --bgw-text2:   #D1D3CD;
    --bgw-border:  #3F413A;
    --bgw-border2: #2e3028;
    --bgw-focus:   #E76E1B;
    --bgw-success: #5db87a;
    --bgw-danger:  #e55b3c;
    --bgw-r:       4px;
    --bgw-r2:      8px;
    --bgw-fn-h:    'Oswald', 'Impact', sans-serif;
    --bgw-fn-b:    'Source Sans 3', system-ui, sans-serif;
    --bgw-shadow:  0 4px 24px rgba(0,0,0,.6);
    --bgw-t:       all .15s ease;
}

#bgw, #bgw * { box-sizing: border-box; -webkit-font-smoothing: antialiased; }

#bgw {
    font-family: var(--bgw-fn-b);
    font-size: 15px;
    color: var(--bgw-text);
    background: var(--bgw-black);
    border: 1px solid var(--bgw-border);
    border-radius: var(--bgw-r2);
    overflow: hidden;
    max-width: 1200px;
    margin: 0 auto;
}

/* ── HEADER ─────────────────────────────────────────────────────────────── */
.bgw-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--bgw-panel);
    border-bottom: 1px solid var(--bgw-border);
    padding: 1.1rem 2rem;
    flex-wrap: wrap;
}

.bgw-header-brand { display: flex; align-items: center; gap: .85rem; }

.bgw-header-text { display: flex; flex-direction: column; gap: .15rem; }
.bgw-header-title {
    font-family: var(--bgw-fn-h);
    font-size: 1.15rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-text);
    line-height: 1;
}
.bgw-header-sub { font-size: .78rem; color: var(--bgw-accent); letter-spacing: .03em; }

/* ── STEP NAV DOTS ───────────────────────────────────────────────────────── */
.bgw-step-nav {
    display: flex;
    align-items: center;
    gap: .2rem;
    flex-wrap: wrap;
}
.bgw-navdot {
    font-family: var(--bgw-fn-h);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bgw-panel2);
    padding: .28rem .7rem;
    border-radius: 3px;
    transition: var(--bgw-t);
    white-space: nowrap;
    border: 1px solid transparent;
}
.bgw-navdot-active { color: var(--bgw-btn); border-color: var(--bgw-btn); background: rgba(231,110,27,.12); }
.bgw-navdot-done   { color: var(--bgw-accent); }

/* ── BODY LAYOUT ─────────────────────────────────────────────────────────── */
.bgw-body {
    display: flex;
    align-items: flex-start;
    min-height: 560px;
}

.bgw-main {
    flex: 1;
    min-width: 0;
    padding: 2rem;
    border-right: 1px solid var(--bgw-border2);
}

.bgw-sidebar {
    width: 288px;
    flex-shrink: 0;
    position: sticky;
    top: 0;
    max-height: 100vh;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--bgw-border) transparent;
    background: var(--bgw-panel);
}

/* ── LOADING / ERROR ─────────────────────────────────────────────────────── */
.bgw-loading {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: 3rem 0;
    color: var(--bgw-text2);
    font-size: .9rem;
}
.bgw-spinner {
    width: 26px; height: 26px;
    border: 2px solid var(--bgw-border);
    border-top-color: var(--bgw-btn);
    border-radius: 50%;
    animation: bgwSpin .7s linear infinite;
}
@keyframes bgwSpin { to { transform: rotate(360deg); } }
.bgw-load-error { padding: 2rem 0; }
.bgw-load-error p { color: var(--bgw-danger); font-size: .9rem; }
.bgw-hidden { display: none !important; }

/* ── STEP PANELS ─────────────────────────────────────────────────────────── */
.bgw-step { animation: bgwFadeIn .2s ease; }
@keyframes bgwFadeIn { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:none; } }

.bgw-step-head {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--bgw-border2);
}
.bgw-step-num {
    font-family: var(--bgw-fn-h);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    color: var(--bgw-btn);
    background: rgba(231,110,27,.1);
    border: 1px solid var(--bgw-btn);
    border-radius: 3px;
    padding: 3px 8px;
    flex-shrink: 0;
    margin-top: 4px;
}
.bgw-step-title {
    font-family: var(--bgw-fn-h);
    font-size: 1.25rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--bgw-text);
    margin: 0 0 .25rem;
    line-height: 1.1;
}
.bgw-step-desc { font-size: .85rem; color: var(--bgw-text2); margin: 0; line-height: 1.5; }

/* ── BUILD TYPE / LOWER START CHOICE CARDS ──────────────────────────────── */
.bgw-choice-grid {
    display: grid;
    gap: .9rem;
}
.bgw-choice-3col { grid-template-columns: repeat(3,1fr); }
.bgw-choice-2col { grid-template-columns: repeat(2,1fr); }

.bgw-choice-card {
    cursor: pointer;
    display: flex;
    flex-direction: column;
    gap: .5rem;
    padding: 1.4rem;
    background: var(--bgw-panel);
    border: 1px solid var(--bgw-border);
    border-radius: var(--bgw-r2);
    transition: var(--bgw-t);
    position: relative;
}
.bgw-choice-card:hover { border-color: var(--bgw-accent); background: #262720; }
.bgw-choice-card.bgw-selected {
    border-color: var(--bgw-btn);
    background: rgba(231,110,27,.06);
    box-shadow: 0 0 0 1px var(--bgw-btn), inset 0 0 40px rgba(231,110,27,.04);
}
.bgw-choice-card input { position: absolute; opacity: 0; width: 0; height: 0; }

.bgw-cc-icon {
    width: 64px; height: 22px;
    color: var(--bgw-accent);
    opacity: .7;
    margin-bottom: .25rem;
}
.bgw-choice-card.bgw-selected .bgw-cc-icon { opacity: 1; }

.bgw-choice-card strong {
    font-family: var(--bgw-fn-h);
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--bgw-text);
}
.bgw-choice-card span {
    font-size: .8rem;
    color: var(--bgw-text2);
    line-height: 1.45;
}
.bgw-cc-flow {
    margin-top: .35rem;
    font-size: .72rem;
    color: var(--bgw-accent);
    letter-spacing: .04em;
    border-top: 1px solid var(--bgw-border2);
    padding-top: .5rem;
}

/* ── NOTES ───────────────────────────────────────────────────────────────── */
.bgw-optional-note, .bgw-trigger-note {
    display: flex;
    align-items: center;
    gap: .5rem;
    background: rgba(163,150,107,.06);
    border: 1px solid rgba(163,150,107,.25);
    border-radius: var(--bgw-r);
    padding: .55rem 1rem;
    margin-bottom: 1rem;
    font-size: .82rem;
    color: var(--bgw-accent);
}
.bgw-note-icon { font-size: 1rem; }

/* ── PARTS GRID ──────────────────────────────────────────────────────────── */
.bgw-parts-grid {
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

/* Multi-select (accessories) */
.bgw-parts-multi {
    display: grid;
    grid-template-columns: repeat(2,1fr);
    gap: .65rem;
}

/* ── PART CARDS ──────────────────────────────────────────────────────────── */
.bgw-part-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: var(--bgw-panel);
    border: 1px solid var(--bgw-border);
    border-radius: var(--bgw-r2);
    cursor: pointer;
    transition: var(--bgw-t);
    overflow: hidden;
    position: relative;
}
.bgw-part-card:hover { border-color: var(--bgw-panel2); background: #262720; }
.bgw-part-card.bgw-part-selected {
    border-color: var(--bgw-btn);
    background: rgba(231,110,27,.05);
}
.bgw-part-card.bgw-part-selected::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 3px;
    background: var(--bgw-btn);
}
.bgw-part-card input { position: absolute; opacity: 0; width: 0; height: 0; }

.bgw-pc-thumb {
    width: 80px;
    flex-shrink: 0;
    background: var(--bgw-panel2);
    border-right: 1px solid var(--bgw-border2);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.bgw-pc-thumb img { width: 100%; height: 100%; object-fit: cover; }
.bgw-thumb-ph {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%; height: 100%;
    min-height: 72px;
}
.bgw-thumb-ph span { font-size: .6rem; color: var(--bgw-panel2); text-align: center; }

.bgw-pc-body { flex: 1; min-width: 0; padding: .85rem 1rem; }
.bgw-pc-top { display: flex; align-items: flex-start; gap: .75rem; }
.bgw-pc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .2rem; }

.bgw-pc-name {
    font-weight: 600;
    font-size: .9rem;
    color: var(--bgw-text);
    line-height: 1.25;
}
.bgw-pc-brand { font-size: .75rem; color: var(--bgw-text2); }
.bgw-pc-desc  { font-size: .77rem; color: rgba(209,211,205,.6); line-height: 1.4; }

.bgw-meta-tags { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .3rem; }
.bgw-meta-tag {
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    padding: 1px 6px;
    border-radius: 2px;
    border: 1px solid;
}
.bgw-mt-inc  { color: var(--bgw-success); border-color: rgba(93,184,122,.4); background: rgba(93,184,122,.07); }
.bgw-mt-req  { color: var(--bgw-btn);     border-color: rgba(231,110,27,.4); background: rgba(231,110,27,.07); }
.bgw-mt-note { color: var(--bgw-accent);  border-color: rgba(163,150,107,.4); background: rgba(163,150,107,.07); }

.bgw-pc-price {
    text-align: right;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: .1rem;
    align-items: flex-end;
}
.bgw-pc-build-price {
    font-family: var(--bgw-fn-h);
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--bgw-btn);
    letter-spacing: .02em;
    white-space: nowrap;
}
.bgw-pc-msrp {
    font-size: .72rem;
    color: rgba(209,211,205,.45);
    text-decoration: line-through;
    white-space: nowrap;
}

.bgw-pc-radio {
    width: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: .85rem;
}
.bgw-pc-radio::after {
    content: '';
    display: block;
    width: 16px; height: 16px;
    border-radius: 50%;
    border: 2px solid var(--bgw-border);
    transition: var(--bgw-t);
}
.bgw-pc-radio.bgw-checked::after {
    background: var(--bgw-btn);
    border-color: var(--bgw-btn);
    box-shadow: 0 0 6px rgba(231,110,27,.6);
}
/* Checkbox variant */
.bgw-pc-checkbox::after { border-radius: 3px; }
.bgw-pc-checkbox.bgw-checked::after { content: '✓'; color: #fff; font-size: .7rem; font-weight: 900; display: flex; align-items: center; justify-content: center; background: var(--bgw-btn); border-color: var(--bgw-btn); }

.bgw-no-parts { color: rgba(209,211,205,.5); font-size: .85rem; padding: .5rem 0; }

/* ── ACCESSORIES ─────────────────────────────────────────────────────────── */
.bgw-acc-section { margin-bottom: 1.5rem; }
.bgw-acc-label {
    font-family: var(--bgw-fn-h);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-accent);
    margin: 0 0 .65rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--bgw-border2);
}

/* ── REVIEW ──────────────────────────────────────────────────────────────── */
.bgw-review-parts { margin-bottom: 2rem; }
.bgw-review-sub {
    font-family: var(--bgw-fn-h);
    font-size: .85rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-accent);
    margin: 0 0 .85rem;
}

.bgw-review-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: .65rem 0;
    border-bottom: 1px solid var(--bgw-border2);
}
.bgw-review-row:first-child { border-top: 1px solid var(--bgw-border2); }
.bgw-rr-left { display: flex; flex-direction: column; gap: .15rem; }
.bgw-rr-label {
    font-family: var(--bgw-fn-h);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-accent);
}
.bgw-rr-name { font-weight: 600; font-size: .9rem; color: var(--bgw-text); }
.bgw-rr-brand { font-size: .75rem; color: var(--bgw-text2); }
.bgw-rr-right { text-align: right; flex-shrink: 0; }
.bgw-rr-build {
    font-family: var(--bgw-fn-h);
    font-size: 1rem;
    color: var(--bgw-btn);
    display: block;
    white-space: nowrap;
}
.bgw-rr-msrp { font-size: .72rem; color: rgba(209,211,205,.4); text-decoration: line-through; }

.bgw-review-totals { margin-top: 1rem; }
.bgw-totals-wrap { border: 1px solid var(--bgw-border); border-radius: var(--bgw-r2); overflow: hidden; }
.bgw-total-row {
    display: flex;
    justify-content: space-between;
    padding: .7rem 1.1rem;
    font-size: .88rem;
    color: var(--bgw-text2);
    border-bottom: 1px solid var(--bgw-border2);
}
.bgw-total-row:last-child { border-bottom: none; }
.bgw-total-build {
    background: rgba(231,110,27,.06);
    font-family: var(--bgw-fn-h);
    font-size: 1rem;
    color: var(--bgw-text);
    font-weight: 600;
}
.bgw-total-build span:last-child { color: var(--bgw-btn); font-size: 1.1rem; }
.bgw-save-val { color: var(--bgw-success); font-weight: 600; }

/* ── QUOTE FORM ──────────────────────────────────────────────────────────── */
.bgw-quote-form { margin-top: 2rem; }

.bgw-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .85rem;
}
.bgw-full { grid-column: 1/-1; }
.bgw-fg { display: flex; flex-direction: column; gap: .3rem; }
.bgw-fg label {
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--bgw-text2);
}
.bgw-fg label em { color: var(--bgw-btn); font-style: normal; }

.bgw-fg input, .bgw-fg textarea {
    background: var(--bgw-panel);
    border: 1px solid var(--bgw-border);
    border-radius: var(--bgw-r);
    color: var(--bgw-text);
    font-family: var(--bgw-fn-b);
    font-size: .9rem;
    padding: .65rem .9rem;
    transition: border-color .15s;
    width: 100%;
}
.bgw-fg input:focus, .bgw-fg textarea:focus {
    outline: none;
    border-color: var(--bgw-focus);
    box-shadow: 0 0 0 2px rgba(231,110,27,.15);
}
.bgw-fg textarea { resize: vertical; min-height: 80px; }

.bgw-submit-wrap { margin-top: 1.25rem; display: flex; flex-direction: column; gap: .6rem; }
.bgw-err {
    color: var(--bgw-danger);
    font-size: .83rem;
    background: rgba(229,91,60,.07);
    border: 1px solid rgba(229,91,60,.3);
    border-radius: var(--bgw-r);
    padding: .55rem .85rem;
}
.bgw-legal {
    font-size: .72rem;
    color: rgba(209,211,205,.35);
    line-height: 1.6;
    margin-top: .65rem;
}

/* ── CONFIRMATION ────────────────────────────────────────────────────────── */
.bgw-confirmed {
    text-align: center;
    padding: 3rem 2rem;
    border: 1px solid rgba(93,184,122,.3);
    border-radius: var(--bgw-r2);
    background: rgba(93,184,122,.03);
    animation: bgwFadeIn .3s ease;
}
.bgw-confirmed-check {
    width: 60px; height: 60px;
    background: var(--bgw-success);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    font-weight: 900;
    color: #fff;
    margin: 0 auto 1.25rem;
}
.bgw-confirmed h3 {
    font-family: var(--bgw-fn-h);
    font-size: 1.35rem;
    letter-spacing: .08em;
    text-transform: uppercase;
    margin: 0 0 .75rem;
}
.bgw-confirmed p { font-size: .9rem; color: var(--bgw-text2); margin-bottom: .5rem; }

/* ── NAV WRAP ────────────────────────────────────────────────────────────── */
.bgw-nav-wrap {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 2rem;
    padding-top: 1.4rem;
    border-top: 1px solid var(--bgw-border2);
}
.bgw-nav-center { flex: 1; display: flex; justify-content: center; }

/* ── BUTTONS ─────────────────────────────────────────────────────────────── */
.bgw-btn-primary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--bgw-fn-h);
    font-size: .88rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #fff;
    background: var(--bgw-btn);
    border: none;
    border-radius: var(--bgw-r);
    padding: .65rem 1.6rem;
    cursor: pointer;
    transition: var(--bgw-t);
    line-height: 1;
    text-decoration: none;
}
.bgw-btn-primary:hover { background: var(--bgw-btn-h); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(231,110,27,.45); }
.bgw-btn-primary:active { transform: none; }
.bgw-btn-primary:disabled { opacity: .4; cursor: not-allowed; transform: none; box-shadow: none; }
.bgw-btn-arrow { transition: transform .15s; }
.bgw-btn-primary:hover .bgw-btn-arrow { transform: translateX(3px); }
.bgw-btn-xl { padding: .85rem 2.2rem; font-size: 1rem; }
.bgw-btn-full { width: 100%; justify-content: center; }

.bgw-btn-ghost {
    display: inline-flex;
    align-items: center;
    font-family: var(--bgw-fn-h);
    font-size: .82rem;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bgw-text2);
    background: transparent;
    border: 1px solid var(--bgw-border);
    border-radius: var(--bgw-r);
    padding: .6rem 1.2rem;
    cursor: pointer;
    transition: var(--bgw-t);
    line-height: 1;
    text-decoration: none;
}
.bgw-btn-ghost:hover { color: var(--bgw-text); border-color: var(--bgw-panel2); background: var(--bgw-panel); }

.bgw-btn-skip {
    font-family: var(--bgw-fn-h);
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--bgw-accent);
    background: transparent;
    border: none;
    cursor: pointer;
    padding: .35rem .75rem;
    transition: var(--bgw-t);
}
.bgw-btn-skip:hover { color: var(--bgw-text); }

/* ── SIDEBAR ─────────────────────────────────────────────────────────────── */
.bgw-sidebar-inner { padding: 1.1rem; display: flex; flex-direction: column; gap: .65rem; }

.bgw-sum-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: .65rem;
    border-bottom: 1px solid var(--bgw-border);
}
.bgw-sum-title {
    font-family: var(--bgw-fn-h);
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-text);
}
.bgw-sum-badge {
    background: var(--bgw-btn);
    color: #fff;
    font-size: .65rem;
    font-weight: 900;
    width: 20px; height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bgw-sum-type {
    font-family: var(--bgw-fn-h);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-btn);
    background: rgba(231,110,27,.08);
    border: 1px solid rgba(231,110,27,.25);
    border-radius: 3px;
    padding: .25rem .6rem;
    text-align: center;
}

.bgw-sum-parts { display: flex; flex-direction: column; gap: .3rem; max-height: 360px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--bgw-border) transparent; }
.bgw-sum-empty { font-size: .78rem; color: rgba(209,211,205,.4); text-align: center; padding: .85rem 0; margin: 0; line-height: 1.5; }

.bgw-sum-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: .4rem;
    padding: .4rem 0;
    border-bottom: 1px solid var(--bgw-border2);
    animation: bgwFadeIn .12s ease;
}
.bgw-sum-row:last-child { border-bottom: none; }
.bgw-sr-left { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .1rem; }
.bgw-sr-label {
    font-family: var(--bgw-fn-h);
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-accent);
}
.bgw-sr-name { font-size: .78rem; color: var(--bgw-text); line-height: 1.3; }
.bgw-sr-right { display: flex; align-items: center; gap: .25rem; flex-shrink: 0; }
.bgw-sr-price {
    font-family: var(--bgw-fn-h);
    font-size: .85rem;
    color: var(--bgw-btn);
    white-space: nowrap;
}
.bgw-sr-remove {
    background: none; border: none; color: rgba(209,211,205,.35); cursor: pointer;
    font-size: 1rem; line-height: 1; padding: 0 2px; transition: var(--bgw-t);
}
.bgw-sr-remove:hover { color: var(--bgw-danger); }

.bgw-sum-pricing { display: flex; flex-direction: column; gap: .2rem; border-top: 1px solid var(--bgw-border); padding-top: .65rem; }
.bgw-sum-price-row { display: flex; justify-content: space-between; font-size: .78rem; color: var(--bgw-text2); }
.bgw-sum-build-row {
    font-family: var(--bgw-fn-h);
    font-size: .92rem;
    color: var(--bgw-text);
    font-weight: 600;
    padding: .3rem 0;
    border-top: 1px solid var(--bgw-border2);
    border-bottom: 1px solid var(--bgw-border2);
    margin: .15rem 0;
}
.bgw-sum-build-row span:last-child { color: var(--bgw-btn); }
.bgw-sum-save { color: var(--bgw-success) !important; font-size: .75rem !important; }

.bgw-sum-cta { padding-top: .35rem; }

.bgw-sum-note {
    display: flex;
    align-items: flex-start;
    gap: .4rem;
    font-size: .7rem;
    color: rgba(163,150,107,.6);
    line-height: 1.5;
    border-top: 1px solid var(--bgw-border2);
    padding-top: .65rem;
}

/* ── RESPONSIVE ──────────────────────────────────────────────────────────── */
@media (max-width: 900px) {
    .bgw-body { flex-direction: column; }
    .bgw-main { border-right: none; border-bottom: 1px solid var(--bgw-border2); }
    .bgw-sidebar { width: 100%; position: static; max-height: none; }
    .bgw-choice-3col { grid-template-columns: 1fr; }
    .bgw-choice-2col { grid-template-columns: 1fr; }
    .bgw-parts-multi  { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
    .bgw-header { padding: .9rem 1.1rem; }
    .bgw-main   { padding: 1.25rem; }
    .bgw-form-grid { grid-template-columns: 1fr; }
    .bgw-pc-thumb { width: 60px; }
}

/* ── UPGRADE BADGE (frontend part cards) ─────────────────────────────────── */
.bgw-pc-upgrade {
    display: inline-block;
    background: rgba(231,110,27,.15);
    color: #E76E1B;
    border: 1px solid rgba(231,110,27,.4);
    font-size: .65rem;
    font-weight: 700;
    letter-spacing: .05em;
    padding: 1px 6px;
    border-radius: 3px;
    margin-left: .4rem;
    vertical-align: middle;
    white-space: nowrap;
    text-transform: uppercase;
}
.bgw-part-upgrade {
    border-color: rgba(231,110,27,.35) !important;
}
.bgw-part-upgrade.bgw-part-selected {
    border-color: #E76E1B !important;
}

/* ── Default milspec badge on part cards ─────────────────────────────────── */
.bgw-default-tag {
    display: inline-block;
    background: rgba(93,184,122,.18);
    color: var(--bgw-success);
    border: 1px solid rgba(93,184,122,.35);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 1px 6px;
    border-radius: 3px;
    white-space: nowrap;
}

/* ── Upgrade badge ───────────────────────────────────────────────────────── */
.bgw-pc-upgrade {
    display: inline-block;
    background: rgba(231,110,27,.15);
    color: var(--bgw-btn);
    border: 1px solid rgba(231,110,27,.4);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    padding: 1px 6px;
    border-radius: 3px;
    white-space: nowrap;
    margin-left: .3rem;
}

/* ── Badge row on part cards ─────────────────────────────────────────────── */
.bgw-pc-badges {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin: .25rem 0 .2rem;
}

/* ── Part card variants ──────────────────────────────────────────────────── */
.bgw-part-default {
    border-color: rgba(93,184,122,.4) !important;
}
.bgw-part-default.bgw-part-selected {
    border-color: var(--bgw-success) !important;
}
.bgw-part-upgrade {
    border-color: rgba(231,110,27,.35) !important;
}
.bgw-part-upgrade.bgw-part-selected {
    border-color: var(--bgw-btn) !important;
}

/* ════ v4.3 Build Progress Navigator — sidebar step rows ═══════════ */

.bgw-nav-section {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--bgw-accent);
    padding: .65rem 1rem .25rem;
}

.bgw-nav-row {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    padding: .42rem 1rem;
    border-left: 3px solid transparent;
    transition: background .12s;
}
.bgw-nav-row-link {
    cursor: pointer;
}
.bgw-nav-row-link:hover {
    background: rgba(255,255,255,.04);
}
.bgw-nav-row-cur {
    background: rgba(231,110,27,.08);
    border-left-color: var(--bgw-btn);
}
.bgw-nav-row-skip {
    opacity: .45;
}

.bgw-nav-icon {
    font-size: .72rem;
    width: 14px;
    flex-shrink: 0;
    margin-top: .15rem;
    text-align: center;
    color: rgba(255,255,255,.2);
}
.bgw-nav-icon-done  { color: var(--bgw-success); font-weight: 700; }
.bgw-nav-icon-skip  { color: rgba(255,255,255,.18); }
.bgw-nav-icon-empty { color: rgba(255,255,255,.2); }

.bgw-nav-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1;
}
.bgw-nav-label {
    font-size: .72rem;
    font-weight: 600;
    color: var(--bgw-text2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.bgw-nav-sel {
    font-size: .67rem;
    color: rgba(209,211,205,.5);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-top: .03rem;
}
.bgw-nav-sel-empty {
    color: rgba(255,255,255,.2);
    font-style: italic;
}
