/* Byteforge Side Cart */

#byteforge-sidecart {
    position: fixed;
    inset: 0;
    z-index: 9999;
    pointer-events: none;
}

#byteforge-sidecart .byteforge-sidecart__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(2px);
    opacity: 0;
    transition: opacity .25s ease;
}

#byteforge-sidecart .byteforge-sidecart__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(420px, 92vw);
    height: 100%;
    /* Follow theme colors when available */
    background: var(--byteforge-panel-bg, var(--qodef-page-background-color, #ffffff));
    color: var(--byteforge-panel-text, inherit);
    transform: translateX(100%);
    opacity: 0;
    transition: transform .3s ease, opacity .3s ease;
    box-shadow: -8px 0 24px rgba(255, 255, 255, 0.25);
    display: flex;
    flex-direction: column;
}

#byteforge-sidecart[aria-hidden="false"] {
    pointer-events: auto;
}

#byteforge-sidecart[aria-hidden="false"] .byteforge-sidecart__overlay {
    opacity: 1;
}

#byteforge-sidecart[aria-hidden="false"] .byteforge-sidecart__panel {
    transform: translateX(0);
    opacity: 1;
}

.byteforge-sidecart__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: inherit;
    border-bottom: 1px solid var(--byteforge-panel-border, rgba(255, 255, 255, 0.08));
    padding: 12px 16px;
}
.byteforge-sidecart__title-wrap { display:flex; align-items: baseline; gap: 8px; }
.byteforge-sidecart__title { font-size: 22px; margin: 0; }
.byteforge-sidecart__count { color: var(--byteforge-muted, #949494); font-size: 14px; }
.byteforge-sidecart__actions { display:flex; align-items:center; gap: 10px; }
.byteforge-sidecart__clear { background:none; border:0; color: var(--qodef-main-color, #950810); cursor:pointer; font-size: 14px; }
.byteforge-sidecart__clear:hover { text-decoration: underline; }
.byteforge-sidecart__clear.loading {
    cursor: progress;
    opacity: .6;
    pointer-events: none;
}
.byteforge-sidecart__close { background:none; border:0; color: var(--byteforge-muted, #949494); cursor:pointer; line-height: 1; font-size: 0; position: relative; }
.byteforge-sidecart__close::before { content: '\00D7'; /* × */ font-size: 20px; }
.byteforge-sidecart__close:hover { color:#df000d; }

.byteforge-sidecart__content {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 10px 16px;
}
.byteforge-sidecart__content::-webkit-scrollbar {
    width: 8px;
}
.byteforge-sidecart__content::-webkit-scrollbar-thumb {
    background: rgba(150, 150, 150, 0.3);
    border-radius: 4px;
}
.byteforge-sidecart__content:hover::-webkit-scrollbar-thumb {
    background: rgba(150, 150, 150, 0.6);
}
.byteforge-sidecart__content {
    scrollbar-width: thin;
    scrollbar-color: rgba(150, 150, 150, 0.3) transparent;
}

.byteforge-sidecart__footer {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    border-top: 1px solid var(--byteforge-panel-border, rgba(255, 255, 255, 0.08));
    background: inherit;
    padding: 10px 16px 14px;
}
.byteforge-sidecart__subtotal { display:flex; align-items:center; justify-content: space-between; margin-bottom: 8px; }
.byteforge-sidecart__subtotal .label { color: var(--byteforge-muted, #949494); font-size: 14px; text-transform: uppercase; }
.byteforge-sidecart__subtotal .amount { font-size: 20px; font-weight: 600; }
.byteforge-sidecart__buttons { display:flex; gap:10px; }
.byteforge-sidecart__buttons .button { flex:1 1 0; text-align:center; padding: 10px 12px; border-radius: 4px; transition: transform .15s ease, box-shadow .15s ease; text-decoration: none; }
/* Defer button colors to theme; keep only subtle hover */
.byteforge-sidecart__buttons .button:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}
/* If theme-styled (Qode) button classes are present, avoid our hover lift */
#byteforge-sidecart .byteforge-sidecart__buttons .single_add_to_cart_button:hover {
    transform: none;
    box-shadow: none;
}

/* Match Qode/"Add to cart" filled style for anchors in the sidecart */
#byteforge-sidecart .byteforge-sidecart__buttons .button.alt,
#byteforge-sidecart .byteforge-sidecart__buttons .single_add_to_cart_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: var(--byteforge-cta-bg, var(--qodef-main-color, #950810));
    color: var(--byteforge-cta-text, #fff);
    border: 1px solid transparent;
    border-radius: var(--byteforge-cta-radius, 12px);
    text-transform: uppercase;
    font-weight: 700;
}
#byteforge-sidecart .byteforge-sidecart__buttons .button.alt:hover,
#byteforge-sidecart .byteforge-sidecart__buttons .single_add_to_cart_button:hover {
    background: var(--byteforge-cta-bg-hover, var(--qodef-main-color-hover, #df000d));
    color: var(--byteforge-cta-text, #fff);
}
#byteforge-sidecart .byteforge-sidecart__buttons .qodef-m-icon svg,
#byteforge-sidecart .byteforge-sidecart__buttons .qodef-m-icon svg path,
#byteforge-sidecart .byteforge-sidecart__buttons .qodef-m-icon svg rect {
    fill: currentColor;
}

/* Mini cart compatibility tweaks (Qode/Woo defaults) */
#byteforge-sidecart .woocommerce-mini-cart {
    margin: 0;
    padding: 0;
    list-style: none;
}
#byteforge-sidecart .woocommerce-mini-cart__total,
#byteforge-sidecart .woocommerce-mini-cart__buttons {
    display: none; /* We present our own sticky footer */
}

/* Grouped build structure in mini-cart */
#byteforge-sidecart .woocommerce-grouped-product-group-header,
#byteforge-sidecart .woocommerce-grouped-product-group-subheader,
#byteforge-sidecart .woocommerce-mini-cart-item.grouped-product-item,
#byteforge-sidecart .woocommerce-mini-cart-group-summary {
    /* Card-like left/right rails so each build reads as a block */
    border-left: 1px solid var(--byteforge-build-border, var(--byteforge-panel-border, rgba(255,255,255,.12)));
    border-right: 1px solid var(--byteforge-build-border, var(--byteforge-panel-border, rgba(255,255,255,.12)));
    padding-left: 12px;
    padding-right: 12px;
    background: var(--byteforge-build-bg, transparent);
}

#byteforge-sidecart .woocommerce-grouped-product-group-header {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--byteforge-build-border, var(--byteforge-panel-border, rgba(255,255,255,.12)));
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}
#byteforge-sidecart .woocommerce-grouped-product-group-header:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

#byteforge-sidecart .woocommerce-grouped-product-group-subheader,
#byteforge-sidecart .woocommerce-mini-cart-item .product-info {
    display: grid;
    grid-template-columns: minmax(110px, 38%) minmax(0, 62%);
    gap: 6px 12px;
}
#byteforge-sidecart .woocommerce-grouped-product-group-subheader {
    margin: 6px 0 4px;
    color: var(--byteforge-muted, #949494);
    font-size: 12px;
    text-transform: none;
}
#byteforge-sidecart .woocommerce-mini-cart-item.grouped-product-item {
    padding: 6px 0;
    border-bottom: 1px dashed var(--byteforge-panel-border, rgba(255,255,255,.08));
}
#byteforge-sidecart .woocommerce-mini-cart-item.grouped-product-item:last-of-type {
    border-bottom: 0;
}
#byteforge-sidecart .woocommerce-mini-cart-item .product-component {
    font-weight: 600;
}
#byteforge-sidecart .woocommerce-mini-cart-item .product-name {
    color: var(--byteforge-muted, #949494);
    word-break: break-word;
    hyphens: auto;
}

