.breadcrumb[data-v-4ab9dc40]{align-items:center;display:flex;font-size:13px;gap:4px;margin-bottom:var(--space-5)}.breadcrumb[data-v-4ab9dc40],.breadcrumb__current[data-v-4ab9dc40]{color:var(--color-text-secondary)}.project-hero[data-v-4ab9dc40]{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);margin-bottom:var(--space-6);padding:var(--space-6)}.project-hero__main[data-v-4ab9dc40]{display:flex;gap:var(--space-5)}.project-hero__icon[data-v-4ab9dc40]{align-items:center;background:var(--color-primary-50);border-radius:var(--radius-lg);display:flex;flex-shrink:0;height:64px;justify-content:center;overflow:hidden;width:64px}.project-hero__icon i[data-v-4ab9dc40]{color:var(--color-primary);font-size:32px}.project-hero__icon img[data-v-4ab9dc40]{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.project-hero__info[data-v-4ab9dc40]{flex:1;min-width:0}.project-hero__name[data-v-4ab9dc40]{font-size:var(--font-size-2xl);font-weight:700;margin:0 0 8px}.project-hero__desc[data-v-4ab9dc40]{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin:0 0 10px}.project-hero__tags[data-v-4ab9dc40]{display:flex;flex-wrap:wrap;gap:6px}.tag[data-v-4ab9dc40]{background:#d1fae5;border-radius:var(--radius-sm);color:var(--color-success);font-size:12px;padding:2px 8px}.dark .tag[data-v-4ab9dc40]{background:#064e3b;color:#6ee7b7}.project-hero__links[data-v-4ab9dc40]{display:flex;gap:var(--space-3);margin-top:var(--space-5)}.link-btn[data-v-4ab9dc40]{align-items:center;background:var(--color-bg-secondary);border-radius:var(--radius-lg);color:var(--color-text);display:inline-flex;font-size:14px;gap:6px;padding:9px 18px}.link-btn--primary[data-v-4ab9dc40]{background:var(--color-text);color:var(--color-bg)}.project-hero__stats[data-v-4ab9dc40]{color:var(--color-text-secondary);display:flex;font-size:14px;gap:var(--space-5);margin-top:var(--space-4)}.stat[data-v-4ab9dc40]{align-items:center;display:inline-flex;gap:4px}.rating-section[data-v-4ab9dc40]{align-items:center;background:var(--color-bg-secondary);border-radius:var(--radius-xl);display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-6);padding:var(--space-5)}.rating-section__left[data-v-4ab9dc40]{align-items:center;display:flex;gap:var(--space-3)}.rating-section__avg[data-v-4ab9dc40]{color:var(--color-warning);font-size:26px;font-weight:800}.rating-section__stars[data-v-4ab9dc40]{display:flex;gap:2px}.rating-section__star[data-v-4ab9dc40],.rating-section__stars i[data-v-4ab9dc40]{color:var(--color-text-tertiary);font-size:22px}.filled[data-v-4ab9dc40]{color:var(--color-warning)}.rating-section__count[data-v-4ab9dc40]{color:var(--color-text-tertiary);font-size:13px}.rating-section__user[data-v-4ab9dc40]{align-items:center;display:flex;gap:var(--space-2)}.rating-section__label[data-v-4ab9dc40]{color:var(--color-text-secondary);font-size:14px}.rating-section__star[data-v-4ab9dc40]{cursor:pointer}.rating-section__star[data-v-4ab9dc40]:hover{color:var(--color-warning)}.action-bar[data-v-4ab9dc40],.project-content[data-v-4ab9dc40]{margin:var(--space-6) 0}.action-bar[data-v-4ab9dc40]{border-bottom:1px solid var(--color-border-light);border-top:1px solid var(--color-border-light);display:flex;gap:var(--space-6);justify-content:center;padding:var(--space-6) 0}.action-btn[data-v-4ab9dc40]{align-items:center;background:var(--color-bg-secondary);border-radius:var(--radius-full);color:var(--color-text-secondary);display:inline-flex;font-size:14px;gap:6px;padding:10px 22px;transition:all var(--transition-fast)}.action-btn i[data-v-4ab9dc40]{font-size:18px}.action-btn[data-v-4ab9dc40]:hover{background:var(--color-primary-50);color:var(--color-primary)}.action-btn--active[data-v-4ab9dc40]{background:var(--color-primary-50)}.action-btn--active[data-v-4ab9dc40],.action-btn--reward[data-v-4ab9dc40]{color:var(--color-danger)}.action-btn--reward[data-v-4ab9dc40]:hover{background:#ef444414}.reward-modal[data-v-4ab9dc40]{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:9999}.reward-modal__dialog[data-v-4ab9dc40]{background:var(--color-bg);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:480px;padding:var(--space-8) var(--space-6) var(--space-6);position:relative;width:90%}.reward-modal__close[data-v-4ab9dc40]{align-items:center;border-radius:50%;color:var(--color-text-tertiary);display:flex;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:all var(--transition-fast);width:32px}.reward-modal__close[data-v-4ab9dc40]:hover{background:var(--color-bg-hover);color:var(--color-text)}.reward-modal__close i[data-v-4ab9dc40]{font-size:20px}.reward-modal__title[data-v-4ab9dc40]{font-size:20px;font-weight:700;margin:0 0 var(--space-2);text-align:center}.reward-modal__heart[data-v-4ab9dc40]{color:var(--color-danger);margin-right:4px}.reward-modal__tip[data-v-4ab9dc40]{color:var(--color-text-tertiary);font-size:14px;margin:0 0 var(--space-6);text-align:center}.reward-modal__qrs[data-v-4ab9dc40]{display:flex;flex-wrap:wrap;gap:var(--space-6);justify-content:center}.reward-qr[data-v-4ab9dc40]{text-align:center}.reward-qr__img[data-v-4ab9dc40]{align-items:center;background:var(--color-bg-secondary);border:2px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-tertiary);display:flex;flex-direction:column;gap:8px;height:160px;justify-content:center;margin-bottom:var(--space-2);width:160px}.reward-qr__img--wechat .reward-qr__icon[data-v-4ab9dc40]{color:#07c160;font-size:40px}.reward-qr__img--alipay .reward-qr__icon[data-v-4ab9dc40]{color:#1677ff;font-size:40px}.reward-qr__placeholder[data-v-4ab9dc40]{font-size:13px;font-weight:500}.reward-qr__label[data-v-4ab9dc40]{color:var(--color-text-secondary);font-size:13px;margin:0}.reward-modal-enter-active[data-v-4ab9dc40],.reward-modal-leave-active[data-v-4ab9dc40]{transition:opacity var(--transition-fast)}.reward-modal-enter-from[data-v-4ab9dc40],.reward-modal-leave-to[data-v-4ab9dc40]{opacity:0}.reward-modal-enter-active .reward-modal__dialog[data-v-4ab9dc40],.reward-modal-leave-active .reward-modal__dialog[data-v-4ab9dc40]{transition:transform var(--transition-base),opacity var(--transition-base)}.reward-modal-enter-from .reward-modal__dialog[data-v-4ab9dc40],.reward-modal-leave-to .reward-modal__dialog[data-v-4ab9dc40]{opacity:0;transform:scale(.92) translateY(10px)}
