/* ==========================================================================
   XPCMS 列表页样式 xp-list.css
   适用：article / product / video / material / doc / search
   ========================================================================== */

/* 列表页主体布局 */
.xp-list-layout {
    padding: calc(var(--xp-nav-h) + 48px) 0 80px;
}
.xp-list-layout .xp-container {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 48px;
}
.xp-list-layout--full .xp-container {
    grid-template-columns: 1fr;
}
.xp-list-main { min-width: 0; }

/* 列表页头部 */
.xp-list-header {
    margin-bottom: 32px;
}
.xp-list-header h1 {
    font-size: 36px;
    margin-bottom: 12px;
    letter-spacing: -.02em;
}
.xp-list-header p {
    color: var(--xp-text-2);
    font-size: 17px;
    margin: 0;
}

/* 卡片网格（统一） */
.xp-list-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
}
.xp-list-grid-3 { grid-template-columns: repeat(3, 1fr); }
.xp-list-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* 文章/资讯卡片 */
.xp-list-article {
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: var(--xp-radius-card);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform .2s, box-shadow .2s;
}
.xp-list-article:hover { transform: translateY(-3px); box-shadow: var(--xp-shadow-md); }
.xp-list-article .xp-cover {
    aspect-ratio: 16 / 9;
    background: var(--xp-bg-soft);
    overflow: hidden;
}
.xp-list-article .xp-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.xp-list-article:hover .xp-cover img { transform: scale(1.04); }
.xp-list-article .xp-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
.xp-list-article .xp-cat {
    display: inline-block;
    font-size: 12px;
    color: var(--xp-primary-hover);
    background: var(--xp-primary-soft);
    padding: 3px 10px;
    border-radius: var(--xp-radius-pill);
    margin-bottom: 10px;
    align-self: flex-start;
}
.xp-list-article h3 {
    font-size: 18px;
    margin-bottom: 8px;
    line-height: 1.4;
}
.xp-list-article h3 a { color: var(--xp-text); }
.xp-list-article h3 a:hover { color: var(--xp-primary); }
.xp-list-article p {
    color: var(--xp-text-2);
    font-size: 14px;
    line-height: 1.6;
    flex: 1;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.xp-list-article .xp-meta {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--xp-border);
    color: var(--xp-text-3);
    font-size: 13px;
    display: flex;
    gap: 14px;
}

