﻿.listing-card {
            transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
        }
        .listing-card:hover {
            transform: translateY(-4px) scale(1.015);
            box-shadow: 0 14px 28px -16px rgba(22, 163, 74, 0.75);
            border-color: #86efac;
        }
        .listing-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(clamp(150px, 20vw, 220px), 1fr));
            gap: 0.5rem;
            padding-right: 0.5rem;
        }
        .footer-link {
            position: relative;
            display: inline-block;
            background: none;
            border: none;
            padding: 0;
            color: #374151;
            font-weight: 500;
            cursor: pointer;
            text-decoration: none;
            transition: color 0.2s ease, transform 0.2s ease, text-shadow 0.2s ease;
        }
        .footer-link::after {
            content: '';
            position: absolute;
            left: 0;
            bottom: -2px;
            width: 100%;
            height: 2px;
            background: linear-gradient(90deg, #22c55e, #16a34a);
            opacity: 0;
            transform: scaleX(0.3);
            transform-origin: left;
            transition: transform 0.2s ease, opacity 0.2s ease;
        }
        .footer-link:hover {
            color: #166534;
            transform: translateY(-1px);
            text-shadow: 0 8px 18px rgba(22, 163, 74, 0.25);
        }
        .footer-link:hover::after {
            opacity: 1;
            transform: scaleX(1);
        }
        .footer-link:focus-visible {
            outline: none;
            border-radius: 0.25rem;
            box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.35);
        }
        .header-top-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 0.75rem;
            flex-wrap: wrap;
        }
        .app-brand {
            min-width: 0;
            flex: 1;
            max-width: 100%;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .app-logo {
            width: 2.25rem;
            height: 2.25rem;
            border-radius: 9999px;
            object-fit: cover;
            flex-shrink: 0;
        }
        .app-title-wrap {
            min-width: 0;
            display: flex;
            flex-direction: column;
        }
        .app-name {
            display: block;
            font-size: 1.875rem;
            line-height: 1.1;
            font-weight: 700;
            color: #16a34a;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }
        .app-motto {
            display: block;
            margin-top: 0.125rem;
            font-size: 0.72rem;
            line-height: 1.2;
            color: #4b5563;
            font-weight: 500;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            max-width: 100%;
        }
        .header-user-wrap {
            display: flex;
            align-items: flex-start;
            gap: 0.5rem;
            margin-left: auto;
            min-width: 0;
            flex-shrink: 1;
        }
        .header-user-meta {
            display: flex;
            flex-direction: column;
            align-items: flex-end;
            gap: 0.5rem;
            min-width: 0;
        }
        #notification-center {
            width: min(24rem, calc(100vw - 1rem));
            max-width: 24rem;
            white-space: normal;
        }
        @media (max-width: 1024px) {
            .header-top-row {
                padding: 0.875rem;
            }
            .app-brand {
                font-size: 1.9rem;
            }
            .app-logo {
                width: 2rem;
                height: 2rem;
            }
            .app-name {
                font-size: 1.5rem;
            }
            #notification-center {
                right: 0;
                left: auto;
                width: min(23rem, calc(100vw - 1rem));
            }
        }
        @media (max-width: 640px) {
            .header-top-row {
                padding: 0.75rem;
            }
            .app-brand {
                line-height: 1.2;
                max-width: 100%;
                white-space: nowrap;
                overflow: hidden;
                text-overflow: ellipsis;
            }
            .app-logo {
                width: 1.75rem;
                height: 1.75rem;
            }
            .app-name {
                font-size: 1.25rem;
            }
            .app-motto {
                font-size: 0.62rem;
            }
            .header-user-wrap {
                width: 100%;
                justify-content: space-between;
                align-items: flex-start;
            }
            .header-user-meta {
                align-items: flex-start;
                flex: 1;
            }
            .header-user-meta .flex.items-center.gap-2 {
                flex-wrap: wrap;
            }
            #user-status-text {
                max-width: 100%;
                text-align: left;
            }
            #avatar-notification-trigger {
                width: 3rem !important;
                height: 3rem !important;
            }
            #tabs {
                font-size: 0.95rem;
            }
            #tabs .tab-button {
                padding: 0.65rem 0.45rem;
            }
            #notification-center {
                width: min(22rem, calc(100vw - 0.75rem));
                right: 0;
            }
        }
        #location-map {
            width: 100%;
            height: 11.25rem;
            border-radius: 0.75rem;
            border: 1px solid #d1d5db;
            overflow: hidden;
        }
        .location-filter-card {
            max-width: 22.5rem;
        }
        html, body {
            height: auto;
            overflow-y: auto;
        }
        #app {
            min-height: 100vh;
        }
        .app-shell {
            display: flex;
            gap: 1rem;
            align-items: stretch;
            padding: 0.75rem 1rem 0.75rem;
        }
        .app-sidebar {
            width: 18rem;
            flex-shrink: 0;
            overflow: hidden;
        }
        .app-main {
            flex: 1;
            min-width: 0;
            overflow: visible;
            padding-right: 0.25rem;
        }
        .app-sidebar-inner {
            position: static;
            background: #f9fafb;
            border: 1px solid #e5e7eb;
            border-radius: 0.75rem;
            padding: 0.75rem;
            margin-top: 0;
        }
        @media (max-width: 980px) {
            .app-shell {
                flex-direction: column;
                padding: 0 1rem 1rem;
            }
            .app-sidebar {
                width: auto;
            }
            .app-main {
                overflow: visible;
            }
            .app-sidebar-inner {
                position: static;
            }
        }
