/* 产品中心 - 依赖 front-theme.css */
/* 产品中心 - SwiftAdmin 插件市场风格 */
.pc-body {
    margin: 0;
    background: var(--sa-bg);
    color: var(--sa-text);
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
.pc-content { padding: 10px 0 48px; }
.pc-wrap {
    width: min(1170px, calc(100% - 32px));
    margin: 0 auto;
}
.pc-notice {
    margin: 10px auto;
    font-size: 18px;
    color: #e11d48;
    text-align: center;
    font-weight: 700;
    background: #ffeeee;
    padding: 10px;
    border: 1px solid #ffcccc;
}
.pc-install-header { margin-bottom: 10px; }
.pc-install-header h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: var(--sa-text-title);
}
.pc-install-header p {
    margin: 8px 0 0;
    color: var(--sa-muted);
}
.pc-filter-card {
    padding: 16px 18px 8px;
    background: #fff;
    border: 1px solid var(--sa-line);
    border-radius: var(--sa-radius, 8px);
    margin-bottom: 14px;
    box-shadow: var(--sa-shadow);
}
.pc-filter-card .layui-form-item {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 8px 0;
    margin-bottom: 12px !important;
    white-space: normal;
    overflow: visible;
}
.pc-filter-card .layui-form-label {
    float: none;
    width: 88px;
    min-width: 88px;
    padding: 5px 0 0;
    line-height: 30px;
    text-align: left;
    box-sizing: border-box;
    color: var(--sa-text-secondary);
    font-weight: 600;
}
.pc-filter-card .layui-input-block {
    margin-left: 0 !important;
    flex: 1;
    min-width: 0;
    min-height: 30px;
    height: auto !important;
    line-height: 1.4;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
}
.pc-filter-card .layui-input-block span { margin-right: 5px; }
.pc-plugin-select {
    display: inline-flex;
    align-items: center;
    height: 30px;
    padding: 0 14px;
    margin: 0 8px 8px 0;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    color: #64748b;
    text-decoration: none;
    font-size: 13px;
    background: #fff;
    cursor: pointer;
    transition: .15s ease;
    box-sizing: border-box;
}
.pc-plugin-select:hover {
    color: var(--sa-brand, #1890ff);
    border-color: #91d5ff;
}
.pc-plugin-select.active {
    background: var(--sa-brand, #1890ff) !important;
    color: #fff !important;
    border-color: var(--sa-brand, #1890ff) !important;
}
.pc-divider-v {
    position: relative;
    top: -.06em;
    display: inline-block;
    height: .9em;
    margin: 0 8px;
    vertical-align: middle;
    border-left: 1px solid rgba(0,0,0,.06);
}
.pc-input-key {
    height: 28px;
    line-height: 28px;
    margin-top: 2px;
    margin-left: 6px;
}
.pc-grid { margin-top: 4px; }
.pc-project {
    position: relative;
    background: #fff;
    border: 1px solid var(--sa-line);
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 15px;
    transition: box-shadow .2s, transform .2s;
    height: calc(100% - 15px);
}
.pc-project:hover {
    box-shadow: 0 8px 24px rgba(15, 23, 42, .08);
    transform: translateY(-2px);
}
.pc-project .tags {
    position: absolute;
    right: 0;
    top: 0;
    z-index: 9;
    width: 68px;
    height: 68px;
    overflow: hidden;
    background: url("/static/plugin/product/images/project_tags.png") no-repeat 0 0;
    pointer-events: none;
}
.pc-project .tags.tags-hot { background-position: 3px 0; }
.pc-project .tags.tags-recommended { background-position: 3px -71px; }
.pc-project .tags.tags-free { background-position: 3px -141px; }
.pc-project .tags.tags-master { background-position: 3px -211px; }
.pc-project .tags.tags-new { background-position: 3px -281px; }
.pc-cover {
    display: block;
    width: 100%;
    height: 150px;
    object-fit: cover;
    background: var(--sa-brand-soft);
}
.pc-project-body { padding: 14px; }
.pc-project-body h2 {
    margin: 0 0 8px;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.4;
}
.pc-project-body h2 a {
    color: var(--sa-text);
    text-decoration: none;
}
.pc-project-body h2 a:hover { color: var(--sa-brand); }
.pc-text {
    color: var(--sa-muted);
    font-size: 13px;
    line-height: 1.6;
    height: 42px;
    overflow: hidden;
    margin-bottom: 10px;
}
.pc-desc {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: var(--sa-text-hint);
    font-size: 13px;
}
.pc-desc .time i { margin-right: 4px; }
.pc-price {
    color: var(--sa-brand);
    font-weight: 600;
}
.pc-empty {
    padding: 80px 20px;
    background: #fff;
    text-align: center;
    color: var(--sa-text-hint);
    border: 1px solid var(--sa-line);
}
.pc-pager {
    margin-top: 18px;
    text-align: center;
}
.pc-pager a {
    margin: 0 6px;
    color: var(--sa-muted);
    text-decoration: none;
}
.pc-pager a:hover { color: var(--sa-brand); }

/* detail */
.pc-bggray { background: transparent; }
.pc-detail-main .layui-card,
.pc-side .layui-card {
    margin-bottom: 16px;
    border: 1px solid var(--sa-line);
    box-shadow: none;
}
.pc-detail-main .layui-card-header {
    display: flex;
    align-items: center;
    gap: 10px;
}
.pc-detail-main .layui-card-header h1 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}
.pc-card-body { padding: 16px 20px; }
.pc-carousel img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: contain;
    background: var(--sa-bg-soft);
}
.pc-markdown {
    line-height: 1.8;
    color: var(--sa-text-secondary);
    font-size: 14px;
}
.pc-markdown h1 { font-size: 22px; margin: 20px 0 12px; }
.pc-markdown h2 { font-size: 18px; margin: 18px 0 10px; border-bottom: 1px solid var(--sa-line-soft); padding-bottom: 6px; }
.pc-markdown a { color: var(--sa-brand); }
.pc-markdown img { max-width: 100%; }
.pc-meta {
    padding: 12px 20px 18px;
    border-top: 1px solid var(--sa-line-soft);
}
.pc-meta .layui-btn { margin-right: 8px; }
.pc-history { padding: 8px 0 14px; border-bottom: 1px dashed var(--sa-line-soft); }
.pc-history:last-child { border-bottom: 0; }
.pc-history .p-v { margin: 0 0 6px; }
.pc-history .p-t { margin: 0 0 8px; color: var(--sa-text-hint); font-size: 12px; }
.pc-history .p-intro { margin: 0; color: var(--sa-muted); white-space: pre-line; line-height: 1.7; }
.pc-side .layui-form-item { margin-bottom: 12px; }
.pc-author {
    display: flex;
    gap: 12px;
    margin-bottom: 16px;
}
.pc-author img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
}
.pc-author strong { display: block; color: #e11d48; }
.pc-author p { margin: 4px 0 0; color: var(--sa-muted); font-size: 13px; }
.pc-info-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 10px;
}
.pc-info-grid .name {
    margin: 0;
    color: var(--sa-text-hint);
    font-size: 12px;
}
.pc-info-grid .val {
    margin: 4px 0 0;
    color: var(--sa-text);
    font-size: 14px;
}
.pc-stars { color: #f59e0b; letter-spacing: 1px; }
@media (max-width: 992px) {
    .pc-side { margin-top: 16px; }
    .pc-cover { height: 140px; }
}


/* 支付弹窗 */
.layui-layer.pc-pay-layer .layui-layer-content {
    overflow: visible !important;
}
.pc-pay-modal {
    padding: 20px 22px 22px;
    box-sizing: border-box;
}
.pc-pay-tip {
    background: #1890ff;
    color: #fff;
    border-radius: 8px;
    padding: 14px 16px;
    font-size: 13px;
    line-height: 1.65;
    margin-bottom: 18px;
}
.pc-pay-rows { display: grid; gap: 14px; margin-bottom: 20px; }
.pc-pay-row {
    display: flex;
    gap: 14px;
    font-size: 14px;
    line-height: 1.5;
}
.pc-pay-row > span {
    flex: 0 0 72px;
    color: #64748b;
}
.pc-pay-row > em {
    flex: 1;
    font-style: normal;
    color: #1f2937;
    word-break: break-all;
}
.pc-pay-price { color: #f5222d !important; font-weight: 700; font-size: 16px; }
.pc-pay-ways-label {
    color: #94a3b8;
    font-size: 13px;
    margin-bottom: 12px;
}
.pc-pay-ways {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-bottom: 20px;
}
.pc-pay-ways.pc-pay-ways-3 {
    grid-template-columns: 1fr 1fr 1fr;
}
.pc-pay-way {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 12px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    text-align: left;
    transition: border-color .15s, box-shadow .15s;
    min-width: 0;
}
.pc-pay-way span { font-size: 13px; font-weight: 600; color: #1f2937; line-height: 1.25; min-width: 0; }
.pc-pay-way small { font-weight: 400; color: #94a3b8; font-size: 11px; }
.pc-pay-way.is-on {
    border-color: #1890ff;
    box-shadow: 0 0 0 2px rgba(24,144,255,.15);
}
.pc-pay-ico {
    width: 28px;
    height: 28px;
    border-radius: 6px;
    flex-shrink: 0;
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
}
.pc-pay-wx { background-color: #07c160; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M9.5 4C5.91 4 3 6.46 3 9.5c0 1.76.97 3.33 2.48 4.36L5 16l2.2-1.1c.72.2 1.49.3 2.3.3.2 0 .4 0 .59-.02A4.8 4.8 0 0 1 9.5 14c-2.9 0-5.25-2.01-5.25-4.5S6.6 5 9.5 5c2.04 0 3.8 1 4.66 2.45C13.4 5.9 11.6 4 9.5 4zm5.5 6c-2.76 0-5 1.9-5 4.25S12.24 18.5 15 18.5c.55 0 1.08-.07 1.58-.2L18.5 19l-.55-1.65C19.25 16.5 20 15.45 20 14.25 20 11.9 17.76 10 15 10z'/%3E%3C/svg%3E"); }
.pc-pay-ali { background-color: #1677ff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M5 4h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1zm7.2 3.2c-1.9 0-3.1 1.1-3.1 2.7 0 1.7 1.4 2.4 2.7 2.9l.5.2c.8.3 1.2.5 1.2 1 0 .5-.5.9-1.3.9-.9 0-1.5-.4-2-.9l-1.1 1.2c.7.8 1.8 1.3 3.1 1.3 2 0 3.4-1.1 3.4-2.8 0-1.7-1.3-2.4-2.7-2.9l-.5-.2c-.8-.3-1.2-.5-1.2-1 0-.5.5-.8 1.2-.8.7 0 1.3.3 1.8.7l1-1.2c-.7-.6-1.6-1-2.8-1z'/%3E%3C/svg%3E"); }
.pc-pay-bal { background-color: #fa8c16; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.8 1.98 2.4.67 4.05 1.71 4.05 3.83 0 1.79-1.35 2.92-3.12 3.17z'/%3E%3C/svg%3E"); }
.pc-pay-submit {
    display: block;
    width: 100%;
    height: 46px;
    border: 0;
    border-radius: 8px;
    background: #ff5722;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
}
.pc-pay-submit:hover { background: #f4511e; }

@media (max-width: 768px) {
    .pc-filter-card .layui-form-item { flex-direction: column; }
    .pc-filter-card .layui-form-label {
        width: auto;
        min-width: 0;
        float: none;
        display: block;
        padding: 0 0 6px;
        line-height: 1.4;
        text-align: left;
    }
    .pc-filter-card .layui-input-block { margin-left: 0; width: 100%; }
    .pc-install-header h2 { font-size: 22px; }
    .pc-pay-modal { padding: 16px 14px 18px; }
    .pc-pay-ways,
    .pc-pay-ways.pc-pay-ways-3 { grid-template-columns: 1fr; }
}

/* 二级分类 */
.pc-subcat-row { margin-top: 2px; padding-top: 10px; border-top: 1px dashed #eef1f5; }
.pc-subcat-row .layui-form-label { color: #94a3b8 !important; font-size: 13px; }
.pc-filter-card .layui-inline {
    display: inline-flex;
    align-items: center;
    margin: 0 0 8px 0;
    vertical-align: middle;
}
.pc-filter-card .pc-divider-v {
    margin: 0 10px 8px 2px;
}