/* 产品卡片（列表页） */
.xp-list-product {
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: var(--xp-radius-card);
    overflow: hidden;
    transition: transform .2s, box-shadow .2s;
}
.xp-list-product:hover { transform: translateY(-3px); box-shadow: var(--xp-shadow-md); }
.xp-list-product .xp-cover {
    aspect-ratio: 1;
    background: var(--xp-bg-soft);
    overflow: hidden;
}
.xp-list-product .xp-cover img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s; }
.xp-list-product:hover .xp-cover img { transform: scale(1.05); }
.xp-list-product .xp-body { padding: 18px; }
.xp-list-product h3 { font-size: 16px; margin-bottom: 6px; }
.xp-list-product h3 a { color: var(--xp-text); }
.xp-list-product h3 a:hover { color: var(--xp-primary); }
.xp-list-product .xp-desc {
    color: var(--xp-text-3);
    font-size: 13px;
    margin: 0 0 12px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.xp-list-product .xp-price-row { display: flex; align-items: baseline; gap: 8px; }
.xp-list-product .xp-price {
    color: var(--xp-primary-hover);
    font-family: var(--xp-font-display);
    font-weight: 700;
    font-size: 18px;
}
.xp-list-product .xp-price-original {
    color: var(--xp-text-3);
    font-size: 13px;
    text-decoration: line-through;
}

/* 视频卡片（列表页） */
.xp-list-video {
    position: relative;
    border-radius: var(--xp-radius-card);
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: var(--xp-dark-from);
    border: 1px solid var(--xp-border);
}
.xp-list-video img { width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: transform .4s, opacity .3s; }
.xp-list-video:hover img { transform: scale(1.05); opacity: .7; }
.xp-list-video .xp-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 44px;
    text-shadow: 0 4px 16px rgba(0,0,0,.4);
}
.xp-list-video .xp-info {
    position: absolute;
    left: 0; right: 0; bottom: 0;
    padding: 16px 18px;
    background: linear-gradient(to top, rgba(0,0,0,.85), transparent);
    color: #fff;
}
.xp-list-video .xp-info h3 { color: #fff; font-size: 16px; margin: 0; }
.xp-list-video .xp-duration {
    position: absolute;
    top: 12px; right: 12px;
    background: rgba(0,0,0,.6);
    color: #fff;
    font-size: 12px;
    padding: 3px 8px;
    border-radius: 6px;
}

/* 资料卡片（列表页） */
.xp-list-material {
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: var(--xp-radius-card);
    padding: 24px;
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.xp-list-material:hover {
    transform: translateY(-3px);
    box-shadow: var(--xp-shadow-md);
    border-color: var(--xp-primary);
}
.xp-list-material .xp-icon-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 14px;
}
.xp-list-material .xp-file-icon {
    width: 48px; height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--xp-primary-mist);
    color: var(--xp-primary-hover);
    border-radius: 12px;
    font-size: 18px;
    flex-shrink: 0;
}
.xp-list-material h3 { font-size: 17px; margin: 0; }
.xp-list-material h3 a { color: var(--xp-text); }
.xp-list-material h3 a:hover { color: var(--xp-primary); }
.xp-list-material p { color: var(--xp-text-2); font-size: 14px; margin: 0 0 16px; line-height: 1.6; }
.xp-list-material .xp-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--xp-text-3);
    font-size: 13px;
    padding-top: 14px;
    border-top: 1px solid var(--xp-border);
}
.xp-list-material .xp-meta .xp-format {
    background: var(--xp-bg-soft);
    color: var(--xp-text-2);
    padding: 3px 10px;
    border-radius: var(--xp-radius-pill);
    font-size: 12px;
    border: 1px solid var(--xp-border);
}

/* 文档列表 */
.xp-list-doc {
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: 14px;
    overflow: hidden;
}
.xp-list-doc a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px;
    color: var(--xp-text);
    border-bottom: 1px solid var(--xp-border);
    transition: background .15s;
}
.xp-list-doc a:last-child { border-bottom: 0; }
.xp-list-doc a:hover {
    background: var(--xp-bg-soft);
    color: var(--xp-primary);
}
.xp-list-doc h3 { font-size: 16px; margin: 0; font-weight: 500; }
.xp-list-doc .xp-meta { color: var(--xp-text-3); font-size: 13px; }

/* 搜索结果无结果提示 */
.xp-search-empty {
    text-align: center;
    padding: 80px 24px;
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: var(--xp-radius-card);
}
.xp-search-empty .fa { font-size: 56px; color: var(--xp-text-3); margin-bottom: 16px; opacity: .5; }
.xp-search-empty h3 { font-size: 20px; margin-bottom: 8px; }
.xp-search-empty p { color: var(--xp-text-2); }

/* 搜索框 */
.xp-search-box {
    display: flex;
    max-width: 640px;
    margin: 0 auto 48px;
    background: var(--xp-bg);
    border: 1px solid var(--xp-border);
    border-radius: var(--xp-radius-pill);
    padding: 6px;
    box-shadow: var(--xp-shadow-sm);
}
.xp-search-box input {
    flex: 1;
    border: 0;
    background: transparent;
    padding: 10px 18px;
    font-size: 15px;
    color: var(--xp-text);
    font-family: var(--xp-font-body);
    outline: none;
}
.xp-search-box .xp-btn { border-radius: var(--xp-radius-pill); }

/* 响应式 */
@media (max-width: 1024px) {
    .xp-list-layout .xp-container { grid-template-columns: 1fr; }
    .xp-list-grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    .xp-list-header h1 { font-size: 28px; }
    .xp-list-grid, .xp-list-grid-3, .xp-list-grid-4 { grid-template-columns: 1fr; }
}
