/* ============================================================
 * PureBlog 下载中心插件 · 前台样式
 * v1.1.0 主题契合改版：
 *   · 令牌对齐 —— 不再自定义与主题同名的令牌（--primary / --card / --border /
 *     --text / --radius …），改为继承主题 :root：站长在后台改主色、
 *     圆角或切换深浅色，下载中心自动跟随。兜底值统一写在 :where(:root)
 *     （特异性 0），仅当主题没定义该令牌时才生效。
 *   · 实底扁平 —— 卡片回归「实底 + 细边框 + 极浅阴影」，与主题 .widget /
 *     .post-card 同一套观感。
 *   · 排版对齐 —— 按钮圆角、卡片圆角与阴影、区块间距统一取主题令牌。
 * 深浅色（html[data-theme="dark"]）与站点共用 pb_theme cookie，全站同步。
 * ============================================================ */

/* ============ 设计令牌（特异性 0，主题永远优先） ============ */
:where(:root) {
    --pbd-primary: var(--primary, #3b82f6);
    --pbd-primary-hover: var(--primary-hover, #2563eb);
    --pbd-grad: var(--gradient, linear-gradient(135deg, #3b82f6, #8b5cf6));

    --pbd-bg: var(--bg, #f3f4f6);
    --pbd-card: var(--card, #ffffff);
    --pbd-text: var(--text, #1f2937);
    --pbd-text-body: var(--text-body, #374151);
    --pbd-text-muted: var(--text-muted, #6b7280);
    --pbd-text-light: var(--text-light, #9ca3af);
    --pbd-border: var(--border, #e5e7eb);
    --pbd-soft: var(--soft, #f9fafb);

    --pbd-shadow: var(--shadow-sm, 0 1px 3px rgba(0,0,0,.08));
    --pbd-shadow-md: var(--shadow-md, 0 4px 12px rgba(0,0,0,.1));

    --pbd-radius: var(--radius, 10px);
    --pbd-radius-sm: var(--radius-sm, 6px);

    --pbd-success: #16a34a;
    --pbd-success-soft: rgba(22,163,74,.12);
    --pbd-success-text: #15803d;
    --pbd-warning: #d97706;
    --pbd-warning-soft: rgba(217,119,6,.12);
    --pbd-warning-text: #92400e;
    --pbd-danger: #dc2626;
    --pbd-danger-soft: rgba(220,38,38,.12);
    --pbd-danger-text: #991b1b;
    --pbd-info: #2563eb;
    --pbd-info-soft: rgba(37,99,235,.12);
    --pbd-info-text: #1d4ed8;
}

/* ============ 下载区块 ============ */
/* 与主题 .post-copyright 同款：虚线框 + --soft 底 + 同一组外/内边距 */
.pbd-download-wrap {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0 32px 24px;
    padding: 16px 18px;
    border: 1px dashed var(--border, var(--pbd-border, #e5e7eb));
    border-radius: var(--radius, var(--pbd-radius, 10px));
    background: var(--soft, var(--pbd-soft, #f9fafb));
    font-size: .85rem;
    line-height: 1.9;
    color: var(--text-muted, var(--pbd-text-muted, #6b7280));
    box-sizing: border-box;
}

.pbd-download-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 0 8px;
    background: none;
    color: var(--text, var(--pbd-text, #1f2937));
    font-weight: 700;
    font-size: .85rem;
}

.pbd-download-header .pbd-icon {
    width: 20px;
    height: 20px;
    fill: currentColor;
    flex-shrink: 0;
}

.pbd-download-header .pbd-count {
    margin-left: auto;
    font-size: .8rem;
    opacity: .85;
    font-weight: 400;
}

/* ============ 资源列表 ============ */
.pbd-download-list {
    padding: 0;
}

.pbd-download-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
    border-radius: var(--pbd-radius-sm);
    flex-wrap: nowrap;
}

.pbd-download-item + .pbd-download-item {
    border-top: 1px solid var(--pbd-border);
}

.pbd-download-item:hover {
    background: var(--pbd-soft);
}

/* ============ 文件信息 ============ */
.pbd-file-info {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.pbd-file-ext {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    padding: 3px 8px;
    border-radius: var(--pbd-radius-sm);
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    color: #fff;
    background: var(--pbd-primary);
    flex-shrink: 0;
}

.pbd-file-name {
    font-weight: 500;
    color: var(--pbd-text);
    word-break: break-all;
    font-size: .9rem;
}

.pbd-file-size,
.pbd-file-count {
    font-size: .8rem;
    color: var(--pbd-text-light);
    flex-shrink: 0;
}

.pbd-file-source {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    border-radius: var(--pbd-radius-sm);
    font-size: .72rem;
    font-weight: 500;
    color: var(--pbd-info-text);
    background: var(--pbd-info-soft);
    flex-shrink: 0;
}

/* ============ 费用标签 ============ */
.pbd-file-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
    flex-shrink: 0;
}

.pbd-tag {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    border-radius: 20px;
    font-size: .75rem;
    font-weight: 500;
    white-space: nowrap;
}

.pbd-tag-free { background: var(--pbd-success-soft); color: var(--pbd-success-text); }
.pbd-tag-price { background: var(--pbd-warning-soft); color: var(--pbd-warning-text); }
.pbd-tag-points { background: var(--pbd-info-soft); color: var(--pbd-info-text); }
.pbd-tag-coins { background: rgba(192,132,252,.15); color: #a855f7; }
.pbd-tag-lock { background: var(--pbd-danger-soft); color: var(--pbd-danger-text); }
.pbd-tag-quota { background: rgba(99,102,241,.12); color: #4f46e5; }

/* ============ 操作按钮 ============ */
.pbd-file-action {
    flex-shrink: 0;
}

.pbd-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 16px;
    border-radius: var(--pbd-radius-sm);
    border: none;
    font-size: .85rem;
    font-weight: 500;
    cursor: pointer;
    transition: all .2s;
    color: #fff;
    line-height: 1;
    white-space: nowrap;
}

.pbd-btn svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
    flex-shrink: 0;
}

a.pbd-btn {
    text-decoration: none;
}

.pbd-btn:disabled {
    opacity: .6;
    cursor: not-allowed;
}

.pbd-btn-download {
    background: var(--pbd-success);
}

.pbd-btn-download:hover:not(:disabled) {
    background: #15803d;
}

.pbd-btn-pay {
    background: var(--pbd-warning);
}

.pbd-btn-pay:hover:not(:disabled) {
    background: #b45309;
}

.pbd-btn-net {
    background: var(--pbd-primary);
}

.pbd-btn-net:hover {
    background: var(--pbd-primary-hover);
}

.pbd-btn-cost {
    background: var(--pbd-primary);
}

.pbd-btn-cost:hover:not(:disabled) {
    background: var(--pbd-primary-hover);
}

.pbd-btn-lock {
    background: var(--pbd-text-light);
    color: #fff;
}

.pbd-btn-success {
    background: var(--pbd-success) !important;
}

/* ============ 加载动画 ============ */
.pbd-spin {
    animation: pbd-spin 1s linear infinite;
}

@keyframes pbd-spin {
    to { transform: rotate(360deg); }
}

/* ============ 扫码弹窗 ============ */
.pbd-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,.45);
}

.pbd-modal[hidden] {
    display: none;
}

.pbd-modal-box {
    background: var(--pbd-card, #fff);
    border-radius: var(--pbd-radius, 10px);
    box-shadow: 0 8px 32px rgba(0,0,0,.2);
    max-width: 320px;
    width: 90%;
    overflow: hidden;
}

.pbd-modal-head {
    padding: 14px 18px;
    font-weight: 600;
    font-size: .95rem;
    color: var(--pbd-text, #1f2937);
    border-bottom: 1px solid var(--pbd-border, #e5e7eb);
}

.pbd-modal-body {
    padding: 20px;
    text-align: center;
}

.pbd-modal-body p {
    margin: 0 0 8px;
    font-size: .85rem;
    color: var(--pbd-text-body, #374151);
}

.pbd-modal-foot {
    padding: 12px 18px;
    border-top: 1px solid var(--pbd-border, #e5e7eb);
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.pbd-btn-secondary {
    background: var(--pbd-text-light, #9ca3af);
}

/* ============ 多地址平铺 ============ */
.pbd-download-item {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
}

.pbd-download-item .pbd-file-info {
    flex: none;
}

.pbd-link-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pbd-link-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--border, var(--pbd-border, #e5e7eb));
    border-radius: var(--pbd-radius-sm);
    background: var(--card, var(--pbd-card, #ffffff));
    flex-wrap: wrap;
}

.pbd-link-info {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pbd-link-name {
    font-size: .9rem;
    color: var(--pbd-text, #374151);
}

.pbd-link-row .pbd-btn {
    flex-shrink: 0;
}

/* ============ 响应式 ============ */
@media (max-width: 640px) {
    /* 与 .post-copyright 的窄屏规格一致 */
    .pbd-download-wrap {
        margin: 0 18px 18px;
        padding: 14px 16px;
    }

    .pbd-download-header {
        padding: 0 0 8px;
        font-size: .85rem;
    }

    .pbd-download-item {
        flex-wrap: wrap;
        padding: 10px 0;
        gap: 8px;
    }

    .pbd-file-info {
        width: 100%;
        order: 1;
    }

    .pbd-link-row {
        flex-direction: column;
        align-items: stretch;
    }

    .pbd-link-row .pbd-btn {
        width: 100%;
        justify-content: center;
    }

    .pbd-file-meta {
        width: 100%;
        order: 2;
    }

    .pbd-file-action {
        width: 100%;
        order: 3;
    }

    .pbd-btn {
        width: 100%;
        padding: 10px;
        font-size: .9rem;
    }
}