#byteforge-sidecart .woocommerce-mini-cart-group-summary {
    margin: 8px 0 12px;
    padding: 8px 0 0;
    border-bottom: 1px solid var(--byteforge-build-border, var(--byteforge-panel-border, rgba(255,255,255,.12)));
    border-bottom-left-radius: 6px;
    border-bottom-right-radius: 6px;
    background: var(--byteforge-build-summary-bg, inherit);
}
#byteforge-sidecart .woocommerce-mini-cart-group-summary > div {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    color: inherit;
    font-size: 14px;
}
#byteforge-sidecart .woocommerce-mini-cart-group-summary .group-total {
    font-weight: 600;
}

/* Sticky group header for long lists */
#byteforge-sidecart .woocommerce-grouped-product-group-header {
    position: sticky;
    top: 0;
    z-index: 2;
    background: inherit;
    padding: 8px 0;
}

/* Responsive: stack rows on very narrow widths */
@media (max-width: 360px) {
    #byteforge-sidecart .woocommerce-grouped-product-group-subheader,
    #byteforge-sidecart .woocommerce-mini-cart-item .product-info {
        grid-template-columns: 1fr;
    }
    #byteforge-sidecart .woocommerce-mini-cart-item .product-component {
        opacity: .9;
    }
}

/* Small screens */
@media (max-width: 480px) {
    #byteforge-sidecart .byteforge-sidecart__panel { width: 100%; }
}
/* Build-group card styling */
#byteforge-sidecart .build-group {
    /* Visible neutral border by default; theme can override via --byteforge-build-border */
    border: 1px solid var(--byteforge-build-border, rgba(0, 0, 0, 0.12));
    border-radius: 8px;
    padding: 8px 12px 10px;
    margin: 12px 0;
    background: var(--byteforge-build-bg, transparent);
    transition: background-color .25s ease, border-color .25s ease;
}
#byteforge-sidecart .build-group.is-removing { opacity: .45; filter: grayscale(20%); }
#byteforge-sidecart .build-group:hover {
    background-color: var(--byteforge-hover-bg, rgba(0, 0, 0, 0.03));
    border-color: var(--byteforge-build-border-hover, rgba(0, 0, 0, 0.08));
}

