/* ========================================
   CART.CSS - Styles für Warenkorb & Auswahl
   ======================================== */

/* --- Auswahl der Preisstaffel (Produktdetailseite) --- */
.price-tier-selection { display: flex; flex-direction: column; gap: var(--spacing-sm); margin-top: var(--spacing-md); }
.radio-option { display: flex; }
.radio-option input[type="radio"] { opacity: 0; position: fixed; width: 0; }
.radio-option label { display: flex; justify-content: space-between; align-items: center; width: 100%; padding: var(--spacing-md); background-color: var(--color-bg-secondary); border: 2px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition-base); }
.radio-option label:hover { border-color: var(--color-border-light); background-color: var(--color-bg-tertiary); }
.radio-option input[type="radio"]:checked + label { border-color: var(--color-accent-green); background-color: #1f3c2b; box-shadow: 0 0 8px rgba(34, 139, 34, 0.2); }
.radio-option input[type="radio"]:focus-visible + label { outline: 2px solid var(--color-accent-green); outline-offset: 2px; }
.option-label { font-weight: var(--font-weight-semibold); color: var(--color-text-primary); }
.option-price { font-weight: var(--font-weight-bold); color: var(--color-accent-bright); }

/* --- Allgemeine Flash-Nachrichten --- */
.flash-messages-container { max-width: 960px; margin: 0 auto; padding: 0 var(--spacing-lg) var(--spacing-lg); }

/* --- Warenkorb-Seite (view.html) --- */
.cart-container { max-width: 960px; margin: 0 auto; padding: var(--spacing-2xl) var(--spacing-lg); }
.cart-main-content { background-color: var(--color-bg-secondary); border-radius: var(--radius-lg); padding: var(--spacing-xl); border: 1px solid var(--color-border); }
.cart-table { width: 100%; border-collapse: collapse; }
.cart-table th { text-align: left; padding-bottom: var(--spacing-md); color: var(--color-text-tertiary); font-size: var(--font-size-sm); text-transform: uppercase; border-bottom: 1px solid var(--color-border); }
.cart-table td { padding: var(--spacing-lg) var(--spacing-xs); border-bottom: 1px solid var(--color-border); vertical-align: middle; }
.cart-table a { font-weight: var(--font-weight-semibold); color: var(--color-text-primary); }
.cart-table a:hover { color: var(--color-accent-green); }

/* Spaltenbreiten */
.col-product { width: 40%; }
.col-selection { width: 25%; }
.col-price { width: 25%; }
.col-actions { width: 10%; text-align: right; }

/* Letzte Zeile im Body (vor dem Footer) */
.cart-table tbody tr:last-child td { border-bottom: 2px solid var(--color-border-light); }

/* Gesamtpreis-Zeile im tfoot */
.cart-total-row td { border: none; padding-top: var(--spacing-lg); }
.total-label { text-align: right; font-weight: bold; color: var(--color-text-secondary); }
.total-price { font-size: var(--font-size-lg); text-align: right; }

/* Aktionen unter der Tabelle */
.cart-footer-actions { display: flex; justify-content: space-between; align-items: center; margin-top: var(--spacing-xl); padding-top: var(--spacing-xl); border-top: 1px solid var(--color-border); }

/* Button zum Entfernen */
.btn-remove { background: none; border: none; color: var(--color-text-tertiary); font-size: 1.5rem; cursor: pointer; padding: 0 var(--spacing-sm); }
.btn-remove:hover { color: var(--color-accent-error); }
.actions-cell { text-align: right; }

/* Leerer Warenkorb */
.cart-empty { text-align: center; padding: var(--spacing-3xl) var(--spacing-lg); background-color: var(--color-bg-secondary); border-radius: var(--radius-lg); }
.cart-empty h2 { color: var(--color-text-primary); }
.cart-empty p { max-width: 50ch; margin: var(--spacing-md) auto; }
.cart-empty .btn { margin-top: var(--spacing-lg); }

/* Responsive Anpassungen */
@media (max-width: 768px) {
    .cart-table thead { display: none; }
    .cart-table tr, .cart-total-row { display: block; border-bottom: 2px solid var(--color-border-light); padding: var(--spacing-lg) 0; }
    .cart-table tbody tr:last-child { border-bottom: none; }
    .cart-table td { display: flex; justify-content: space-between; align-items: center; border: none; padding: var(--spacing-sm) 0; }
    .cart-table td::before { content: attr(data-label); font-weight: bold; color: var(--color-text-secondary); }
    .cart-total-row td { padding-top: 0; }
    .total-label { justify-content: flex-start !important; }
    .actions-cell, .total-price { justify-content: flex-end !important; }
    .cart-footer-actions { flex-direction: column; gap: var(--spacing-md); }
    .cart-footer-actions .btn { width: 100%; }
}

