/* PRTS 前端共享卡片样式 — 用于 [prts_operator_filter] 和 [prts_pinned_operators] */
.pf-container {
    width: 100%;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    margin-bottom: 30px;
}
.pf-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 25px 15px;
    width: 100%;
    box-sizing: border-box;
    perspective: 1500px;
}
.pf-grid__item {
    box-sizing: border-box;
    perspective: 1500px;
}
.pf-card-rig {
    display: block;
    width: 100%;
    aspect-ratio: 9 / 16;
    position: relative;
    transform-style: preserve-3d;
    transition: transform 0.45s cubic-bezier(0.25, 0.8, 0.25, 1), border-color 0.45s ease, box-shadow 0.45s ease;
    border: 4px solid #fff;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15), inset 0 0 40px rgba(0, 0, 0, 0.2);
    box-sizing: border-box;
    overflow: hidden;
    z-index: 1;
    cursor: pointer;
}
.pf-card-rig::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    mix-blend-mode: color-dodge;
    background-image: var(--pf-shine, linear-gradient(135deg, rgba(255, 255, 255, 0.08) 0%, transparent 60%));
}
.pf-card-rig::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 5;
    pointer-events: none;
    background-image: var(--pf-light, none);
    mix-blend-mode: overlay;
}
.pf-grid__item:hover {
    z-index: 10;
}
.pf-grid__item[data-level="6"]:hover .pf-card-rig {
    border-color: #e53e3e;
    box-shadow: 0 0 20px 5px rgba(229, 62, 62, 0.5);
}
.pf-grid__item[data-level="5"]:hover .pf-card-rig {
    border-color: #ed8936;
    box-shadow: 0 0 20px 5px rgba(237, 137, 54, 0.5);
}
.pf-grid__item[data-level="4"]:hover .pf-card-rig {
    border-color: #ecc94b;
    box-shadow: 0 0 20px 5px rgba(236, 201, 75, 0.5);
}
.pf-grid__item[data-level="3"]:hover .pf-card-rig {
    border-color: #4299e1;
    box-shadow: 0 0 20px 5px rgba(66, 153, 225, 0.5);
}
.pf-grid__item[data-level="2"]:hover .pf-card-rig {
    border-color: #48bb78;
    box-shadow: 0 0 20px 5px rgba(72, 187, 120, 0.5);
}
.pf-grid__item[data-level="1"]:hover .pf-card-rig {
    border-color: #2d3748;
    box-shadow: 0 0 20px 5px rgba(45, 55, 72, 0.5);
}
.pf-card-rig__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    box-sizing: border-box;
    transition: opacity 0.45s ease-in-out;
    background-color: var(--nv-primary-accent);
}
.pf-card-rig__image[loading="lazy"] {
    background-image: linear-gradient(
        90deg,
        var(--nv-primary-accent) 25%,
        color-mix(in srgb, var(--nv-primary-accent) 70%, #fff) 50%,
        var(--nv-primary-accent) 75%
    );
    background-size: 200% 100%;
    animation: pf-skeleton-shimmer 1.8s ease-in-out infinite;
}
@keyframes pf-skeleton-shimmer {
    0%   { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}
.pf-card-rig__image.pf-loaded {
    animation: none;
    background-image: none;
}
.pf-card-rig__fallback {
    display: block;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    transition: opacity 0.45s ease-in-out;
}
.pf-card-rig__image--front,
.pf-card-rig__fallback--front {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 1;
    z-index: 2;
    background-color: var(--nv-primary-accent);
}
.pf-card-rig__image--back,
.pf-card-rig__fallback--back {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    z-index: 1;
    background-color: var(--nv-secondary-accent);
}
.pf-grid__item:hover .pf-card-rig__image--front,
.pf-grid__item:hover .pf-card-rig__fallback--front {
    opacity: 0;
}
.pf-grid__item:hover .pf-card-rig__image--back,
.pf-grid__item:hover .pf-card-rig__fallback--back {
    opacity: 1;
}

@media (max-width: 1200px) {
    .pf-grid { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 900px) {
    .pf-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 550px) {
    .pf-grid { grid-template-columns: repeat(2, 1fr); }
}
