        /* ── Breadcrumb link ── */
        .breadcrumb-link {
            font-size: 14px;
            font-weight: 600;
            color: #6b7280;
            text-decoration: none;
            display: inline-flex;
            align-items: center;
            transition: color 0.2s;
        }
        .breadcrumb-link:hover {
            color: #111827;
        }
        .breadcrumb-link svg {
            width: 16px;
            height: 16px;
            margin-right: 6px;
        }

        /* ── Hero section ── */
        .hero-section {
            width: 100%;
            text-align: center;
            margin-bottom: 4rem;
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-top: 1rem;
        }
        .hero-section h1 {
            font-size: 3rem;
            font-weight: 900;
            letter-spacing: -0.05em;
            margin-bottom: 1rem;
        }
        .hero-section p {
            color: #6b7280;
            font-size: 0.875rem;
            font-weight: 300;
            max-width: 32rem;
            line-height: 1.625;
        }
        .error-badge {
            margin-top: 1.25rem;
            display: inline-block;
            padding: 0.75rem 1.25rem;
            background-color: #fef2f2;
            color: #b91c1c;
            font-size: 0.875rem;
            font-weight: 500;
            border-radius: 12px;
            border: 1px solid #fee2e2;
        }

        /* ── Grid Layout ── */
        .room-grid {
            width: 100%;
            display: grid;
            grid-template-columns: repeat(1, minmax(0, 1fr));
            gap: 1.25rem;
        }
        @media (min-width: 640px) {
            .room-grid {
                grid-template-columns: repeat(2, minmax(0, 1fr));
            }
        }
        @media (min-width: 768px) {
            .room-grid {
                grid-template-columns: repeat(3, minmax(0, 1fr));
            }
        }

        /* ── Room card ── */
        .room-card {
            background: #ffffff;
            border: 1px solid rgba(168,144,96,0.14);
            border-radius: 20px;
            overflow: hidden;
            box-shadow: 0 2px 16px rgba(168,144,96,0.06);
            transition: transform 0.28s cubic-bezier(0.16,1,0.3,1),
                        box-shadow 0.28s cubic-bezier(0.16,1,0.3,1),
                        border-color 0.28s;
            display: flex;
            flex-direction: column;
            text-decoration: none;
        }
        .room-card:hover {
            transform: translateY(-4px);
            box-shadow: 0 12px 32px rgba(168,144,96,0.14);
            border-color: rgba(168,144,96,0.45);
        }

        /* Admin card variant */
        .room-card.admin {
            border-color: rgba(168,144,96,0.38);
            background: linear-gradient(160deg, #FDFAF3 0%, #ffffff 100%);
        }
        .room-card.admin:hover {
            border-color: rgba(168,144,96,0.8);
            box-shadow: 0 14px 36px rgba(168,144,96,0.18);
        }

        /* ── Card Banner (top area) ── */
        .card-banner {
            padding: 24px;
            border-bottom: 1px solid rgba(168,144,96,0.10);
            min-height: 90px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
            gap: 10px;
        }
        .card-game-title {
            font-size: 15px;
            font-weight: 700;
            color: #3D3830;
            line-height: 1.4;
            letter-spacing: 0.01em;
            flex: 1;
        }
        .card-game-title img {
            height: 28px;
            width: auto;
            max-width: 100%;
            object-fit: contain;
            display: block;
        }
        .card-room-name {
            font-size: 11px;
            color: #B0A898;
            font-weight: 400;
            letter-spacing: 0.06em;
            margin-top: 2px;
        }

        /* ── Status badge ── */
        .status-badge {
            display: inline-flex;
            align-items: center;
            gap: 5px;
            padding: 3px 9px;
            border-radius: 999px;
            font-size: 10px;
            font-weight: 600;
            letter-spacing: 0.04em;
            white-space: nowrap;
            flex-shrink: 0;
        }
        .status-badge.available {
            background: rgba(134,163,109,0.11);
            color: #506040;
            border: 1px solid rgba(134,163,109,0.22);
        }
        .status-badge.in-use {
            background: rgba(210,100,114,0.10);
            color: #8C3E47;
            border: 1px solid rgba(210,100,114,0.22);
        }
        .status-badge.permanent {
            background: rgba(168,144,96,0.10);
            color: #7A6030;
            border: 1px solid rgba(168,144,96,0.25);
        }
        .pulse-dot {
            width: 6px; height: 6px;
            border-radius: 50%;
            flex-shrink: 0;
        }
        .pulse-dot.green { background: #86A36D; animation: pg 2s infinite; }
        .pulse-dot.red { background: #D26472; animation: pr 2s infinite; }
        .pulse-dot.gold { background: #C4A060; animation: pgold 2s infinite; }
        @keyframes pg   { 0%,100%{box-shadow:0 0 0 0 rgba(134,163,109,0)} 50%{box-shadow:0 0 0 4px rgba(134,163,109,0.28)} }
        @keyframes pr   { 0%,100%{box-shadow:0 0 0 0 rgba(210,100,114,0)} 50%{box-shadow:0 0 0 4px rgba(210,100,114,0.25)} }
        @keyframes pgold{ 0%,100%{box-shadow:0 0 0 0 rgba(168,144,96,0)}  50%{box-shadow:0 0 0 4px rgba(168,144,96,0.25)} }

        /* ── Admin badge ── */
        .admin-badge {
            display: inline-flex;
            align-items: center;
            gap: 4px;
            padding: 2px 8px;
            border-radius: 999px;
            font-size: 9px;
            font-weight: 800;
            letter-spacing: 0.12em;
            text-transform: uppercase;
            background: linear-gradient(135deg, #A89060, #D1BA8E);
            color: white;
        }

        /* ── Card footer ── */
        .card-footer {
            padding: 14px 20px;
            background-color: rgba(168, 144, 96, 0.05);
            border-top: 1px solid rgba(168, 144, 96, 0.1);
            display: flex;
            align-items: center;
            justify-content: space-between;
            color: #A89060;
            text-decoration: none;
            transition: background-color 0.2s;
        }
        .room-card:hover .card-footer {
            background-color: rgba(168, 144, 96, 0.1);
        }
        .status-row {
            display: flex;
            align-items: center;
            gap: 6px;
            flex-wrap: wrap;
            margin-top: 12px;
        }