#byteforge-sidecart .build-header { display:flex; align-items:center; justify-content:space-between; }
#byteforge-sidecart .build-header .build-toggle {
    appearance: none;
    background: none;
    border: 0;
    color: inherit;
    padding: 6px 8px 6px 0;
    cursor: pointer;
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
}
#byteforge-sidecart .build-header .build-remove {
    appearance: none;
    background: none;
    border: 0;
    color: var(--byteforge-muted, #949494);
    cursor: pointer;
    padding: 6px;
    margin-left: 8px;
    line-height: 1;
    font-size: 0; /* Use pseudo-element for the icon size */
}
#byteforge-sidecart .build-header .build-remove::before {
    content: '\00D7'; /* multiplication sign (×) */
    font-size: 16px;
}
#byteforge-sidecart .build-header .build-remove:hover {
    color: #df000d;
}
#byteforge-sidecart .build-header .build-remove[aria-busy="true"] {
    opacity: .6;
    pointer-events: none;
}
#byteforge-sidecart .build-header .build-toggle::after {
    content: '\25BC'; /* caret down */
    float: right;
    transition: transform .2s ease;
}
#byteforge-sidecart .build-group.is-collapsed .build-header .build-toggle::after {
    transform: rotate(-90deg);
}

#byteforge-sidecart .build-content { transition: height .25s ease, opacity .15s ease; }
#byteforge-sidecart .build-group.is-collapsed .build-content { display: none; }

#byteforge-sidecart .build-table { display: grid; gap: 6px 12px; }
#byteforge-sidecart .build-row { display: grid; grid-template-columns: minmax(110px, 38%) minmax(0, 62%); gap: 6px 12px; }
#byteforge-sidecart .build-row--header { font-weight: 600; color: var(--byteforge-muted, #949494); border-bottom: 1px solid var(--byteforge-panel-border, rgba(255,255,255,.08)); padding-bottom: 4px; }
#byteforge-sidecart .build-summary { margin-top: 8px; border-top: 1px solid var(--byteforge-panel-border, rgba(255,255,255,.08)); padding-top: 8px; font-size: 14px; }
#byteforge-sidecart .build-summary .group-total { font-weight: 700; }

/* Responsive stack for very narrow widths */
@media (max-width: 360px) {
    #byteforge-sidecart .build-row { grid-template-columns: 1fr; }
}
