html {
    text-rendering: optimizeLegibility;
}

body {
    min-width: 320px;
}

.material-symbols-outlined {
    font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
    line-height: 1;
}

.star-fill {
    font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

.glass-panel {
    background: rgba(255, 255, 255, 0.74);
    border: 1px solid rgba(255, 255, 255, 0.62);
    -webkit-backdrop-filter: blur(22px);
    backdrop-filter: blur(22px);
}

.bg-mesh {
    background-color: #faf9f5;
    background-image:
        radial-gradient(at 0% 0%, rgba(62, 100, 48, 0.06) 0, transparent 42%),
        radial-gradient(at 100% 0%, rgba(204, 167, 48, 0.08) 0, transparent 42%);
}

::selection {
    background: rgba(204, 167, 48, 0.35);
}

.cart-bump {
    animation: cart-bump 320ms ease;
}

.success-pulse {
    animation: success-pulse 1.8s ease-in-out infinite;
}

[data-recipe-locked-content] {
    transition: opacity 240ms ease, filter 240ms ease;
}

[data-recipe-carousel],
[data-home-recipe-carousel] {
    cursor: grab;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

[data-recipe-carousel]::-webkit-scrollbar,
[data-home-recipe-carousel]::-webkit-scrollbar {
    display: none;
}

[data-recipe-carousel].is-dragging,
[data-home-recipe-carousel].is-dragging {
    cursor: grabbing;
    scroll-behavior: auto;
    user-select: none;
}

.admin-status-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 9999px;
    padding: 0.35rem 0.7rem;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
    white-space: nowrap;
}

.admin-icon-button,
.admin-action-button {
    display: inline-flex;
    min-height: 2.25rem;
    align-items: center;
    justify-content: center;
    border-radius: 0.9rem;
    background: rgba(255, 255, 255, 0.72);
    border: 1px solid rgba(195, 201, 187, 0.75);
    color: #3e6430;
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
    padding: 0 0.8rem;
    transition: background 180ms ease, transform 180ms ease, color 180ms ease;
}

.admin-icon-button:hover,
.admin-action-button:hover {
    background: #3e6430;
    color: #ffffff;
    transform: translateY(-1px);
}

.admin-select,
.admin-input {
    min-height: 2.75rem;
    border-radius: 1rem;
    border-color: #c3c9bb;
    background: rgba(255, 255, 255, 0.76);
    font-size: 0.875rem;
}

.admin-select:focus,
.admin-input:focus {
    border-color: #3e6430;
    box-shadow: 0 0 0 3px rgba(62, 100, 48, 0.12);
}

@keyframes cart-bump {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.22);
    }
    100% {
        transform: scale(1);
    }
}

@keyframes success-pulse {
    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(255, 224, 136, 0.3);
    }
    50% {
        box-shadow: 0 0 0 18px rgba(255, 224, 136, 0);
    }
}

@media (max-width: 640px) {
    .glass-panel {
        -webkit-backdrop-filter: blur(16px);
        backdrop-filter: blur(16px);
    }
}
