/* =============================================================================
   PrintSys — front-cart.css
   Styles for custom cart item blocks on WooCommerce cart, mini cart,
   block cart, and checkout pages.
   All selectors use the .ps- prefix for easy theme overriding.
   ============================================================================= */

/* ── Variables ─────────────────────────────────────────────────────────────── */
:root {
    --ps-color-bg:          #f8f9fb;
    --ps-color-bg-config:   #eef1f6;
    --ps-color-border:      #dde1ea;
    --ps-color-text:        #1f2937;
    --ps-color-muted:       #6b7280;
    --ps-color-accent:      #2563eb;
    --ps-color-accent-hover:#1d4ed8;
    --ps-color-file:        #059669;
    --ps-color-file-hover:  #047857;
    --ps-color-price:       #111827;

    --ps-radius:            8px;
    --ps-radius-sm:         5px;
    --ps-font-sm:           13px;
    --ps-font-xs:           11px;
    --ps-gap:               10px;
}

/* =============================================================================
   CLASSIC CART (.ps-item)
   ============================================================================= */

.ps-item {
    margin-top: 8px;
    margin-left:20px;
    border: 1px solid var(--ps-color-border);
    border-radius: var(--ps-radius);
    background: var(--ps-color-bg);
    overflow: hidden;
}

/* ── Config section ────────────────────────────────────────────────────────── */
.ps-item__section--config {
    display: flex;
    align-items: flex-start;
    gap: var(--ps-gap);
    padding: 8px 12px;
    background: var(--ps-color-bg-config);
    border-bottom: 1px solid var(--ps-color-border);
}

.ps-item__params {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    align-items: center;
}

.ps-item__param {
    font-size: var(--ps-font-sm);
    color: var(--ps-color-text);
    line-height: 1.5;
}

.ps-item__param-key {
    color: var(--ps-color-muted);
    font-weight: 500;
}

.ps-item__param-val {
    font-weight: 600;
}

/* ── Nakład + Termin row ───────────────────────────────────────────────────── */
.ps-item__meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid var(--ps-color-border);
}

.ps-item__meta {
    display: flex;
    flex-direction: column;
    gap: 1px;
    padding: 7px 12px;
    border-right: 1px solid var(--ps-color-border);
}

.ps-item__meta:last-child {
    border-right: none;
}

.ps-item__meta-label {
    font-size: var(--ps-font-xs);
    color: var(--ps-color-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 500;
}

.ps-item__meta-value {
    font-size: var(--ps-font-sm);
    font-weight: 700;
    color: var(--ps-color-text);
}

.ps-term__date {
    font-weight: 400;
    color: var(--ps-color-muted);
}

/* ── Footer: actions ──────────────────────────────────────────────────────── */
.ps-item__footer {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 8px 12px;
    gap: var(--ps-gap);
}

.ps-item__actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* ── Shared button base ───────────────────────────────────────────────────── */
.ps-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 12px;
    border-radius: var(--ps-radius-sm);
    font-size: var(--ps-font-sm);
    font-weight: 600;
    line-height: 1.4;
    text-decoration: none;
    cursor: pointer;
    border: 1px solid transparent;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    white-space: nowrap;
    background: none;
    font-family: inherit;
}

.ps-btn svg {
    flex-shrink: 0;
}

.ps-btn--edit {
    background: var(--ps-color-accent);
    border-color: var(--ps-color-accent);
    color: #fff;
}

.ps-btn--edit:hover,
.ps-btn--edit:focus {
    background: var(--ps-color-accent-hover);
    border-color: var(--ps-color-accent-hover);
    color: #fff;
}

.ps-btn--file {
    background: transparent;
    border-color: var(--ps-color-file);
    color: var(--ps-color-file);
}

.ps-btn--file:hover,
.ps-btn--file:focus {
    background: var(--ps-color-file);
    color: #fff;
}

/* ── Subtotal column (cart table) ──────────────────────────────────────────── */
.ps-subtotal {
    font-weight: 700;
    color: var(--ps-color-price);
}

.ps-subtotal__label {
    font-size: var(--ps-font-xs);
    font-weight: 400;
    color: var(--ps-color-muted);
    margin-left: 2px;
}

/* ── Suppress empty WC columns for PS items ────────────────────────────────── */
.woocommerce-cart-form .cart_item .product-quantity:empty {
    min-width: 0;
    padding: 0;
}

