@charset "UTF-8";
/* ==========================================================================
   应用中心（三分类：插件 / 模板 / 整站）
   仅 node/app.html 与 article/app.html 引入；复用主题 :root 变量。
   ========================================================================== */

/* ---------- 列表页 · 头部 ---------- */
.ac-hero {
    position: relative;
    overflow: hidden;
    padding: 54px 0 46px;
    background:
        radial-gradient(760px 360px at 82% -10%, rgba(124,58,237,.12), rgba(124,58,237,0) 70%),
        radial-gradient(620px 320px at 6% 0%, rgba(47,111,235,.12), rgba(47,111,235,0) 70%),
        linear-gradient(180deg, #fbfdff, #ffffff);
    border-bottom: 1px solid var(--nv-border);
}
.ac-hero__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 28px;
    flex-wrap: wrap;
}
.ac-hero__eyebrow {
    margin: 0 0 10px;
    font-family: var(--nv-mono);
    font-size: 12px;
    letter-spacing: .14em;
    color: var(--nv-primary);
    font-weight: 600;
}
.ac-hero__title { font-size: 34px; letter-spacing: -.8px; margin: 0 0 12px; }
.ac-hero__desc { margin: 0; max-width: 640px; color: #4b5563; font-size: 15.5px; line-height: 1.8; }
.ac-hero__stats { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.ac-stat {
    display: inline-flex; align-items: baseline; gap: 6px;
    padding: 6px 13px; border: 1px solid var(--nv-border); border-radius: 999px;
    background: #fff; font-size: 13px; color: #6b7280;
}
.ac-stat b { font-size: 16px; color: var(--nv-text); }

/* ---------- 列表页 · 主体 ---------- */
.ac-main { padding: 30px 20px 56px; }

.ac-tabs {
    display: inline-flex; gap: 6px; padding: 5px; margin-bottom: 26px;
    background: #f1f4f9; border: 1px solid #e6ebf3; border-radius: 13px;
    flex-wrap: wrap;
}
.ac-tab {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 17px; border-radius: 9px; font-size: 14px;
    color: #5b6472; text-decoration: none;
    transition: background .15s ease, color .15s ease, box-shadow .15s ease;
}
.ac-tab:hover { color: var(--nv-primary); }
.ac-tab.is-active {
    background: #fff; color: var(--nv-primary); font-weight: 600;
    box-shadow: 0 1px 3px rgba(16,24,40,.09);
}
.ac-tab__count {
    font-size: 12px; color: #94a3b8; background: #eef2f8;
    border-radius: 999px; padding: 1px 7px; min-width: 20px; text-align: center;
}
.ac-tab.is-active .ac-tab__count { background: var(--nv-primary-soft); color: var(--nv-primary); }

/* ---------- 卡片网格 ---------- */
.ac-grid {
    list-style: none; margin: 0; padding: 0;
    display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px;
}
.ac-card {
    position: relative; display: flex; flex-direction: column;
    background: #fff; border: 1px solid var(--nv-border); border-radius: 16px;
    padding: 20px 20px 18px; box-shadow: var(--nv-shadow); overflow: hidden;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ac-card::before {
    content: ""; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: linear-gradient(90deg, #2f6feb, #6ea8ff);
    opacity: 0; transition: opacity .18s ease;
}
.ac-card--template::before { background: linear-gradient(90deg, #7c3aed, #c4b5fd); }
.ac-card--site::before  { background: linear-gradient(90deg, #0d9488, #5eead4); }
.ac-card:hover { transform: translateY(-4px); box-shadow: var(--nv-shadow-hover); border-color: #cfdcf5; }
.ac-card:hover::before { opacity: 1; }

.ac-card__head { display: flex; gap: 14px; align-items: flex-start; }
.ac-card__icon {
    flex: 0 0 52px; width: 52px; height: 52px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 19px; color: #fff;
    background: linear-gradient(135deg, #2f6feb, #6ea8ff);
    box-shadow: 0 8px 20px rgba(47,111,235,.24);
}
.ac-card--template .ac-card__icon {
    background: linear-gradient(135deg, #7c3aed, #c4b5fd);
    box-shadow: 0 8px 20px rgba(124,58,237,.22);
}
.ac-card--site .ac-card__icon {
    background: linear-gradient(135deg, #0d9488, #5eead4);
    box-shadow: 0 8px 20px rgba(13,148,136,.22);
}
.ac-card__title { font-size: 16px; margin: 0 0 7px; line-height: 1.4; }
.ac-card__title a { color: var(--nv-text); text-decoration: none; }
.ac-card__title a:hover { color: var(--nv-primary); }
.ac-card__sub { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: 12.5px; color: var(--nv-text-mute); }

.ac-badge {
    font-size: 11.5px; font-weight: 600; padding: 1px 8px; border-radius: 6px;
    background: rgba(47,111,235,.09); color: var(--nv-primary);
}
.ac-badge--template { background: rgba(124,58,237,.09); color: #7c3aed; }
.ac-badge--site  { background: rgba(13,148,136,.10); color: #0d9488; }

.ac-card__desc { margin: 14px 0 0; font-size: 13.5px; line-height: 1.75; color: #5b6472; flex: 1; }
.ac-card__meta { display: flex; gap: 14px; margin-top: 14px; font-size: 12.5px; color: #93a0b1; }
.ac-card__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    margin-top: 16px; padding-top: 14px; border-top: 1px dashed #eef1f7;
}
.ac-price { font-size: 14px; font-weight: 700; color: #b45309; }
.ac-price--free { color: #16a34a; }

.ac-empty {
    text-align: center; padding: 64px 20px;
    border: 1px dashed var(--nv-border-strong); border-radius: 16px;
    background: #fbfdff; color: #6b7280;
}
.ac-empty h3 { margin: 0 0 8px; font-size: 18px; color: var(--nv-text); }

/* ---------- 详情页 ---------- */
.ac-detail { display: flex; gap: 20px; align-items: flex-start; }
.ac-detail__icon {
    flex: 0 0 72px; width: 72px; height: 72px; border-radius: 18px;
    display: flex; align-items: center; justify-content: center;
    font-size: 27px; font-weight: 800; color: #fff;
    background: linear-gradient(135deg, #2f6feb, #6ea8ff);
    box-shadow: 0 10px 26px rgba(47,111,235,.26);
}
.ac-detail__icon--template { background: linear-gradient(135deg, #7c3aed, #c4b5fd); box-shadow: 0 10px 26px rgba(124,58,237,.24); }
.ac-detail__icon--site  { background: linear-gradient(135deg, #0d9488, #5eead4); box-shadow: 0 10px 26px rgba(13,148,136,.24); }
.ac-detail__body { flex: 1; min-width: 0; }
.ac-detail__title { font-size: 25px; margin: 0 0 10px; line-height: 1.35; }
.ac-detail__badges { display: flex; gap: 9px; flex-wrap: wrap; align-items: center; font-size: 13px; color: var(--nv-text-mute); }

.ac-price-box {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    margin: 18px 0; padding: 20px 22px; flex-wrap: wrap;
    border: 1px solid #dbe7ff; border-radius: 14px;
    background: linear-gradient(120deg, #f2f7ff, #f7f4ff);
}
.ac-price-box__label { font-size: 12.5px; color: #6b7280; margin-bottom: 4px; }
.ac-price-box__value { font-size: 24px; font-weight: 800; letter-spacing: -.4px; color: #b45309; }
.ac-price-box__value--free { color: #16a34a; }
.ac-price-box__note { font-size: 12px; color: #94a3b8; margin-top: 5px; }

.ac-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 6px; }
.ac-meta__item {
    padding: 12px 14px; border: 1px solid var(--nv-border); border-radius: 10px;
    background: #fbfcfe;
}
.ac-meta__k { display: block; font-size: 12px; color: var(--nv-text-mute); margin-bottom: 3px; }
.ac-meta__v { font-size: 14px; color: var(--nv-text); }

.ac-mini-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ac-mini { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border: 1px solid var(--nv-border); border-radius: 12px; background: #fff; }
.ac-mini__icon {
    flex: 0 0 38px; width: 38px; height: 38px; border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 14px; color: #fff;
    background: linear-gradient(135deg, #2f6feb, #6ea8ff);
}
.ac-mini__icon--template { background: linear-gradient(135deg, #7c3aed, #c4b5fd); }
.ac-mini__icon--site  { background: linear-gradient(135deg, #0d9488, #5eead4); }
.ac-mini__body { min-width: 0; }
.ac-mini__title { margin: 0 0 2px; font-size: 14px; }
.ac-mini__title a { color: var(--nv-text); text-decoration: none; }
.ac-mini__title a:hover { color: var(--nv-primary); }
.ac-mini__sub { margin: 0; font-size: 12px; color: var(--nv-text-mute); }

/* ---------- 响应式 ---------- */
@media (max-width: 980px) {
    .ac-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .ac-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .ac-hero { padding: 40px 0 34px; }
    .ac-hero__title { font-size: 26px; }
    .ac-grid { grid-template-columns: minmax(0, 1fr); }
    .ac-meta { grid-template-columns: minmax(0, 1fr); }
    .ac-mini-grid { grid-template-columns: minmax(0, 1fr); }
    .ac-detail { flex-direction: column; }
}
