 :root {
    --brand-primary: #0f172a;
}

body {
    background-image:
        radial-gradient(circle at top left, rgba(251, 146, 60, 0.18), transparent 28%),
        radial-gradient(circle at bottom right, rgba(234, 88, 12, 0.12), transparent 24%);
}

.hide-scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

.filter-type-btn {
    color: #64748b;
}

.filter-type-btn.active {
    background: linear-gradient(135deg, var(--brand-primary), color-mix(in srgb, var(--brand-primary) 82%, black));
    color: #ffffff;
    box-shadow: 0 8px 18px color-mix(in srgb, var(--brand-primary) 28%, transparent);
}

.category-tab {
    background: #f1f5f9;
    color: #475569;
}

.category-tab.active {
    background: #0f172a;
    color: #ffffff;
}

.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    overflow-wrap: anywhere;
}

.menu-card {
    min-width: 0;
}

.menu-card .menu-name,
.menu-card .menu-description {
    min-width: 0;
}

.full-description {
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.menu-card:hover .menu-image {
    transform: scale(1.06);
}

.loading-shimmer {
    background: linear-gradient(90deg, rgba(226, 232, 240, 0.7), rgba(248, 250, 252, 1), rgba(226, 232, 240, 0.7));
    background-size: 200% 100%;
    animation: shimmer 1.2s linear infinite;
}

@keyframes shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

body.dark-mode {
    color: #e2e8f0;
    background-color: #020617;
    background-image:
        radial-gradient(circle at top left, rgba(249, 115, 22, 0.18), transparent 28%),
        radial-gradient(circle at bottom right, rgba(15, 23, 42, 0.85), transparent 24%);
}

body.dark-mode main {
    background: linear-gradient(180deg, rgba(15, 23, 42, 0.98), rgba(2, 6, 23, 0.98));
}

body.dark-mode section,
body.dark-mode article,
body.dark-mode #emptyState {
    background-color: rgba(15, 23, 42, 0.94) !important;
    color: #e2e8f0;
}

body.dark-mode .text-slate-900,
body.dark-mode .text-slate-800,
body.dark-mode .text-slate-700,
body.dark-mode .text-slate-600 {
    color: #e2e8f0 !important;
}

body.dark-mode .text-slate-500,
body.dark-mode .text-slate-400 {
    color: #94a3b8 !important;
}

body.dark-mode .bg-white,
body.dark-mode .bg-white\/90,
body.dark-mode .bg-white\/85,
body.dark-mode .bg-stone-50,
body.dark-mode .bg-stone-100 {
    background-color: rgba(15, 23, 42, 0.94) !important;
}

body.dark-mode .border-orange-100,
body.dark-mode .border-slate-200,
body.dark-mode .ring-black\/5 {
    border-color: rgba(51, 65, 85, 0.9) !important;
}