.woocommerce-cart-form .cart_item .product-price:empty {
    min-width: 0;
}

/* ── Classic cart responsive ───────────────────────────────────────────────── */
@media (max-width: 600px) {
    .ps-item__section--config {
        flex-direction: column;
        gap: 6px;
    }

    .ps-item__footer {
        flex-direction: column;
        align-items: flex-start;
    }
}

/* =============================================================================
   BLOCK CART — hide native WC prices & quantity selector for PS items
   ============================================================================= */

.wc-block-cart-item__prices {
    display: none !important;
}

.wc-block-components-quantity-selector {
    display: none !important;
}

/* ── WooCommerce Blocks cart — flat item data styling ──────────────────────── */
.wc-block-components-product-details {
    font-size: var(--ps-font-sm);
    color: var(--ps-color-text);
    margin-top: 6px;
}

.wc-block-components-product-details__name {
    color: var(--ps-color-muted);
    font-weight: 500;
}

.wc-block-components-product-details__value {
    font-weight: 600;
}

/* =============================================================================
   MINI CART (.ps-mini)
   Simplified display: nakład, cena netto, edytuj link.
   All classes use .ps-mini- prefix for easy theme overriding.
   ============================================================================= */

.ps-mini {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 10px;
    margin-top: 4px;
    font-size: var(--ps-font-sm);
    line-height: 1.4;
}

.ps-mini__label {
    color: var(--ps-color-muted);
    font-weight: 500;
    font-size: var(--ps-font-xs);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.ps-mini__qty {
    color: var(--ps-color-text);
    font-size: var(--ps-font-sm);
}

.ps-mini__qty strong {
    font-weight: 700;
}

.ps-mini__price {
    font-weight: 700;
    color: var(--ps-color-price);
    font-size: var(--ps-font-sm);
}

.ps-mini__price small {
    font-weight: 400;
    color: var(--ps-color-muted);
    font-size: var(--ps-font-xs);
}

.ps-mini__edit {
    font-size: var(--ps-font-xs);
    color: var(--ps-color-accent);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.15s;
}

.ps-mini__edit:hover {
    color: var(--ps-color-accent-hover);
    text-decoration: underline;
}

/* ── Hide native WC quantity in mini cart for PS items ──────────────────────── */
.widget_shopping_cart .quantity,
.woocommerce-mini-cart .quantity {
    display: none !important;
}

/* ── Mini cart footer (totals + button) ────────────────────────────────────── */
.ps-mini-footer {
    list-style: none;
    border-top: 1px solid var(--ps-color-border);
    padding: 14px 0 0;
    margin-top: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.ps-mini-footer__totals {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    text-align: center;
}

.ps-mini-footer__net {
    font-size: 20px;
    font-weight: 800;
    color: var(--ps-color-price);
}

.ps-mini-footer__net small {
    font-size: var(--ps-font-xs);
    font-weight: 400;
    color: var(--ps-color-muted);
}

.ps-mini-footer__gross {
    font-size: var(--ps-font-sm);
    font-weight: 500;
    color: var(--ps-color-muted);
}

.ps-mini-footer__gross small {
    font-size: var(--ps-font-xs);
    font-weight: 400;
}

.ps-mini-footer__btn {
    display: block;
    width: 100%;
    padding: 10px 16px;
    text-align: center;
    background: var(--ps-color-accent);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border-radius: var(--ps-radius);
    text-decoration: none;
    transition: background 0.15s;
    font-family: inherit;
}

.ps-mini-footer__btn:hover {
    background: var(--ps-color-accent-hover);
    color: #fff;
}

/* ── Hide native WC mini cart totals and buttons when PS footer is present ─── */
.ps-mini-footer ~ .woocommerce-mini-cart__total,
.ps-mini-footer ~ .woocommerce-mini-cart__buttons {
    display: none !important;
}

/* Alternative: hide if footer comes before (DOM order varies by theme) */
.woocommerce-mini-cart:has(.ps-mini-footer) + .woocommerce-mini-cart__total,
.woocommerce-mini-cart:has(.ps-mini-footer) + .woocommerce-mini-cart__buttons,
.woocommerce-mini-cart:has(.ps-mini-footer) ~ .woocommerce-mini-cart__total,
.woocommerce-mini-cart:has(.ps-mini-footer) ~ .woocommerce-mini-cart__buttons {
    display: none !important;
}
