/* Stühle + Tisch */
.table {
    margin: 0 1.5rem;
    text-align: center;
}

.table-body { text-align: center; }

.chair-bottom span, .chair-top span {
    left: 50%;
    transform: translateX(-50%);
    background-color: transparent !important;
    font-size: 12px;
    font-weight: bold;
}

.chair-bottom span { top: -30px; }
.chair-top span { top: 30px; }

/* Farben */
.seat-free i, .seat-free span { color: black; }
.seat.reserved span, .seat.reserved i, li.seat-reserved i { color: #003398; }       /* Rot = bereits reserviert */
.seat.temp-reserved span, .seat.temp-reserved i, li.seat-temp-reserved i { color: #fc9433; }  /* Gelb = temporär reserviert */
.seat.sold span, .seat.sold i, li.seat-sold i { color: #ff0000; }           /* Blau = verkauft */
.seat.blocked span, .seat.blocked i { cursor: not-allowed; }
.seat.my_temp_reserved span, .seat.my_temp_reserved i, li.seat-my_temp_reserved i {color: green;}

/* Hover */
.seat:hover i, .seat:hover span { color: #003398!important; }

.w-80 { width: 80%; }

.vertical-text {
    writing-mode: vertical-rl;
    text-orientation: upright;
    font-weight: bold;
    text-align: center;
    font-size: calc(1rem + 2vh);
}

.table-placeholder { height: calc(2rem + 2 * 1.5rem); }

/* ============================= */
/* FLIEGENDER STUHL → CART ICON */
/* ============================= */
@keyframes flyToCart {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(var(--dx), var(--dy)) scale(0.3);
        opacity: 0;
    }
}

.fly-seat {
    position: fixed;
    pointer-events: none;
    z-index: 9999;
    font-size: 22px;
    color: orange;
    animation: flyToCart 0.8s ease-in forwards;
}

/* ============================= */
/* +1 / -1 AM SITZ */
/* ============================= */
@keyframes floatUp {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.8);
    }
    20% {
        opacity: 1;
        transform: translateY(0) scale(1.2);
    }
    100% {
        opacity: 0;
        transform: translateY(-30px) scale(1);
    }
}

.plus-minus {
    position: fixed;
    font-weight: bold;
    font-size: 26px;
    z-index: 9999;
    pointer-events: none;
    animation: floatUp 0.9s ease-out forwards;
}

.plus  { color: #28a745; }
.minus { color: #dc3545; }

/* ============================= */
/* 💶 EURO ÜBER CART ICON */
/* ============================= */
@keyframes euroUp {
    0% {
        opacity: 0;
        transform: translateY(10px) scale(0.7);
    }
    20% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
    100% {
        opacity: 0;
        transform: translateY(-60px) scale(1.3);
    }
}

.flying-euro {
    position: fixed;
    z-index: 9999;
    font-size: 2rem;
    font-weight: bold;
    pointer-events: none;
    animation: euroUp 0.9s ease-out forwards;
}

.flying-euro.plus  { color: #28a745; }
.flying-euro.minus { color: #dc3545; }

/* ============================= */
/* 🛒 WARENKORB WACKELT */
/* ============================= */
@keyframes cartShake {
    0%   { transform: translateX(0); }
    20%  { transform: translateX(-4px); }
    40%  { transform: translateX(4px); }
    60%  { transform: translateX(-3px); }
    80%  { transform: translateX(3px); }
    100% { transform: translateX(0); }
}

.cart-shake {
    animation: cartShake 0.4s ease;
}
