/* ==========================================
   Public Pages - Extracted Inline Styles
   从公共页面 blade 模板中提取的内联样式
   按 page / component 组织
   ========================================== */

/* ===========================================
   1. Layout - 通用布局组件
   =========================================== */
.nav-free-link {
    color: #059669;
    font-weight: 600;
    position: relative;
}
.nav-free-link::after {
    content: 'FREE';
    position: absolute;
    top: 0;
    right: -2px;
    font-size: 8px;
    font-weight: 700;
    background: #059669;
    color: #fff;
    padding: 1px 4px;
    border-radius: 4px;
    line-height: 1.2;
    letter-spacing: 0.5px;
}
.nav-free-link.active::after,
.nav-free-link:hover::after {
    background: #047857;
}

.nav-spacer {
    height: 72px;
}

/* ===========================================
   2. Model Detail (model-detail.blade.php)
   =========================================== */
.md-page-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 16px;
}

.md-breadcrumb {
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--gray-400);
}

.md-breadcrumb a {
    color: var(--gray-400);
    text-decoration: none;
}

.md-breadcrumb-sep {
    margin: 0 8px;
}

.md-breadcrumb-current {
    color: var(--gray-700);
}

.md-loading {
    text-align: center;
    padding: 80px 20px;
}

.md-loading-spinner {
    width: 48px;
    height: 48px;
    border: 3px solid var(--gray-200);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin: 0 auto 16px;
}

.md-loading-text {
    color: var(--gray-400);
}

/* 模型基本信息卡 */
.md-info-card {
    background: #fff;
    border-radius: 16px;
    padding: 32px;
    margin-bottom: 24px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.md-header-flex {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

.md-icon {
    width: 72px;
    height: 72px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--primary), #7C3AED);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    flex-shrink: 0;
}

.md-main-info {
    flex: 1;
    min-width: 280px;
}

.md-title {
    font-size: 28px;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0 0 8px 0;
}

.md-tags {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 12px;
}

.md-tag-category {
    background: var(--blue-50);
    color: var(--primary);
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
}

.md-tag-supplier {
    background: var(--green-50);
    color: #10B981;
    padding: 4px 14px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
}

.md-desc {
    color: var(--gray-500);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
}

/* 统计卡片 */
.md-stats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--gray-100);
}

.md-stat {
    text-align: center;
}

.md-stat-value {
    font-size: 24px;
    font-weight: 700;
}

.md-stat-value--primary { color: var(--primary); }
.md-stat-value--amber { color: #F59E0B; }
.md-stat-value--green { color: #10B981; }
.md-stat-value--purple { color: #8B5CF6; }

.md-stat-label {
    font-size: 12px;
    color: var(--gray-400);
    margin-top: 4px;
}

/* 最低价提示 */
.md-lowest-price-bar {
    background: linear-gradient(135deg, #10B981, #059669);
    border-radius: 12px;
    padding: 16px 24px;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
}

.md-price-info {
    color: #fff;
}

.md-price-label {
    font-size: 14px;
    opacity: 0.9;
}

.md-price-value {
    font-size: 28px;
    font-weight: 700;
}

.md-price-link {
    background: #fff;
    color: #059669;
    padding: 10px 24px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
    font-size: 14px;
    transition: transform 0.2s;
}

.md-price-link:hover {
    transform: scale(1.05);
}

/* 供应商表格 */
.md-supplier-card {
    background: #fff;
    border-radius: 16px;
    padding: 32px;
    margin-bottom: 24px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.md-supplier-card h2 {
    font-size: 20px;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0 0 20px 0;
}

.md-supplier-card h2 i {
    color: var(--primary);
    margin-right: 8px;
}

/* 模型不存在 */
.md-notfound {
    display: none;
    text-align: center;
    padding: 80px 20px;
}

.md-notfound-icon {
    font-size: 64px;
    margin-bottom: 16px;
}

.md-notfound h2 {
    color: var(--gray-700);
    margin-bottom: 8px;
}

.md-notfound p {
    color: var(--gray-400);
    margin-bottom: 24px;
}

.md-notfound-link {
    display: inline-block;
    background: var(--primary);
    color: #fff;
    padding: 12px 32px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
}

/* ===========================================
   3. Models (models.blade.php)
   =========================================== */
.models-hero-text {
    text-align: center;
    color: #fff;
}

.models-hero-title {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 16px;
}

.models-hero-subtitle {
    font-size: 18px;
    opacity: 0.9;
}

/* 移动端筛选按钮 */
.mobile-filter-btn {
    display: none;
    position: fixed;
    bottom: 24px;
    right: 24px;
    z-index: 999;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--primary);
    color: #fff;
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    font-size: 20px;
    cursor: pointer;
}

.mobile-filter-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.4);
    z-index: 998;
}

.models-section-bg {
    background: var(--gray-50);
    padding-top: 30px;
}

/* 筛选侧边栏 */
.models-layout {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.filter-sidebar {
    width: 240px;
    flex-shrink: 0;
    position: sticky;
    top: 90px;
}

.filter-sidebar-inner {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.filter-search {
    margin-bottom: 20px;
}

.filter-search-row {
    display: flex;
    gap: 6px;
}

.filter-search-input {
    flex: 1;
    min-width: 0;
    padding: 8px 14px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
    height: 38px;
    box-sizing: border-box;
}

.filter-search-input:focus {
    border-color: var(--primary);
}

.filter-search-btn {
    background: var(--primary);
    color: #fff;
    border: none;
    padding: 8px 16px;
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition);
}

.filter-search-btn:hover {
    background: var(--primary-hover);
}

.filter-group-block {
    margin-bottom: 20px;
}

.filter-group-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--gray-400);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
}

.filter-tags-wrap {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.filter-sort-select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 13px;
    color: var(--gray-700);
    outline: none;
    cursor: pointer;
}

/* 模型列表区域 */
.models-main {
    flex: 1;
    min-width: 0;
}

/* 选中筛选状态栏 */
.active-filters-bar {
    display: none;
    margin-bottom: 16px;
    background: #fff;
    border-radius: 10px;
    padding: 12px 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.active-filters-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.active-filters-label {
    font-size: 13px;
    color: var(--gray-500);
}

.active-filters-list {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}

.active-filters-clear {
    margin-left: auto;
    background: none;
    border: none;
    color: var(--primary);
    font-size: 13px;
    cursor: pointer;
    font-weight: 500;
}

/* 对比状态栏 */
.compare-status-bar {
    display: none;
    margin-bottom: 16px;
    background: #fff;
    border-radius: 10px;
    padding: 12px 16px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.compare-status-inner {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #4B5563;
}

.compare-status-inner i {
    color: #10B981;
}

.compare-go-btn {
    margin-left: auto;
    background: #1677FF;
    color: #fff;
    border: none;
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 12px;
    cursor: pointer;
}

.models-loading-state {
    padding: 60px;
}

.models-loading-spinner {
    margin: 0 auto;
}

/* 模型详情视图 - 内嵌 */
.model-detail-view {
    display: none;
}

.detail-card {
    background: #fff;
    border-radius: 16px;
    padding: 30px;
    box-shadow: var(--shadow);
}

.detail-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 30px;
}

.detail-header h2 {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: 8px;
}

.detail-price-block {
    text-align: right;
}

.detail-price-main {
    font-size: 32px;
    font-weight: 700;
    color: var(--primary);
}

.detail-price-unit {
    color: var(--gray-500);
    font-size: 14px;
}

.detail-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-bottom: 30px;
}

.detail-stat-card {
    text-align: center;
    padding: 20px;
    background: var(--gray-50);
    border-radius: 12px;
}

.detail-stat-value {
    font-size: 24px;
    font-weight: 600;
}

.detail-stat-value--primary { color: var(--primary); }
.detail-stat-value--success { color: var(--success); }
.detail-stat-value--warning { color: var(--warning); }
.detail-stat-value--info { color: var(--info); }

.detail-stat-label {
    color: var(--gray-500);
    font-size: 14px;
}

.detail-section-title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
}

.detail-price-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.detail-price-item {
    padding: 16px;
    background: var(--gray-50);
    border-radius: 8px;
}

.detail-price-item-label {
    color: var(--gray-500);
    font-size: 14px;
    margin-bottom: 4px;
}

.detail-price-item-value {
    font-size: 20px;
    font-weight: 600;
}

.detail-supplier-info {
    padding: 16px;
    background: var(--gray-50);
    border-radius: 8px;
}

.detail-supplier-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.detail-supplier-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-weight: 600;
    font-size: 20px;
}

.detail-supplier-name {
    font-weight: 600;
}

.detail-supplier-code {
    color: var(--gray-500);
    font-size: 14px;
}

.detail-ratings-empty {
    text-align: center;
    padding: 30px;
    color: var(--gray-500);
}

/* 评分弹窗 */
.rating-modal-stars {
    font-size: 32px;
    margin-bottom: 20px;
}

.rating-star {
    color: #E5E7EB;
    cursor: pointer;
    transition: color 0.2s;
}

.rating-star.active {
    color: #FBBF24;
}

/* ===========================================
   4. Supplier Join (supplier-join.blade.php)
   =========================================== */
.sj-hero {
    padding: 120px 0 60px;
    background: var(--primary);
    color: #fff;
    margin-top: -72px;
}

.sj-hero .container {
    text-align: center;
}

.sj-hero-title {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 16px;
}

.sj-hero-desc {
    font-size: 18px;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto 32px;
    line-height: 1.8;
}

.sj-hero-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
}

.sj-hero-btn-primary {
    background: #fff;
    color: #1677FF;
    padding: 14px 36px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 16px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.sj-hero-btn-secondary {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    padding: 14px 36px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* 核心优势卡片 */
.sj-features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.sj-feature-card {
    text-align: center;
    padding: 36px 24px;
    background: var(--gray-50);
    border-radius: 16px;
    transition: transform 0.2s;
}

.sj-feature-icon {
    width: 72px;
    height: 72px;
    background: var(--primary);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    font-size: 32px;
    color: #fff;
}

.sj-feature-title {
    font-size: 18px;
    margin-bottom: 10px;
    color: var(--gray-800);
}

.sj-feature-desc {
    color: var(--gray-500);
    font-size: 14px;
    line-height: 1.8;
}

/* 步骤卡片 */
.sj-steps-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.sj-step-card {
    text-align: center;
    padding: 30px 20px;
    background: #fff;
    border-radius: 16px;
    position: relative;
}

.sj-step-num {
    width: 56px;
    height: 56px;
    background: var(--primary);
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 24px;
    font-weight: 800;
}

.sj-step-title {
    font-size: 16px;
    margin-bottom: 8px;
    color: var(--gray-800);
}

.sj-step-desc {
    color: var(--gray-500);
    font-size: 13px;
    line-height: 1.6;
}

/* 收益模式卡片 */
.sj-revenue-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
}

.sj-revenue-card {
    padding: 32px;
    background: var(--gray-50);
    border-radius: 16px;
    border-left: 4px solid var(--primary);
}

.sj-revenue-card--green {
    border-left-color: #059669;
}

.sj-revenue-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 16px;
}

.sj-revenue-icon {
    font-size: 24px;
}

.sj-revenue-icon--primary { color: var(--primary); }
.sj-revenue-icon--green { color: #059669; }

.sj-revenue-title {
    font-size: 18px;
    color: var(--gray-800);
}

.sj-revenue-desc {
    color: var(--gray-600);
    font-size: 14px;
    line-height: 1.8;
}

.sj-revenue-example {
    margin-top: 16px;
    padding: 12px;
    background: #fff;
    border-radius: 8px;
}

.sj-revenue-example span {
    font-size: 13px;
    color: var(--gray-500);
}

/* FAQ卡片 */
.sj-faq-card {
    background: #fff;
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 16px;
}

.sj-faq-card:last-child {
    margin-bottom: 0;
}

.sj-faq-q {
    font-size: 16px;
    color: var(--gray-800);
    margin-bottom: 8px;
}

.sj-faq-q i {
    color: var(--primary);
    margin-right: 8px;
    font-size: 12px;
}

.sj-faq-a {
    color: var(--gray-600);
    font-size: 14px;
    line-height: 1.8;
    padding-left: 20px;
}

/* CTA区域 */
.sj-cta {
    background: var(--primary);
    color: #fff;
}

.sj-cta .container {
    text-align: center;
}

.sj-cta-title {
    font-size: 28px;
    font-weight: 800;
    margin-bottom: 12px;
}

.sj-cta-desc {
    opacity: 0.85;
    margin-bottom: 32px;
    font-size: 16px;
}

.sj-cta-actions {
    display: flex;
    gap: 16px;
    justify-content: center;
}

.sj-cta-btn-primary {
    background: #fff;
    color: #1677FF;
    padding: 14px 40px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 16px;
    text-decoration: none;
}

.sj-cta-btn-secondary {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    padding: 14px 40px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 16px;
    text-decoration: none;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* 自定义 section-tag 颜色变体 */
.section-tag--blue {
    background: #E6F4FF;
    color: #1677FF;
}

.section-tag--green {
    background: #D1FAE5;
    color: #059669;
}

.section-tag--amber {
    background: #FEF3C7;
    color: #D97706;
}

/* ===========================================
   5. Supplier Apply (supplier-apply.blade.php)
   =========================================== */
.sa-hero {
    padding: 80px 0 60px;
    background: var(--primary);
    color: #fff;
}

.sa-hero .container {
    text-align: center;
}

.sa-hero-title {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 16px;
}

.sa-hero-desc {
    font-size: 18px;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto 32px;
    line-height: 1.8;
}

/* 优势卡片 (supplier-apply) */
.sa-benefits-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.sa-benefit-card {
    text-align: center;
    padding: 32px 20px;
    background: var(--gray-50);
    border-radius: 16px;
    transition: transform 0.2s;
}

.sa-benefit-icon {
    width: 64px;
    height: 64px;
    background: var(--primary);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 28px;
    color: #fff;
}

.sa-benefit-title {
    font-size: 16px;
    margin-bottom: 8px;
    color: var(--gray-800);
}

.sa-benefit-desc {
    color: var(--gray-500);
    font-size: 13px;
    line-height: 1.6;
}

/* 步骤卡片 (supplier-apply) */
.sa-steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

/* 申请表单 */
.sa-apply-form {
    background: var(--gray-50);
    padding: 40px;
    border-radius: 16px;
}

.sa-form-group {
    margin-bottom: 20px;
}

.sa-form-group--last {
    margin-bottom: 28px;
}

.sa-form-label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-700);
    margin-bottom: 8px;
}

.sa-form-required {
    color: #EF4444;
}

.sa-form-input,
.sa-form-textarea {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
    background: #fff;
}

.sa-form-input:focus,
.sa-form-textarea:focus {
    border-color: var(--primary);
}

.sa-form-textarea {
    resize: vertical;
    font-family: inherit;
}

.sa-form-hint {
    font-size: 12px;
    color: var(--gray-400);
    margin-top: 6px;
}

.sa-form-submit {
    width: 100%;
    padding: 14px;
    background: var(--primary);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.sa-form-submit:hover {
    background: var(--primary-dark);
}

/* ===========================================
   6. Free Models (free-models.blade.php)
   =========================================== */
.fm-header-content {
    text-align: center;
    color: #fff;
}

.fm-emoji {
    font-size: 48px;
    margin-bottom: 16px;
}

.fm-title {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 16px;
}

.fm-subtitle {
    font-size: 18px;
    opacity: 0.95;
}

.fm-stats {
    display: flex;
    justify-content: center;
    gap: 24px;
    margin-top: 24px;
    flex-wrap: wrap;
}

.fm-stat-card {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 12px;
    padding: 16px 24px;
}

.fm-stat-value {
    font-size: 28px;
    font-weight: 700;
}

.fm-stat-label {
    font-size: 13px;
    opacity: 0.9;
}

/* 步骤卡片 (free-models) */
.fm-step-card {
    background: #F0FDF4;
    border: 1px solid #BBF7D0;
    border-radius: 12px;
    padding: 24px;
    text-align: center;
}

.fm-step-num {
    width: 48px;
    height: 48px;
    background: #059669;
    color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 12px;
    font-weight: 700;
}

.fm-step-title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
}

.fm-step-desc {
    font-size: 13px;
    color: #6B7280;
}

/* 免费模型卡片 (JS渲染) */
.fm-model-link {
    text-decoration: none;
    color: inherit;
}

.fm-model-card {
    border: 1px solid #E5E7EB;
    border-radius: 12px;
    padding: 20px;
    transition: all 0.2s;
    cursor: pointer;
    background: #fff;
}

.fm-model-card:hover {
    border-color: #10B981;
    box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
}

.fm-model-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.fm-model-name {
    font-size: 16px;
    font-weight: 600;
    color: #111827;
}

.fm-model-badge--official {
    background: #DBEAFE;
    color: #1D4ED8;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 6px;
}

.fm-model-badge--self_built {
    background: #D1FAE5;
    color: #059669;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 6px;
}

.fm-model-badge--relay {
    background: #FEF3C7;
    color: #D97706;
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 4px;
    margin-left: 6px;
}

.fm-model-meta-line {
    font-size: 12px;
    color: #9CA3AF;
    margin-top: 4px;
}

.fm-model-free-badge {
    background: #ECFDF5;
    color: #059669;
    font-size: 14px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 8px;
}

.fm-model-stats {
    display: flex;
    align-items: center;
    gap: 16px;
    font-size: 12px;
    color: #6B7280;
}
.fm-model-stats .fm-model-free-badge {
    margin-left: auto;
}

.fm-loading {
    text-align: center;
    padding: 60px;
    color: #9CA3AF;
}

.fm-loading i {
    font-size: 24px;
}

.fm-loading div {
    margin-top: 12px;
}

.fm-empty-icon {
    font-size: 48px;
    margin-bottom: 16px;
}

.fm-empty-title {
    color: #374151;
}

.fm-empty-desc {
    color: #9CA3AF;
    margin-top: 8px;
}

.fm-error {
    text-align: center;
    padding: 60px;
    color: #EF4444;
}

/* 分页 */
.fm-pagination {
    display: flex;
    justify-content: center;
    gap: 4px;
    align-items: center;
    padding: 24px 0;
}

.fm-page-btn {
    min-width: 36px;
    height: 36px;
    padding: 0 10px;
    border: 1px solid #E5E7EB;
    background: #fff;
    color: #374151;
    font-size: 14px;
    font-weight: 500;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.fm-page-btn:hover {
    border-color: #1677FF;
    color: #1677FF;
    background: #F0F7FF;
}
.fm-page-active {
    background: #1677FF;
    color: #fff;
    border-color: #1677FF;
}
.fm-page-active:hover {
    background: #0958D9;
    color: #fff;
}
.fm-page-dots {
    color: #9CA3AF;
    font-size: 14px;
    padding: 0 4px;
}

:root[data-theme="dark"] .fm-page-btn {
    background: #1F2937;
    border-color: #374151;
    color: #D1D5DB;
}
:root[data-theme="dark"] .fm-page-btn:hover {
    border-color: #1677FF;
    color: #1677FF;
    background: rgba(22, 119, 255, 0.1);
}
:root[data-theme="dark"] .fm-page-active {
    background: #1677FF;
    color: #fff;
    border-color: #1677FF;
}
:root[data-theme="dark"] .fm-page-dots {
    color: #6B7280;
}

.fm-steps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
    margin-bottom: 40px;
}

.fm-models-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
}

/* ===========================================
   7. Download Detail (download-detail.blade.php)
   =========================================== */
.dd-page-wrap {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 16px;
}

.dd-breadcrumb {
    margin-bottom: 20px;
    font-size: 14px;
    color: var(--gray-400);
}

.dd-breadcrumb a {
    color: var(--gray-400);
    text-decoration: none;
}

.dd-breadcrumb-sep {
    margin: 0 8px;
}

.dd-breadcrumb-current {
    color: var(--gray-600);
}

.dd-loading {
    text-align: center;
    padding: 80px 20px;
    color: var(--gray-400);
}

.dd-loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid var(--gray-200);
    border-top-color: var(--primary);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin: 0 auto 16px;
}

.dd-notfound {
    display: none;
    text-align: center;
    padding: 80px 20px;
}

.dd-notfound-icon {
    font-size: 64px;
    margin-bottom: 16px;
}

.dd-notfound h3 {
    color: var(--gray-800);
    margin-bottom: 8px;
}

.dd-notfound p {
    color: var(--gray-400);
    margin-bottom: 24px;
}

/* 详情信息卡 */
.dd-info-card {
    background: #fff;
    border-radius: 16px;
    padding: 32px;
    margin-bottom: 24px;
    border: 1px solid var(--gray-100);
}

.dd-info-flex {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.dd-info-icon {
    width: 72px;
    height: 72px;
    background: var(--primary-light);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: var(--primary);
    flex-shrink: 0;
}

.dd-info-main {
    flex: 1;
    min-width: 200px;
}

.dd-info-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.dd-info-title {
    font-size: 24px;
    font-weight: 700;
    color: var(--gray-900);
    margin: 0;
}

.dd-info-version {
    background: var(--primary-light);
    color: var(--primary);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
}

.dd-info-type-badge {
    font-size: 12px;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 6px;
}

.dd-info-desc {
    color: var(--gray-500);
    font-size: 15px;
    margin-top: 8px;
}

.dd-info-meta {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    font-size: 13px;
    color: var(--gray-400);
    flex-wrap: wrap;
}

.dd-info-meta i {
    margin-right: 4px;
}

.dd-download-wrap {
    flex-shrink: 0;
}

.dd-download-btn {
    padding: 14px 32px;
    font-size: 16px;
    font-weight: 700;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* 内容区 */
.dd-content-card {
    background: #fff;
    border-radius: 16px;
    padding: 40px;
    border: 1px solid var(--gray-100);
}

.dd-content {
    line-height: 1.8;
    color: var(--gray-700);
}

/* 内容区的 Markdown 样式 (download-detail内嵌<style>) */
.dd-content h2 {
    font-size: 22px;
    font-weight: 700;
    color: var(--gray-900);
    margin: 32px 0 16px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--gray-100);
}

.dd-content h3 {
    font-size: 18px;
    font-weight: 600;
    color: var(--gray-800);
    margin: 24px 0 12px;
}

.dd-content p {
    margin: 12px 0;
}

.dd-content ul,
.dd-content ol {
    margin: 12px 0;
    padding-left: 24px;
}

.dd-content li {
    margin: 6px 0;
}

.dd-content pre {
    background: #1e293b;
    color: #e2e8f0;
    padding: 20px;
    border-radius: 12px;
    overflow-x: auto;
    margin: 16px 0;
    font-size: 13px;
    line-height: 1.7;
}

.dd-content code {
    background: var(--gray-100);
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 13px;
    color: #e11d48;
}

.dd-content pre code {
    background: none;
    color: inherit;
    padding: 0;
}

.dd-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 16px 0;
    font-size: 14px;
}

.dd-content th,
.dd-content td {
    border: 1px solid var(--gray-200);
    padding: 10px 14px;
    text-align: left;
}

.dd-content th {
    background: var(--gray-50);
    font-weight: 600;
}

.dd-content blockquote {
    border-left: 4px solid var(--primary);
    padding: 12px 16px;
    margin: 16px 0;
    background: var(--primary-light);
    border-radius: 0 8px 8px 0;
    color: var(--gray-600);
}

/* 底部导航 */
.dd-nav {
    display: flex;
    justify-content: space-between;
    margin-top: 24px;
}

.dd-back-link {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--primary);
    text-decoration: none;
    padding: 10px 20px;
    border: 1px solid var(--gray-200);
    border-radius: 10px;
    transition: all 0.15s;
}

.dd-back-link:hover {
    border-color: var(--primary);
}

/* spin动画 */
@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ===========================================
   8. Home (home.blade.php)
   =========================================== */
.home-section-white {
    background: #fff;
}

.home-section-gray {
    background: var(--gray-50);
}

.home-section-primary {
    background: var(--primary);
    color: #fff;
}

.home-section-primary .section-title {
    color: #fff;
}

.home-section-primary .section-subtitle {
    color: rgba(255, 255, 255, 0.8);
}

.home-why-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 30px;
}

@media (max-width: 768px) {
    .models-layout {
        flex-direction: column;
        gap: 16px;
    }
    .filter-sidebar {
        width: 100%;
        position: static;
        display: none;
    }
    .models-main {
        width: 100%;
    }
    .home-why-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }
    .md-icon {
        width: 48px;
        height: 48px;
        border-radius: 12px;
        font-size: 20px;
    }
    .md-title {
        font-size: 20px;
    }
    .md-main-info {
        min-width: 0;
    }
    .md-header-flex {
        gap: 12px;
    }
    .md-stats-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
        margin-top: 16px;
        padding-top: 16px;
    }
    .md-stat-value {
        font-size: 18px;
    }
    .md-stat-label {
        font-size: 11px;
    }
    .md-lowest-price-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }
    .fm-models-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}

@media (min-width: 769px) and (max-width: 1024px) {
    .home-why-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.home-why-card {
    text-align: center;
}

.home-why-icon {
    width: 80px;
    height: 80px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    font-size: 32px;
}

.home-why-title {
    font-size: 18px;
    margin-bottom: 10px;
}

.home-why-desc {
    font-size: 14px;
    opacity: 0.8;
}

.home-more-btn {
    text-align: center;
    margin-top: 32px;
}

/* section-tag 变体 (home) */
.section-tag--amber {
    background: #FEF3C7;
    color: #D97706;
}

.section-tag--green-home {
    background: #D1FAE5;
    color: #059669;
}

.section-tag--blue-home {
    background: #E6F4FF;
    color: #1677FF;
}

/* Home intro grid */
.home-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 40px;
}

@media (max-width: 768px) {
    .home-intro-grid {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

.home-intro-section .section-header {
    text-align: left;
    margin-bottom: 30px;
}

.home-intro-more {
    margin-top: 20px;
}

/* ===========================================
   9. Pricing (pricing.blade.php)
   =========================================== */
.pricing-hero-text {
    text-align: center;
    color: #fff;
}

.pricing-hero-title {
    font-size: 36px;
    font-weight: 700;
    margin-bottom: 16px;
}

.pricing-hero-desc {
    font-size: 18px;
    opacity: 0.9;
}

.pricing-section-bg {
    background: var(--gray-50);
    padding-top: 30px;
}

.pricing-note {
    text-align: center;
    margin-top: 20px;
    color: var(--gray-500);
    font-size: 14px;
}

/* 成本计算器 */
.pricing-calc-card {
    background: var(--white);
    border-radius: var(--radius-xl);
    padding: 32px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.pricing-calc-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.pricing-calc-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.pricing-calc-label {
    font-size: 14px;
    font-weight: 500;
    color: var(--gray-700);
}
.pricing-calc-select,
.pricing-calc-input {
    padding: 10px 14px;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius-lg);
    font-size: 14px;
    color: var(--gray-800);
    background: var(--white);
    outline: none;
    transition: border-color 0.2s;
}
.pricing-calc-select:focus,
.pricing-calc-input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px rgba(59,130,246,0.1);
}
.pricing-calc-btn-wrap {
    margin-top: 24px;
}
.pricing-calc-btn {
    width: 100%;
    padding: 14px;
    background: var(--primary);
    color: var(--white);
    border: none;
    border-radius: var(--radius-lg);
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: var(--transition);
}
.pricing-calc-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
}
.pricing-calc-note {
    margin-top: 16px;
    font-size: 12px;
    color: var(--gray-400);
    text-align: center;
}

/* ===========================================
   10. About (about.blade.php)
   =========================================== */
.about-hero {
    padding: 120px 0 60px;
    background: var(--primary);
    color: #fff;
    margin-top: -72px;
}

.about-hero .container {
    text-align: center;
}

.about-hero-title {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 16px;
}

.about-hero-desc {
    font-size: 18px;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto 32px;
    line-height: 1.8;
}

.about-section-white {
    background: #fff;
}

.about-section-gray {
    background: var(--gray-50);
}

.about-features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.about-feature-card {
    text-align: center;
    padding: 36px 24px;
    background: var(--gray-50);
    border-radius: 16px;
    transition: transform 0.2s;
}

.about-feature-icon {
    width: 72px;
    height: 72px;
    background: var(--primary);
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 20px;
    font-size: 32px;
    color: #fff;
}

.about-feature-title {
    font-size: 18px;
    margin-bottom: 10px;
    color: var(--gray-800);
}

.about-feature-desc {
    color: var(--gray-500);
    font-size: 14px;
    line-height: 1.8;
}

/* 数据统计 */
.about-stats-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 24px;
}

.about-stat-card {
    text-align: center;
    padding: 32px 20px;
    background: var(--primary-light);
    border-radius: 16px;
}

.about-stat-value {
    font-size: 36px;
    font-weight: 800;
    color: var(--primary);
    margin-bottom: 8px;
}

.about-stat-label {
    color: var(--gray-600);
    font-size: 14px;
}

/* 关于我们文字 */
.about-text {
    max-width: 800px;
    margin: 0 auto;
    font-size: 16px;
    color: var(--gray-600);
    line-height: 1.8;
}

.about-text p {
    margin-bottom: 20px;
}

/* ===========================================
   11. Contact (contact.blade.php)
   =========================================== */
.contact-hero {
    padding: 120px 0 60px;
    background: var(--primary);
    color: #fff;
    margin-top: -72px;
}

.contact-hero .container {
    text-align: center;
}

.contact-hero-title {
    font-size: 42px;
    font-weight: 800;
    margin-bottom: 16px;
}

.contact-hero-desc {
    font-size: 18px;
    opacity: 0.9;
    max-width: 600px;
    margin: 0 auto 32px;
    line-height: 1.8;
}

.contact-section-white {
    background: #fff;
}

.contact-section-gray {
    background: var(--gray-50);
}

.contact-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.contact-card {
    text-align: center;
    padding: 32px 20px;
    background: var(--gray-50);
    border-radius: 16px;
    transition: transform 0.2s;
}

.contact-card-icon {
    width: 64px;
    height: 64px;
    background: var(--primary);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
    font-size: 28px;
    color: #fff;
}

.contact-card-title {
    font-size: 16px;
    margin-bottom: 8px;
    color: var(--gray-800);
}

.contact-card-value {
    color: var(--primary);
    font-size: 15px;
    font-weight: 500;
}

.contact-card-desc {
    color: var(--gray-500);
    font-size: 13px;
    margin-top: 8px;
}

/* 联系表单 */
.contact-form-wrap {
    max-width: 600px;
    margin: 0 auto;
    background: var(--gray-50);
    padding: 40px;
    border-radius: 16px;
}

/* ===========================================
   12. Article Detail (article-detail.blade.php)
   =========================================== */
.article-breadcrumb-a {
    color: var(--gray-500);
    text-decoration: none;
    font-size: 14px;
}

.article-breadcrumb-sep {
    color: var(--gray-400);
    margin: 0 8px;
}

.article-breadcrumb-current {
    color: var(--gray-700);
    font-size: 14px;
}

.article-nav-label {
    font-size: 12px;
    color: var(--gray-400);
    margin-bottom: 4px;
}

.article-nav-title {
    font-weight: 500;
    color: var(--gray-700);
}

/* ===========================================
   13. Playground (playground.blade.php)
   =========================================== */
.pg-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 24px;
    padding: 24px 0;
}

.pg-sidebar {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

.pg-sidebar-title {
    font-size: 16px;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 16px;
}

.pg-sidebar-group {
    margin-bottom: 16px;
}

.pg-sidebar-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--gray-600);
    margin-bottom: 6px;
}

.pg-sidebar-select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 13px;
    color: var(--gray-700);
    outline: none;
}

.pg-sidebar-input {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    font-size: 13px;
    outline: none;
}

.pg-main {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.pg-chat-header {
    padding: 16px 20px;
    border-bottom: 1px solid var(--gray-100);
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-700);
}

.pg-chat-body {
    height: 500px;
    overflow-y: auto;
    padding: 20px;
}

.pg-chat-input-area {
    display: flex;
    border-top: 1px solid var(--gray-100);
}

.pg-chat-input {
    flex: 1;
    padding: 14px 16px;
    border: none;
    outline: none;
    font-size: 14px;
    font-family: inherit;
}

.pg-chat-send-btn {
    padding: 14px 24px;
    background: var(--primary);
    color: #fff;
    border: none;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
}

/* ===========================================
   14. Reviews (reviews.blade.php)
   =========================================== */
.reviews-header {
    text-align: center;
    margin-bottom: 40px;
}

.reviews-title {
    font-size: 32px;
    font-weight: 700;
    color: var(--gray-800);
    margin-bottom: 12px;
}

.reviews-subtitle {
    color: var(--gray-500);
    font-size: 16px;
}

.reviews-filter-row {
    display: flex;
    gap: 12px;
    margin-bottom: 24px;
}

.reviews-filter-select {
    padding: 8px 16px;
    background: var(--white);
    border: 1px solid var(--gray-200);
    border-radius: 8px;
    color: var(--gray-700);
    font-size: 14px;
}

.reviews-filter-spacer {
    flex: 1;
}

.reviews-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 20px;
}

.reviews-grid-loading {
    color: var(--gray-500);
    text-align: center;
    padding: 40px;
    grid-column: 1 / -1;
}

.reviews-pagination {
    text-align: center;
    margin-top: 24px;
}

/* ===========================================
   15. Docs (docs.blade.php)
   =========================================== */
.docs-body {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 30px;
    padding: 24px 0;
}

.docs-sidebar {
    background: #fff;
    border-radius: 12px;
    padding: 20px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    position: sticky;
    top: 90px;
    align-self: start;
}

.docs-sidebar-title {
    font-size: 14px;
    font-weight: 600;
    color: var(--gray-800);
    margin-bottom: 12px;
}

.docs-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.docs-nav-item {
    margin-bottom: 4px;
}

.docs-nav-link {
    display: block;
    padding: 8px 12px;
    font-size: 13px;
    color: var(--gray-600);
    border-radius: 6px;
    transition: var(--transition);
    text-decoration: none;
}

.docs-nav-link:hover {
    color: var(--primary);
    background: var(--primary-light);
}

.docs-nav-link.active {
    color: var(--primary);
    background: var(--primary-light);
    font-weight: 600;
}

.docs-content {
    background: #fff;
    border-radius: 12px;
    padding: 32px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
}

/* ===========================================
   16. Packages (packages.blade.php)
   =========================================== */
/* packages 页面主要使用 website.css 已有的 .package-grid / .package-card 样式 */
.packages-section-bg {
    background: var(--gray-50);
    padding-top: 30px;
}

/* ===========================================
   17. Articles (articles.blade.php)
   =========================================== */
/* articles 页面使用 website.css 已有的 .article-grid / .article-card 样式 */

/* ===========================================
   18. Downloads (downloads.blade.php)
   =========================================== */
/* downloads 页面使用 website.css 已有的 .download-grid / .download-card 样式 */

/* ===========================================
   19. 残余内联样式清理
   =========================================== */

/* --- about.blade.php --- */
.about-hero { text-align:center; margin-bottom:60px; }
.about-logo-icon { width:100px; height:100px; background:var(--primary); border-radius:24px; display:flex; align-items:center; justify-content:center; margin:0 auto 24px; font-size:48px; color:#fff; }
.about-mission-title { font-size:24px; color:var(--gray-800); margin-bottom:12px; }
.about-mission-desc { color:var(--gray-600); font-size:16px; line-height:1.8; }
.about-cta-box { background:var(--primary); border-radius:16px; padding:40px; text-align:center; color:#fff; }
.about-cta-title { font-size:22px; margin-bottom:12px; }
.about-cta-desc { opacity:0.8; margin-bottom:24px; }
.about-cta-btn { background:#fff; color:#1677FF; padding:12px 32px; border-radius:8px; font-weight:600; text-decoration:none; display:inline-block; }

/* --- article-detail.blade.php --- */
.article-detail-breadcrumb { padding:100px 0 20px; }
.article-detail-loading { text-align:center; padding:60px; }
.article-detail-spinner { width:40px; height:40px; border:3px solid var(--gray-200); border-top-color:var(--primary); border-radius:50%; animation:spin 0.8s linear infinite; margin:0 auto 16px; }
.article-detail-loading-text { color:var(--gray-500); }
.article-detail-more { text-align:center; margin-top:40px; }

/* --- articles.blade.php --- */
.articles-section { padding-top:24px; }
.articles-filter-row { margin-top:20px; }
.articles-filter-group { flex:1; }

/* --- contact.blade.php --- */
.contact-form-title { font-size:20px; margin-bottom:24px; color:var(--gray-800); }
.contact-form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.contact-form-group-sm { margin-bottom:16px; }
.contact-form-group-lg { margin-bottom:24px; }
.contact-form-submit { width:100%; }

/* --- docs.blade.php --- */
.docs-content-section { background:#fff; padding-top:40px; }

/* --- model-detail.blade.php --- */
.md-breadcrumb-link { color:var(--gray-400); text-decoration:none; }
.md-supplier-table { width:100%; border-collapse:collapse; font-size:14px; }
.md-supplier-thead { background:var(--gray-50); border-bottom:2px solid var(--gray-200); }
.md-supplier-th { padding:14px 16px; text-align:left; font-weight:600; color:var(--gray-700); }
.md-supplier-th-center { padding:14px 16px; text-align:center; font-weight:600; color:var(--gray-700); }
.md-supplier-th-right { padding:14px 16px; text-align:right; font-weight:600; color:var(--gray-700); }

/* --- models.blade.php --- */
.models-loading-text { margin-top:16px; color:var(--gray-500); }
.models-filter-group { margin-bottom:20px; }
.models-detail-name { color:var(--gray-500); }
.models-detail-info { margin-bottom:30px; }
.models-detail-supplier { margin-bottom:30px; }
.models-rating-desc { margin-bottom:20px; color:var(--gray-600); }
.models-rating-body { text-align:center; }

/* --- download-detail.blade.php --- */
.dd-content-hidden { display:none; }

/* --- pricing.blade.php (Claude Code遗留) --- */
.pricing-page-header { text-align:center; margin-bottom:50px; }
.pricing-page-title { font-size:36px; font-weight:700; color:var(--gray-800); margin-bottom:16px; }
.pricing-page-desc { font-size:16px; color:var(--gray-500); max-width:600px; margin:0 auto; }

/* --- playground.blade.php (Claude Code遗留) --- */
.pg-header { padding:24px 0; border-bottom:1px solid var(--gray-200); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.pg-select-group { display:flex; align-items:center; gap:12px; }
.pg-select-label { font-weight:600; color:var(--gray-700); }
.pg-body { display:flex; gap:20px; min-height:500px; }
.pg-sidebar { width:260px; flex-shrink:0; }
.pg-main { flex:1; min-width:0; display:flex; flex-direction:column; gap:16px; }
.pg-card { background:#fff; border-radius:12px; padding:20px; box-shadow:0 1px 3px rgba(0,0,0,0.06); }
.pg-card-title { font-size:16px; font-weight:600; margin-bottom:12px; color:var(--gray-700); }
.pg-textarea { width:100%; min-height:180px; border:1px solid var(--gray-200); border-radius:8px; padding:12px; font-family:monospace; font-size:13px; resize:vertical; }
.pg-output { background:var(--gray-50); border-radius:8px; padding:16px; min-height:200px; max-height:500px; overflow-y:auto; font-family:monospace; font-size:13px; white-space:pre-wrap; word-break:break-all; }
.pg-stats { display:flex; gap:24px; padding:12px 0; border-top:1px solid var(--gray-100); }
.pg-stat-item { font-size:13px; color:var(--gray-500); }
.pg-stat-value { font-weight:600; color:var(--gray-700); margin-left:4px; }

/* --- supplier-apply.blade.php --- */
.sa-section-white { background:#fff; }
.sa-section-gray { background:var(--gray-50); }
.sa-step-title { font-size:17px; }

/* --- supplier-join.blade.php 残余 --- */
.sj-highlight-box { background:linear-gradient(135deg, #1677FF 0%, #7C3AED 100%); border-radius:16px; padding:48px 40px; color:#fff; }
.sj-highlight-title { font-size:28px; font-weight:700; margin-bottom:16px; }
.sj-highlight-desc { opacity:0.9; font-size:16px; line-height:1.8; }

/* --- pricing.blade.php 残余 --- */
.pricing-tag-free { background:#D1FAE5; color:#059669; }
.pricing-loading { text-align:center; padding:60px 0; color:var(--gray-400); }
.pricing-spinner { font-size:32px; }
.pricing-loading-text { margin-top:12px; }
.pricing-calc-icon { margin-right:6px; }

/* --- packages.blade.php 残余 --- */
.pkg-tag-free { background:#D1FAE5; color:#059669; }

/* --- playground.blade.php 残余 --- */
.pg-page-section { background:#fff; padding-top:40px; min-height:100vh; }
.pg-config-compact { padding:12px; }
.pg-config-title-sm { font-size:13px; margin-bottom:8px; }
.pg-flex-col { display:flex; flex-direction:column; gap:8px; }
.pg-select-sm { font-size:12px; padding:8px 10px; }
.pg-hint-text { font-size:13px; color:var(--gray-400); margin-top:8px; }
.pg-auto-label { font-size:13px; color:var(--gray-400); }

/* ===========================================
   20. Auth Pages (auth/*.blade.php)
   =========================================== */
/* login.blade.php */
.auth-form-check-between { justify-content: space-between; }
.auth-forgot-link { font-size: 14px; }
.social-icon-wechat { color: #07C160; }
.social-icon-github { color: #333; }
.social-icon-google { color: #4285F4; }
.social-icon-apple { color: #000; }
.social-icon-facebook { color: #1877F2; }

/* register.blade.php */
.captcha-input-flex { flex: 1; }

/* forgot-password.blade.php */
.fp-success-icon { font-size: 48px; color: #10B981; margin-bottom: 16px; }
.fp-success-title { margin: 0 0 8px; font-size: 20px; color: #111; }
.fp-success-desc { color: #6B7280; margin-bottom: 24px; }
.fp-success-btn { display: inline-block; text-align: center; text-decoration: none; }
.fp-back-link { text-align: center; margin-top: 20px; }
.fp-back-link a { color: var(--primary); font-size: 14px; }

/* auth/layout.blade.php */
.auth-layout-controls { position: absolute; bottom: 24px; left: 24px; display: flex; gap: 8px; }
.auth-lang-toggle-wrap { position: relative; }
.auth-lang-dropdown-wrap { display: none; position: absolute; bottom: 100%; left: 0; margin-bottom: 4px; }

/* forgot-password.blade.php 补充 */
.fp-success-panel { text-align: center; }
.fp-submit-link { display: inline-block; text-align: center; text-decoration: none; }
.fp-back-login { text-align: center; margin-top: 20px; }
.fp-back-link { color: var(--primary); font-size: 14px; }

/* login.blade.php 补充 */
.form-check-between { justify-content: space-between; }
.auth-forgot-sm { font-size: 14px; }

/* ===========================================
   21. Admin Pages 管理后台
   =========================================== */

/* 通用布局 */
.admin-card-body-nopad { padding: 0; }
.admin-card-mt { margin-top: 24px; }
.admin-grid-3-2 { display: grid; grid-template-columns: 3fr 2fr; gap: 24px; margin-top: 24px; }
.admin-grid-1-1 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.admin-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.admin-chart-300 { height: 300px; }
.admin-chart-280 { height: 280px; }

/* 卡片头部 flex 布局 */
.admin-card-header-flex { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.admin-card-header-icon { margin-right: 8px; }
.admin-card-header-icon-primary { color: var(--primary); margin-right: 8px; }
.admin-card-header-icon-indigo { color: #4F46E5; margin-right: 8px; }

/* 筛选栏 */
.admin-filter-bar { background: transparent; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.admin-filter-bar-input { width: 200px; }
.admin-filter-bar-select { width: 140px; }
.admin-filter-bar-select-auto { width: auto; min-width: 140px; }
.admin-filter-bar-input-sm { width: 180px; }

/* 表格 */
.admin-table-loading { text-align: center; padding: 40px; color: #9CA3AF; }
.admin-table-empty { text-align: center; padding: 40px; color: var(--gray-400); }

/* 表格列宽 */
.admin-th-sort { width: 50px; }
.admin-th-category { width: 100px; }
.admin-th-status { width: 60px; }
.admin-th-views { width: 80px; }
.admin-th-time { width: 160px; }
.admin-th-action { width: 120px; }

/* 待处理卡片 */
.admin-pending-card { box-shadow: none; border: 1px solid #E5E7EB; }

/* Tab 导航 */
.admin-config-tabs { display: flex; border-bottom: 1px solid #E5E7EB; padding: 0 20px; flex-wrap: wrap; }
.admin-config-container { padding: 24px; }
.admin-config-loading { text-align: center; padding: 40px; color: #999; }

/* 下拉选择框 */
.admin-select-period { width: auto; padding: 6px 12px; font-size: 13px; }

/* 时间标签 */
.admin-time-label { font-size: 12px; color: #9CA3AF; }

/* 文档管理弹窗 */
.admin-modal-lg { max-width: 900px; max-height: 90vh; display: flex; flex-direction: column; }
.admin-modal-body-scroll { overflow-y: auto; flex: 1; padding: 20px; }
.admin-modal-footer-padded { padding: 16px 20px; border-top: 1px solid var(--gray-200); }

/* 文档编辑器 */
.admin-doc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.admin-doc-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.admin-doc-required { color: red; }
.admin-doc-editor-wrap { border: 1px solid var(--gray-200); border-radius: 8px; overflow: hidden; }
.admin-doc-editor-toolbar { display: flex; gap: 8px; padding: 8px 12px; background: var(--gray-50); border-bottom: 1px solid var(--gray-200); }
.admin-doc-editor-textarea { border: none; border-radius: 0; font-family: monospace; font-size: 14px; line-height: 1.6; resize: vertical; }

/* 文档状态 */
.admin-doc-status-published { color: #059669; }
.admin-doc-status-draft { color: var(--gray-400); }

/* 文档表格 */
.admin-doc-title { font-weight: 500; }
.admin-doc-time { color: var(--gray-500); font-size: 13px; }

/* sidebar 头像 */
.admin-sidebar-avatar { width: 40px; height: 40px; background: var(--primary); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; }

/* ===========================================
   22. Supplier Endpoints (supplier/endpoints.blade.php)
   =========================================== */
.ep-required { color: #EF4444; }
.ep-mt-16 { margin-top: 16px; }
.ep-label-flex { display: flex; align-items: center; gap: 8px; font-weight: 500; cursor: pointer; }
.ep-checkbox { width: 16px; height: 16px; accent-color: var(--primary); }
.ep-hint { margin-top: 6px; font-size: 13px; color: var(--gray-500); line-height: 1.5; }
.ep-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ep-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.ep-summary { cursor: pointer; font-size: 13px; color: var(--gray-500); user-select: none; }
.ep-label-sm { font-size: 12px; color: var(--gray-400); font-weight: 400; }
.ep-mb-12 { margin-bottom: 12px; }
.ep-mt-8 { margin-top: 8px; }
.ep-label-xs { font-size: 12px; }

/* ===========================================
   23. Supplier Wallet (supplier/wallet.blade.php)
   =========================================== */
.sw-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sw-value-primary { color: #1677FF; }
.sw-value-warning { color: #F59E0B; }
.sw-value-success { color: #10B981; }
.sw-value-info { color: #06B6D4; }
.sw-mt-20 { margin-top: 20px; }
.sw-p0 { padding: 0; }
.sw-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 20px; }
.sw-chart-title { margin-bottom: 12px; color: #E5E7EB; }
.sw-filter-row { padding: 16px; display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; border-bottom: 1px solid #1F2937; }
.sw-filter-label { font-size: 12px; color: #9CA3AF; }
.sw-summary-row { padding: 16px; border-top: 1px solid #1F2937; }
.sw-summary-item { text-align: center; }
.sw-summary-label { font-size: 12px; color: #9CA3AF; }
.sw-summary-value { font-size: 18px; font-weight: 600; }
.sw-summary-value--success { color: #10B981; }
.sw-summary-value--primary { color: #1677FF; }
.sw-summary-value--default { color: #E5E7EB; }
.sw-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.sw-grid-2-padded { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 20px; }

/* ===========================================
   24. User Referrals (user/referrals.blade.php)
   =========================================== */
.ur-mb-20 { margin-bottom: 20px; }
.ur-icon-amber { color: #F59E0B; margin-right: 8px; }
.ur-p-20 { padding: 20px; }
.ur-grid-3-center { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; text-align: center; }
.ur-step-card { padding: 16px; background: rgba(79, 70, 229, 0.1); border-radius: 12px; }
.ur-step-card--green { padding: 16px; background: rgba(16, 185, 129, 0.1); border-radius: 12px; }
.ur-step-card--amber { padding: 16px; background: rgba(245, 158, 11, 0.1); border-radius: 12px; }
.ur-step-icon { font-size: 28px; }
.ur-step-icon--primary { color: #4F46E5; }
.ur-step-icon--success { color: #10B981; }
.ur-step-icon--amber { color: #F59E0B; }
.ur-step-title { margin-top: 8px; font-weight: 600; color: #F3F4F6; }
.ur-step-desc { font-size: 12px; color: #9CA3AF; margin-top: 4px; }
.ur-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 20px; }
.ur-icon-primary { color: #4F46E5; margin-right: 8px; }
.ur-input-readonly { flex: 1; padding: 10px 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #F3F4F6; font-size: 14px; }
.ur-code-label { color: #9CA3AF; font-size: 14px; }
.ur-code-value { color: #4F46E5; font-weight: 700; font-size: 16px; letter-spacing: 2px; }
.ur-grid-rows { display: grid; grid-template-rows: 1fr 1fr; gap: 16px; }
.ur-stat-card { text-align: center; padding: 20px; }
.ur-stat-label { font-size: 14px; color: #9CA3AF; }
.ur-stat-value { font-size: 28px; font-weight: 700; margin-top: 8px; }
.ur-stat-value--primary { color: #4F46E5; }
.ur-stat-value--success { color: #10B981; }
.ur-stat-unit { font-size: 12px; color: #9CA3AF; }
.ur-list-loading { color: #9CA3AF; text-align: center; padding: 20px; }

/* ===========================================
   25. User Balance Alert (user/balance-alert.blade.php)
   =========================================== */
.uba-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.uba-card-header-icon { margin-right: 8px; }
.uba-card-header-icon-amber { color: #F59E0B; margin-right: 8px; }
.uba-card-header-icon-primary { color: #4F46E5; margin-right: 8px; }
.uba-card-header-icon-success { color: #10B981; margin-right: 8px; }
.uba-card-header-icon-indigo { color: #6366F1; margin-right: 8px; }
.uba-p-24 { padding: 24px; }
.uba-label { display: block; color: #9CA3AF; margin-bottom: 8px; font-size: 14px; }
.uba-value { font-size: 28px; font-weight: 700; color: #4F46E5; }
.uba-input { width: 100%; padding: 10px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #F3F4F6; font-size: 16px; }
.uba-hint { font-size: 12px; color: #6B7280; margin-top: 4px; }
.uba-checkbox-row { margin-bottom: 20px; display: flex; align-items: center; gap: 12px; }
.uba-checkbox { width: 18px; height: 18px; }
.uba-checkbox-label { color: #F3F4F6; font-size: 14px; }
.uba-card-body-gray { padding: 20px; color: #9CA3AF; font-size: 14px; line-height: 1.8; }
.uba-status-loading { text-align: center; }
.uba-p-16 { padding: 16px; }

/* ===========================================
   26. Supplier Dashboard (supplier/dashboard.blade.php)
   =========================================== */
.sd-icon-box { width: 40px; height: 40px; background: var(--primary); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; }
.sd-mt-24 { margin-top: 24px; }
.sd-loading-text { text-align: center; padding: 40px; color: #9CA3AF; }

/* ===========================================
   27. Supplier Call Logs (supplier/call-logs.blade.php)
   =========================================== */
.scl-p-0 { padding: 0; }

/* ===========================================
   28. Admin Documents (admin/documents.blade.php)
   =========================================== */
.ad-required { color: red; }
.ad-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ad-grid-3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }
.ad-editor-wrap { border: 1px solid var(--gray-200); border-radius: 8px; overflow: hidden; }
.ad-editor-toolbar { display: flex; gap: 8px; padding: 8px 12px; background: var(--gray-50); border-bottom: 1px solid var(--gray-200); }
.ad-editor-textarea { border: none; border-radius: 0; font-family: monospace; font-size: 14px; line-height: 1.6; resize: vertical; }
.ad-modal-lg { max-width: 900px; max-height: 90vh; display: flex; flex-direction: column; }
.ad-modal-body-scroll { overflow-y: auto; flex: 1; padding: 20px; }
.ad-modal-footer-padded { padding: 16px 20px; border-top: 1px solid var(--gray-200); }
.ad-doc-status-published { color: #059669; }
.ad-doc-status-draft { color: var(--gray-400); }
.ad-doc-title { font-weight: 500; }
.ad-doc-time { color: var(--gray-500); font-size: 13px; }

/* ===========================================
   29. User Usage (user/usage.blade.php)
   =========================================== */
.uu-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.uu-stat-card { text-align: center; padding: 20px; }
.uu-stat-label { font-size: 13px; color: #9CA3AF; }
.uu-stat-value { font-size: 24px; font-weight: 700; margin-top: 6px; }
.uu-stat-value--primary { color: #4F46E5; }
.uu-stat-value--success { color: #10B981; }
.uu-stat-value--warning { color: #F59E0B; }
.uu-stat-value--danger { color: #EF4444; }
.uu-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; margin-bottom: 20px; }
.uu-icon-primary { color: #4F46E5; margin-right: 8px; }
.uu-icon-success { color: #10B981; margin-right: 8px; }
.uu-icon-danger { color: #EF4444; margin-right: 8px; }

/* ===========================================
   30. User Profile (user/profile.blade.php)
   =========================================== */
.up-flex-phone { display: flex; gap: 10px; }
.up-input-readonly { flex: 1; padding: 10px 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #F3F4F6; font-size: 14px; }
.up-pw-strength { height: 4px; margin-top: 6px; border-radius: 2px; background: #E5E7EB; overflow: hidden; }
.up-mt-24 { margin-top: 24px; }
.up-modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 10000; align-items: center; justify-content: center; }
.up-modal-content { background: #fff; border-radius: 12px; padding: 32px; width: 100%; max-width: 420px; margin: 20px; }
.up-modal-title { margin: 0 0 20px; font-size: 18px; }
.up-flex-code { display: flex; gap: 10px; }
.up-flex-btns { display: flex; gap: 12px; margin-top: 20px; }
.up-flex-1 { flex: 1; }

/* ===========================================
   31. User Daily Reports (user/daily-reports.blade.php)
   =========================================== */
.udr-flex-btns { display: flex; gap: 12px; margin-bottom: 20px; }
.udr-grid-1-2 { display: grid; grid-template-columns: 1fr 2fr; gap: 20px; }
.udr-icon-primary { color: #4F46E5; margin-right: 8px; }
.udr-icon-success { color: #10B981; margin-right: 8px; }
.udr-icon-warning { color: #F59E0B; margin-right: 8px; }
.udr-mb-20 { margin-bottom: 20px; }
.udr-detail-empty { color: #9CA3AF; text-align: center; padding: 20px; }

/* ===========================================
   32. User Reviews (user/reviews.blade.php)
   =========================================== */
.ur-header-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.ur-header-title { color: #F3F4F6; margin: 0; }
.ur-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0, 0, 0, 0.7); z-index: 1000; }
.ur-modal-content { background: #1F2937; border-radius: 16px; padding: 24px; width: 90%; max-width: 600px; max-height: 90vh; overflow-y: auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.ur-modal-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.ur-modal-title { color: #F3F4F6; margin: 0; }
.ur-modal-close { background: none; border: none; color: #9CA3AF; font-size: 20px; cursor: pointer; }

/* ===========================================
   33. Public Playground (public/playground.blade.php)
   =========================================== */
.pg-usage-bar-hidden { display: none; }

/* ===========================================
   34. Public Download Detail (public/download-detail.blade.php)
   =========================================== */
.dd-content-hidden { display: none; }

/* ===========================================
   35. User Favorites (user/favorites.blade.php)
   =========================================== */
.uf-loading-text { text-align: center; padding: 40px; color: #9CA3AF; }

/* ===========================================
   36. Supplier Models (supplier/models.blade.php)
   =========================================== */
.sm-p-0 { padding: 0; }

/* ===========================================
   37. Supplier Webhooks (supplier/webhooks.blade.php) - 不存在
   =========================================== */

/* ===========================================
   38. Public Docs (public/docs.blade.php)
   =========================================== */
.pd-empty-icon { font-size: 40px; margin-bottom: 16px; }

/* ===========================================
   39. Supplier Packages (supplier/packages.blade.php)
   =========================================== */
.sp-p-0 { padding: 0; }

/* ===========================================
   40. Layout (layout.blade.php)
   =========================================== */
.layout-spacer { height: 72px; }

/* ===========================================
   41. Public Free Models (public/free-models.blade.php)
   =========================================== */
.fm-loading-text { text-align: center; padding: 40px; color: #9CA3AF; }

/* ===========================================
   42. User Tokens (user/tokens.blade.php)
   =========================================== */
.ut-mt-16 { margin-top: 16px; }

/* ===========================================
   43. Auth Forgot Password (auth/forgot-password.blade.php)
   =========================================== */
.afp-text-center { text-align: center; }

/* User Profile 页面样式 */
.up-flex-phone { display: flex; gap: 10px; }
.up-input-readonly { flex: 1; padding: 10px 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #F3F4F6; font-size: 14px; }
.up-pw-strength { height: 4px; margin-top: 6px; border-radius: 2px; background: #E5E7EB; overflow: hidden; }
.up-mt-24 { margin-top: 24px; }
.up-modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 10000; align-items: center; justify-content: center; }
.up-modal-content { background: #fff; border-radius: 12px; padding: 32px; width: 100%; max-width: 420px; margin: 20px; }
.up-modal-title { margin: 0 0 20px; font-size: 18px; }
.up-flex-code { display: flex; gap: 10px; }
.up-flex-btns { display: flex; gap: 12px; margin-top: 20px; }
.up-flex-1 { flex: 1; }

/* User Favorites 页面样式 */
.uf-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 20px; }
.uf-icon-warning { color: #F59E0B; margin-right: 8px; }
.uf-icon-primary { color: #4F46E5; margin-right: 8px; }
.uf-loading-text { text-align: center; padding: 40px; color: #9CA3AF; }

/* Supplier Models 页面样式 */
.sm-p-0 { padding: 0; }
.sm-market-ref { display: none; padding: 10px 14px; background: rgba(79, 70, 229, 0.08); border: 1px solid rgba(79, 70, 229, 0.2); border-radius: 8px; margin-bottom: 12px; }
.sm-market-ref-text { font-size: 13px; color: #A5B4FC; }
.sm-hint-text { color: #9CA3AF; margin-top: 4px; display: block; }

/* User Webhooks 页面样式 */
.uw-badge-green { background: #D1FAE5; color: #059669; font-size: 12px; padding: 2px 8px; border-radius: 4px; }
.uw-badge-gray { background: #F3F4F6; color: #6B7280; font-size: 12px; padding: 2px 8px; border-radius: 4px; }
.uw-badge-red { background: #FEE2E2; color: #EF4444; font-size: 12px; padding: 2px 8px; border-radius: 4px; }
.uw-status-active { color: #059669; }
.uw-status-inactive { color: #6B7280; }
.uw-text-center { text-align: center; padding: 40px; color: #9CA3AF; }
.uw-p-0 { padding: 0; }
.uw-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; }
.uw-card-icon { margin-right: 8px; }
.uw-card-icon-amber { color: #F59E0B; margin-right: 8px; }
.uw-card-icon-primary { color: #4F46E5; margin-right: 8px; }
.uw-card-icon-success { color: #10B981; margin-right: 8px; }
.uw-card-icon-indigo { color: #6366F1; margin-right: 8px; }
.uw-p-24 { padding: 24px; }
.uw-p-16 { padding: 16px; }
.uw-mb-16 { margin-bottom: 16px; }
.uw-mb-20 { margin-bottom: 20px; }
.uw-text-muted { color: #9CA3AF; font-size: 14px; }
.uw-flex-btns { display: flex; gap: 12px; margin-top: 20px; }
.uw-flex-1 { flex: 1; }

/* User Wallet 页面样式 */
.wallet-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.wallet-card { text-align: center; padding: 20px; }
.wallet-card-icon { font-size: 28px; margin-bottom: 10px; color: #4F46E5; }
.wallet-card-label { font-size: 13px; color: #9CA3AF; margin-bottom: 5px; }
.wallet-card-value { font-size: 20px; font-weight: 600; }
.wallet-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.wallet-recharge-btns { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.wallet-recharge-btn { min-width: 100px; padding: 12px 20px; border-radius: 8px; font-weight: 600; cursor: pointer; transition: all 0.2s; }
.wallet-recharge-btn-selected { background: #4F46E5; color: #fff; border: none; }
.wallet-recharge-btn-unselected { background: transparent; color: #4F46E5; border: 1px solid #4F46E5; }
.wallet-amount-input { width: 100%; padding: 12px;16px; border: 1px solid #E5E7EB; border-radius: 8px; font-size: 16px; margin-bottom: 12px; }
.wallet-amount-input:focus { border-color: #4F46E5; outline: none; }
.wallet-balance-warning { background: #FEF3C7; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; color: #92400E; font-size: 14px; }
.wallet-balance-expiring { background: #FEF3C7; padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; color: #92400E; font-size: 14px; }
.wallet-chart-container { height: 300px; background: #fff; border-radius: 12px; padding: 16px; margin-bottom: 24px; }

/* 收入明细 / 提现记录 */
.record-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    background: #fff;
    border-radius: 10px;
    margin-bottom: 8px;
    border: 1px solid #F3F4F6;
    transition: box-shadow 0.15s;
}
.record-item:hover {
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.record-info {
    flex: 1;
    min-width: 0;
}
.record-title {
    font-size: 15px;
    font-weight: 600;
    color: #1F2937;
    margin-bottom: 4px;
}
.record-desc {
    font-size: 13px;
    color: #9CA3AF;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.record-right {
    text-align: right;
    flex-shrink: 0;
    margin-left: 16px;
}
.record-amount {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 2px;
}
.record-amount.income { color: #059669; }
.record-amount.expense { color: #DC2626; }
.record-balance {
    font-size: 12px;
    color: #9CA3AF;
}

/* 移动端 record-item 适配 */
@media (max-width: 768px) {
    .record-item {
        padding: 12px 14px;
        margin-bottom: 6px;
    }
    .record-title { font-size: 14px; }
    .record-desc { font-size: 12px; }
    .record-amount { font-size: 15px; }
}
.wallet-p-0 { padding: 0; }
.wallet-filter-row { padding: 16px; display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; border-bottom: 1px solid #E5E7EB; }
.wallet-filter-label { font-size: 12px; color: #9CA3AF; }
.wallet-summary-row { padding: 16px; border-top: 1px solid #E5E7EB; }
.wallet-summary-item { text-align: center; }
.wallet-summary-label { font-size: 12px; color: #9CA3AF; }
.wallet-summary-value { font-size: 18px; font-weight: 600; }
.wallet-summary-value--success { color: #10B981; }
.wallet-summary-value--primary { color: #4F46E5; }
.wallet-summary-value--default { color: #F3F4F6; }

/* User Dashboard 页面样式 */
.ud-forecast-container { margin-top: 20px; }
.ud-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 20px; }
.ud-stat-card { text-align: center; padding: 20px; border: 1px solid #E5E7EB; border-radius: 8px; }
.ud-stat-icon { font-size: 24px; margin-bottom: 8px; }
.ud-stat-icon-primary { color: #4F46E5; }
.ud-stat-icon-success { color: #10B981; }
.ud-stat-icon-warning { color: #F59E0B; }
.ud-stat-label { font-size: 13px; color: #9CA3AF; margin-bottom: 4px; }
.ud-stat-value { font-size: 24px; font-weight: 600; }
.ud-stat-value-primary { color: #4F46E5; }
.ud-stat-value-success { color: #10B981; }
.ud-stat-value-warning { color: #F59E0B; }
.ud-stat-unit { font-size: 12px; color: #9CA3AF; }
.ud-chart-card { background: #fff; border-radius: 8px; padding: 16px; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.ud-chart-title { font-size: 14px; font-weight: 600; color: #374151; margin-bottom: 12px; }
.ud-chart-container { height: 250px; }
.ud-grid-2-1 { display: grid; grid-template-columns: 2fr 1fr; gap: 24px; }
.ud-quick-actions { background: #fff; border-radius: 8px; padding: 16px; }
.ud-quick-action-btn { display: flex; align-items: center; gap: 8px; padding: 12px; border: 1px solid #E5E7EB; border-radius: 8px; color: #374151; text-decoration: none; transition: all 0.2s; margin-bottom: 8px; }
.ud-quick-action-btn:hover { border-color: #4F46E5; color: #4F46E5; background: #F5F3FF; }
.ud-empty-state { text-align: center; padding: 40px; color: #9CA3AF; }

/* User Call Logs 页面样式 */
.cl-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.cl-stat-card { text-align: center; padding: 20px; border: 1px solid #374151; border-radius: 8px; }
.cl-stat-label { font-size: 13px; color: #9CA3AF; margin-bottom: 4px; }
.cl-stat-value { font-size: 24px; font-weight: 600; }
.cl-stat-value-primary { color: #4F46E5; }
.cl-stat-value-success { color: #10B981; }
.cl-stat-value-warning { color: #F59E0B; }
.cl-stat-value-danger { color: #EF4444; }
.cl-date-quick-filter { background: #374151; color: #D1D5DB; border: none; padding: 4px 12px; border-radius: 6px; font-size: 12px; cursor: pointer; }
.cl-date-quick-filter:hover { background: #4F46E5; }
.cl-date-quick-filter.active { background: #4F46E5; }
.cl-filter-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.cl-filter-row input { width: auto; }
.cl-filter-row select { width: auto; }
.cl-p-0 { padding: 0; }
.cl-table-container { background: #fff; border-radius: 8px; overflow: hidden; }
.cl-table-empty { text-align: center; padding: 40px; color: #9CA3AF; }
.up-flex-phone { display: flex; gap: 10px; }
.up-input-readonly { flex: 1; padding: 10px 14px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; color: #F3F4F6; font-size: 14px; }
.up-pw-strength { height: 4px; margin-top: 6px; border-radius: 2px; background: #E5E7EB; overflow: hidden; }
.up-mt-24 { margin-top: 24px; }
.up-modal-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); z-index: 10000; align-items: center; justify-content: center; }
.up-modal-content { background: #fff; border-radius: 12px; padding: 32px; width: 100%; max-width: 420px; margin: 20px; }
.up-modal-title { margin: 0 0 20px; font-size: 18px; }
.up-flex-code { display: flex; gap: 10px; }
.up-flex-btns { display: flex; gap: 12px; margin-top: 20px; }
.up-flex-1 { flex: 1; }

/* ===========================================
   44. Supplier Sidebar (supplier/sidebar.blade.php)
   =========================================== */
.supplier-sidebar-avatar { width: 40px; height: 40px; background: var(--primary); border-radius: 10px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 20px; }

/* ===========================================
   45. Supplier Models (supplier/models.blade.php) 补充
   =========================================== */
.sm-market-ref { display: none; padding: 10px 14px; background: rgba(79, 70, 229, 0.08); border: 1px solid rgba(79, 70, 229, 0.2); border-radius: 8px; margin-bottom: 12px; }
.sm-market-ref-text { font-size: 13px; color: #A5B4FC; }
.sm-hint-text { color: #9CA3AF; margin-top: 4px; display: block; }

/* ===========================================
   46. Supplier Endpoints (supplier/endpoints.blade.php)
   =========================================== */
.ep-container { padding: 20px; }
.ep-loading { text-align: center; padding: 40px; color: var(--gray-400); }
.ep-loading-spinner { width: 40px; height: 40px; border: 3px solid var(--gray-200); border-top-color: var(--primary); border-radius: 50%; animation: spin 0.8s linear infinite; margin: 0 auto 12px; }

/* === Inline Style Migration === */
.ils-bd-1solidvargray200_br-8_ov-hidden { border:1px solid var(--gray-200); border-radius:8px; overflow:hidden; }
.ils-bd-none_br-0_fon-monospace_fs-14 { border:none; border-radius:0; font-family:monospace; font-size:14px; line-height:1.6; resize:vertical; }
.ils-bg-1F2937_br-16_p-24_w-90p { background:#1F2937; border-radius:16px; padding:24px; width:90%; max-width:600px; max-height:90vh; overflow-y:auto; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); }
.ils-bg-c { background:' + c + '; }
.ils-bg-f3f4f6_p-26_br-3_fs-11 { background:#f3f4f6; padding:2px 6px; border-radius:3px; font-size:11px; }
.ils-bg-f5f5f5 { background:#f5f5f5; }
.ils-bg-f5f5f5_flex-1 { background:#f5f5f5; flex:1; }
.ils-bg-fff_br-12_p-32_w-100p { background:#fff; border-radius:12px; padding:32px; width:100%; max-width:420px; margin:20px; }
.ils-bg-none_bd-none_c-9CA3AF_fs-20 { background:none; border:none; color:#9CA3AF; font-size:20px; cursor:pointer; }
.ils-bg-none_bd-none_fs-20_cur-pointer { background:none; border:none; font-size:20px; cursor:pointer; color:#9CA3AF; padding:4px; }
.ils-bg-officialDBEAFE_self__c-official1D4ED8_self__p-310_br-12 { background:' + ({official:'#DBEAFE',self_built:'#D1FAE5',relay:'#FEF3C7'}[s.endpoint_attribute] || '#F3F4F6') + '; color:' + ({official:'#1D4ED8',self_built:'#059669',relay:'#D97706'}[s.endpoint_attribute] || '#6B7280') + '; padding:3px 10px; border-radius:12px; font-size:12px; font-weight:500; }
.ils-bg-r255_255_255_0d1_bd-none_c-a0a0b0_p-410 { background:rgba(255,255,255,0.1); border:none; color:#a0a0b0; padding:4px 10px; border-radius:4px; font-size:11px; cursor:pointer; }
.ils-bg-transparent_p-0_d-flex_fle-wrap { background:transparent; padding:0; display:flex; flex-wrap:wrap; gap:12px; }
.ils-bg-transparent_p-0_d-flex_fle-wrap-2 { background: transparent; padding:0; display:flex; flex-wrap: wrap; gap: 12px; }
.ils-bg-transparent_p-0_d-flex_fle-wrap-3 { background:transparent; padding:0; display:flex; flex-wrap: wrap; gap: 12px; }
.ils-bg-vargray100_p-28_br-4_fs-12 { background:var(--gray-100); padding:2px 8px; border-radius:4px; font-size:12px; }
.ils-c-000 { color:#000; }
.ils-c-059669 { color:#059669; }
.ils-c-06B6D4 { color:#06B6D4; }
.ils-c-07C160 { color:#07C160; }
.ils-c-10B981 { color:#10B981; }
.ils-c-10B981_mr-8 { color:#10B981; margin-right:8px; }
.ils-c-1677FF { color:#1677FF; }
.ils-c-1877F2 { color:#1877F2; }
.ils-c-333 { color:#333; }
.ils-c-4285F4 { color:#4285F4; }
.ils-c-4F46E5_fw-700_fs-16_let-2 { color:#4F46E5; font-weight:700; font-size:16px; letter-spacing:2px; }
.ils-c-4F46E5_mr-8 { color:#4F46E5; margin-right:8px; }
.ils-c-6366F1_mr-8 { color:#6366F1; margin-right:8px; }
.ils-c-6B7280_mb-24 { color:#6B7280; margin-bottom:24px; }
.ils-c-9CA3AF_fs-14 { color:#9CA3AF; font-size:14px; }
.ils-c-9CA3AF_mar-8 { color:#9CA3AF; margin-left:8px; }
.ils-c-9CA3AF_mb-20_fs-14 { color:#9CA3AF; margin-bottom:20px; font-size:14px; }
.ils-c-9CA3AF_ta-center_p-10 { color:#9CA3AF; text-align:center; padding:10px; }
.ils-c-9CA3AF_ta-center_p-20 { color:#9CA3AF; text-align:center; padding:20px; }
.ils-c-DC2626 { color:#DC2626; }
.ils-c-EF4444 { color:#EF4444; }
.ils-c-EF4444_mr-8 { color:#EF4444; margin-right:8px; }
.ils-c-F3F4F6_fs-14 { color:#F3F4F6; font-size:14px; }
.ils-c-F3F4F6_m-0 { color:#F3F4F6; margin:0; }
.ils-c-F59E0B { color:#F59E0B; }
.ils-c-F59E0B_mr-8 { color:#F59E0B; margin-right:8px; }
.ils-c-a0a0b0_fs-11 { color:#a0a0b0; font-size:11px; }
.ils-c-ef4444_fs-12 { color:#ef4444; font-size:12px; }
.ils-c-fff_m-804 { color:#fff; margin:8px 0 4px; }
.ils-c-red { color:red; }
.ils-c-vargray400 { color:var(--gray-400); }
.ils-c-vargray400_fon-monospace_fs-12 { color:var(--gray-400); font-family:monospace; font-size:12px; }
.ils-c-vargray400_fs-13_ta-center_p-20 { color:var(--gray-400); font-size:13px; text-align:center; padding:20px; }
.ils-c-vargray400_fw-400_fs-12 { color:var(--gray-400); font-weight:400; font-size:12px; }
.ils-c-vargray400_mb-16 { color:var(--gray-400); margin-bottom:16px; }
.ils-c-vargray400_ta-center_p-40 { color:var(--gray-400); text-align:center; padding:40px; }
.ils-c-vargray500_fs-13 { color:var(--gray-500); font-size:13px; }
.ils-c-vargray700_fw-500 { color:var(--gray-700); font-weight:500; }
.ils-c-varprimary_fs-14 { color:var(--primary); font-size:14px; }
.ils-c-varprimary_mr-8 { color:var(--primary); margin-right:8px; }
.ils-cur-pointer_fs-13_c-vargray500_use-none { cursor:pointer; font-size:13px; color:var(--gray-500); user-select:none; }
.ils-d-block_c-9CA3AF_mb-8_fs-14 { display:block; color:#9CA3AF; margin-bottom:8px; font-size:14px; }
.ils-d-flex_ai-center_gap-10 { display:flex; align-items:center; gap:10px; }
.ils-d-flex_ai-center_gap-8_fw-500 { display:flex; align-items:center; gap:8px; font-weight:500; cursor:pointer; }
.ils-d-flex_bor-1solidE5E7EB_p-020_fle-wrap { display:flex; border-bottom:1px solid #E5E7EB; padding:0 20px; flex-wrap:wrap; }
.ils-d-flex_gap-10 { display:flex; gap:10px; }
.ils-d-flex_gap-10_ai-center { display:flex; gap:10px; align-items:center; }
.ils-d-flex_gap-10_mb-16 { display:flex; gap:10px; margin-bottom:16px; }
.ils-d-flex_gap-12_mb-20 { display:flex; gap:12px; margin-bottom:20px; }
.ils-d-flex_gap-12_mt-20 { display:flex; gap:12px; margin-top:20px; }
.ils-d-flex_gap-8_ai-center { display:flex; gap:8px; align-items:center; }
.ils-d-flex_gap-8_p-812_bg-vargray50 { display:flex; gap:8px; padding:8px 12px; background:var(--gray-50); border-bottom:1px solid var(--gray-200); }
.ils-d-flex_jc-spacebetween_ai-center { display:flex; justify-content:space-between; align-items:center; }
.ils-d-flex_jc-spacebetween_ai-center_fle-wrap { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; }
.ils-d-flex_jc-spacebetween_ai-center_mb-20 { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.ils-d-flex_jc-spacebetween_ai-center_mb-8 { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.ils-d-grid_gri-1fr1fr1fr_gap-16 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px; }
.ils-d-grid_gri-1fr1fr_gap-12_mt-8 { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:8px; }
.ils-d-grid_gri-1fr1fr_gap-16 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.ils-d-grid_gri-1fr1fr_gap-16-2 { display:grid; grid-template-rows:1fr 1fr; gap:16px; }
.ils-d-grid_gri-1fr1fr_gap-20 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ils-d-grid_gri-1fr1fr_gap-24_mt-24 { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px; }
.ils-d-grid_gri-1fr1fr_gap-24_p-20 { display:grid; grid-template-columns:1fr 1fr; gap:24px; padding:20px; }
.ils-d-grid_gri-1fr2fr_gap-20 { display:grid; grid-template-columns:1fr 2fr; gap:20px; }
.ils-d-grid_gri-2fr1fr_gap-20 { display:grid; grid-template-columns:2fr 1fr; gap:20px; }
.ils-d-grid_gri-2fr1fr_gap-20_mb-20 { display:grid; grid-template-columns:2fr 1fr; gap:20px; margin-bottom:20px; }
.ils-d-grid_gri-2fr1fr_gap-24_mt-24 { display:grid; grid-template-columns:2fr 1fr; gap:24px; margin-top:24px; }
.ils-d-grid_gri-3fr2fr_gap-24_mt-24 { display:grid; grid-template-columns:3fr 2fr; gap:24px; margin-top:24px; }
.ils-d-grid_gri-repeat3_1fr_gap-16 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.ils-d-grid_gri-repeat3_1fr_gap-16_mt-24 { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:24px; }
.ils-d-grid_gri-repeat3_1fr_gap-16_ta-center { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; text-align:center; }
.ils-d-grid_gri-repeat4_1fr_gap-16 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.ils-d-grid_gri-repeat4_1fr_gap-16_mb-20 { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:20px; }
.ils-d-grid_gri-repeat4_1fr_gap-20 { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ils-d-grid_gri-repeatautofill_minma_gap-16 { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:16px; }
.ils-d-inlineblock_p-616_br-6_bg-varprimary { display:inline-block; padding:6px 16px; border-radius:6px; background:var(--primary); color:#fff; text-decoration:none; font-size:12px; font-weight:500; transition:opacity 0.2s; cursor:pointer; }
.ils-d-inlineblock_ta-center_td-none { display:inline-block; text-align:center; text-decoration:none; }
.ils-d-isActiveblocknone { display:' + (isActive ? 'block' : 'none') + '; }
.ils-d-none_pos-absolute_bot-100p_left-0 { display:none; position:absolute; bottom:100%; left:0; margin-bottom:4px; }
.ils-d-none_pos-absolute_top-100p_right-0 { display:none; position:absolute; top:100%; right:0; margin-top:4px; }
.ils-d-none_pos-fixed_ins-0_bg-r0_0_0_0d7 { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:1000; }
.ils-d-none_pos-fixed_top-0_left-0 { display:none; position:fixed; top:0; left:0; right:0; bottom:0; background:rgba(0,0,0,0.5); z-index:10000; display:none; align-items:center; justify-content:center; }
.ils-flex-1 { flex:1; }
.ils-flex-1_p-1014_bg-r255_255_255_0d05_bd-1solidr255_255_255_0 { flex:1; padding:10px 14px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:8px; color:#F3F4F6; font-size:14px; }
.ils-fs-11_c-10B981_fw-500 { font-size:11px; color:#10B981; font-weight:500; }
.ils-fs-11_c-9CA3AF { font-size:11px; color:#9CA3AF; }
.ils-fs-11_c-vargray400 { font-size:11px; color:var(--gray-400); }
.ils-fs-12 { font-size:12px; }
.ils-fs-12_c-6B7280_mt-4 { font-size:12px; color:#6B7280; margin-top:4px; }
.ils-fs-12_c-9CA3AF { font-size:12px; color:#9CA3AF; }
.ils-fs-12_c-9CA3AF_mt-4 { font-size:12px; color:#9CA3AF; margin-top:4px; }
.ils-fs-12_c-vargray400_mt-2 { font-size:12px; color:var(--gray-400); margin-top:2px; }
.ils-fs-12_c-varprimary_td-none_fw-500 { font-size:12px; color:var(--primary); text-decoration:none; font-weight:500; }
.ils-fs-13_c-9CA3AF { font-size:13px; color:#9CA3AF; }
.ils-fs-13_c-9CA3AF_mt-2 { font-size:13px; color:#9CA3AF; margin-top:2px; }
.ils-fs-13_c-vargray400_mt-8 { font-size:13px; color:var(--gray-400); margin-top:8px; }
.ils-fs-13_c-vargray500 { font-size:13px; color:var(--gray-500); }
.ils-fs-14 { font-size:14px; }
.ils-fs-14_c-9CA3AF { font-size:14px; color:#9CA3AF; }
.ils-fs-14_c-9CA3AF_mb-8 { font-size:14px; color:#9CA3AF; margin-bottom:8px; }
.ils-fs-18_fw-600_c-10B981 { font-size:18px; font-weight:600; color:#10B981; }
.ils-fs-18_fw-600_c-1677FF { font-size:18px; font-weight:600; color:#1677FF; }
.ils-fs-18_fw-600_c-E5E7EB { font-size:18px; font-weight:600; color:#E5E7EB; }
.ils-fs-20_c-10B981 { font-size:20px; color:#10B981; }
.ils-fs-20_c-1677FF { font-size:20px; color:#1677FF; }
.ils-fs-20_c-F59E0B { font-size:20px; color:#F59E0B; }
.ils-fs-24_fw-700_c-10B981_mt-6 { font-size:24px; font-weight:700; color:#10B981; margin-top:6px; }
.ils-fs-24_fw-700_c-4F46E5_mt-6 { font-size:24px; font-weight:700; color:#4F46E5; margin-top:6px; }
.ils-fs-24_fw-700_c-EF4444_mt-6 { font-size:24px; font-weight:700; color:#EF4444; margin-top:6px; }
.ils-fs-24_fw-700_c-F59E0B_mt-6 { font-size:24px; font-weight:700; color:#F59E0B; margin-top:6px; }
.ils-fs-28_c-10B981 { font-size:28px; color:#10B981; }
.ils-fs-28_c-4F46E5 { font-size:28px; color:#4F46E5; }
.ils-fs-28_c-F59E0B { font-size:28px; color:#F59E0B; }
.ils-fs-28_fw-700_c-10B981_mt-8 { font-size:28px; font-weight:700; color:#10B981; margin-top:8px; }
.ils-fs-28_fw-700_c-4F46E5 { font-size:28px; font-weight:700; color:#4F46E5; }
.ils-fs-28_fw-700_c-4F46E5_mt-8 { font-size:28px; font-weight:700; color:#4F46E5; margin-top:8px; }
.ils-fs-36_fw-700_c-4F46E5 { font-size:36px; font-weight:700; color:#4F46E5; }
.ils-fs-40_mb-16 { font-size:40px; margin-bottom:16px; }
.ils-fs-48_c-10B981_mb-16 { font-size:48px; color:#10B981; margin-bottom:16px; }
.ils-fs-48_mb-12 { font-size:48px; margin-bottom:12px; }
.ils-fw-500 { font-weight:500; }
.ils-fw-600 { font-weight:600; }
.ils-fw-600_c-10B981 { font-weight:600; color:#10B981; }
.ils-fw-600_c-F3F4F6_fs-15 { font-weight:600; color:#F3F4F6; font-size:15px; }
.ils-fw-600_c-vargray900 { font-weight:600; color:var(--gray-900); }
.ils-fw-600_fs-14_mb-4 { font-weight:600; font-size:14px; margin-bottom:4px; }
.ils-fw-600_fs-15_c-vargray900 { font-weight:600; font-size:15px; color:var(--gray-900); }
.ils-fw-700_c-F59E0B_fs-15 { font-weight:700; color:#F59E0B; font-size:15px; }
.ils-fw-700_c-varprimary_fs-15 { font-weight:700; color:var(--primary); font-size:15px; }
.ils-h-100p_w-widthslevel_bg-colorslevel_br-2 { height:100%; width:${widths[level]}; background:${colors[level]}; border-radius:2px; transition:all 0.3s; }
.ils-h-100p_w-widthslevel_bg-colorslevel_br-2-2 { height:100%; width:'+widths[level]+'; background:'+colors[level]+'; border-radius:2px; transition:all 0.3s; }
.ils-h-280 { height:280px; }
.ils-h-300 { height:300px; }
.ils-h-4_mt-6_br-2_bg-E5E7EB { height:4px; margin-top:6px; border-radius:2px; background:#E5E7EB; overflow:hidden; }
.ils-jc-spacebetween { justify-content: space-between; }
.ils-m-0020_fs-18 { margin:0 0 20px; font-size:18px; }
.ils-m-008_fs-20_c-111 { margin:0 0 8px; font-size:20px; color:#111; }
.ils-m-0_fs-16_fw-600 { margin:0; font-size:16px; font-weight:600; }
.ils-m-0_p-16_ove-auto_c-e0e0e0 { margin:0; padding:16px; overflow-x:auto; color:#e0e0e0; font-size:12px; line-height:1.6; font-family:\'Fira Code\',Consolas,monospace; }
.ils-m-400_fs-12_c-9CA3AF { margin:4px 0 0; font-size:12px; color:#9CA3AF; }
.ils-mb-12 { margin-bottom:12px; }
.ils-mb-12_c-E5E7EB { margin-bottom:12px; color:#E5E7EB; }
.ils-mb-20 { margin-bottom:20px; }
.ils-mb-20_d-flex_ai-center_gap-12 { margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.ils-mr-4 { margin-right:4px; }
.ils-mt-16 { margin-top:16px; }
.ils-mt-20 { margin-top:20px; }
.ils-mt-24 { margin-top:24px; }
.ils-mt-6_fs-13_c-vargray500_lh-1d5 { margin-top:6px; font-size:13px; color:var(--gray-500); line-height:1.5; }
.ils-mt-8 { margin-top:8px; }
.ils-mt-8_fw-600_c-F3F4F6 { margin-top:8px; font-weight:600; color:#F3F4F6; }
.ils-mw-560 { max-width:560px; }
.ils-mw-900_max-90vh_d-flex_fle-column { max-width:900px; max-height:90vh; display:flex; flex-direction:column; }
.ils-ove-auto_flex-1_p-20 { overflow-y:auto; flex:1; padding:20px; }
.ils-p-0 { padding:0; }
.ils-p-0-2 { padding:0; }
.ils-p-12 { padding:12px; }
.ils-p-12240_d-flex_gap-4_bor-1solide5e7eb { padding:12px 24px 0; display:flex; gap:4px; border-bottom:1px solid #e5e7eb; }
.ils-p-1224_bor-1solide5e7eb_d-flex_jc-spacebetween { padding:12px 24px; border-top:1px solid #e5e7eb; display:flex; justify-content:space-between; align-items:center; }
.ils-p-12_bg-r99_102_241_0d05_br-8_bd-1solidr99_102_241_0d { padding:12px; background:rgba(99,102,241,0.05); border-radius:8px; border:1px solid rgba(99,102,241,0.1); }
.ils-p-1416 { padding:14px 16px; }
.ils-p-1416_c-vargray500_fon-monospace { padding:14px 16px; color:var(--gray-500); font-family:monospace; }
.ils-p-1416_ta-center { padding:14px 16px; text-align:center; }
.ils-p-1416_ta-center_c-vargray500 { padding:14px 16px; text-align:center; color:var(--gray-500); }
.ils-p-1416_ta-right_c-vargray500 { padding:14px 16px; text-align:right; color:var(--gray-500); }
.ils-p-16 { padding:16px; }
.ils-p-1620_bor-1solidvargray200 { padding:16px 20px; border-top:1px solid var(--gray-200); }
.ils-p-1624_ove-auto_flex-1 { padding:16px 24px; overflow-y:auto; flex:1; }
.ils-p-16_bg-r16_185_129_0d1_br-12 { padding:16px; background:rgba(16,185,129,0.1); border-radius:12px; }
.ils-p-16_bg-r245_158_11_0d1_br-12 { padding:16px; background:rgba(245,158,11,0.1); border-radius:12px; }
.ils-p-16_bg-r79_70_229_0d1_br-12 { padding:16px; background:rgba(79,70,229,0.1); border-radius:12px; }
.ils-p-16_bor-1solid1F2937_d-none { padding:16px; border-top:1px solid #1F2937; display:none; }
.ils-p-16_d-flex_gap-12_fle-wrap { padding:16px; display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; border-bottom:1px solid #1F2937; }
.ils-p-20 { padding:20px; }
.ils-p-2024_bor-1solide5e7eb_d-flex_jc-spacebetween { padding:20px 24px; border-bottom:1px solid #e5e7eb; display:flex; justify-content:space-between; align-items:center; }
.ils-p-20_c-9CA3AF_fs-14_lh-1d8 { padding:20px; color:#9CA3AF; font-size:14px; line-height:1.8; }
.ils-p-24 { padding:24px; }
.ils-p-40 { padding:40px; }
.ils-p-812_bg-2d2d3f_d-flex_jc-spacebetween { padding:8px 12px; background:#2d2d3f; display:flex; justify-content:space-between; align-items:center; }
.ils-p-816 { padding:8px 16px; }
.ils-p-816_bd-none_bg-isActivef3f4f6none_fs-13 { padding:8px 16px; border:none; background:' + (isActive ? '#f3f4f6' : 'none') + '; font-size:13px; font-weight:' + (isActive ? '600' : '400') + '; color:' + (isActive ? '#111' : '#6B7280') + '; cursor:pointer; border-bottom:2px solid ' + (isActive ? 'var(--primary)' : 'transparent') + '; margin-bottom:-1px; }
.ils-pad-20_mt-4 { padding-left:20px; margin-top:4px; }
.ils-pos-absolute_bot-24_left-24_d-flex { position:absolute; bottom:24px; left:24px; display:flex; gap:8px; }
.ils-pos-relative { position:relative; }
.ils-pos-relative_bg-1e1e2e_br-8_ov-hidden { position:relative; background:#1e1e2e; border-radius:8px; overflow:hidden; }
.ils-shadow-none_bd-1solidE5E7EB { box-shadow:none; border:1px solid #E5E7EB; }
.ils-ta-center { text-align:center; }
.ils-ta-center_mb-24 { text-align:center; margin-bottom:24px; }
.ils-ta-center_mt-20 { text-align:center; margin-top:20px; }
.ils-ta-center_p-20 { text-align:center; padding:20px; }
.ils-ta-center_p-20_c-vargray400 { text-align:center; padding:20px; color:var(--gray-400); }
.ils-ta-center_p-20_c-vargray400_fs-13 { text-align:center; padding:20px; color:var(--gray-400); font-size:13px; }
.ils-ta-center_p-40_c-999 { text-align:center; padding:40px; color:#999; }
.ils-ta-center_p-40_c-9CA3AF { text-align:center; padding:40px; color:#9CA3AF; }
.ils-ta-center_p-40_c-vargray400 { text-align:center; padding:40px; color:var(--gray-400); }
.ils-ta-center_p-6020 { text-align:center; padding:60px 20px; }
.ils-ta-center_p-60_c-vargray400 { text-align:center; padding:60px; color:var(--gray-400); }
.ils-td-none_d-flex_ai-center_gap-16 { text-decoration:none; display:flex; align-items:center; gap:16px; padding:20px; transition:transform 0.2s,box-shadow 0.2s; }
.ils-w-100 { width:100px; }
.ils-w-100p_p-10_bg-r255_255_255_0d05_bd-1solidr255_255_255_0 { width:100%; padding:10px; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:8px; color:#F3F4F6; font-size:16px; }
.ils-w-120 { width:120px; }
.ils-w-130 { width:130px; }
.ils-w-140 { width:140px; }
.ils-w-150 { width:150px; }
.ils-w-160 { width:160px; }
.ils-w-16_h-16_acc-varprimary { width:16px; height:16px; accent-color:var(--primary); }
.ils-w-180 { width:180px; }
.ils-w-18_h-18 { width:18px; height:18px; }
.ils-w-200 { width:200px; }
.ils-w-36_h-36_br-8_bg-isLowestlineargradie { width:36px; height:36px; border-radius:8px; background:' + (isLowest ? 'linear-gradient(135deg,#10B981,#059669)' : 'linear-gradient(135deg,var(--primary),#7C3AED)') + '; color:#fff; display:flex; align-items:center; justify-content:center; font-weight:600; font-size:13px; }
.ils-w-40_h-40_bd-3solidvargray200_bor-varprimary { width:40px; height:40px; border:3px solid var(--gray-200); border-top-color:var(--primary); border-radius:50%; animation:spin 0.8s linear infinite; margin:0 auto 12px; }
.ils-w-40_h-40_bg-varprimary_br-10 { width:40px; height:40px; background:var(--primary); border-radius:10px; display:flex; align-items:center; justify-content:center; color:#fff; font-size:20px; }
.ils-w-48_h-48_bg-r16_185_129_0d1_br-12 { width:48px; height:48px; background:rgba(16,185,129,0.1); border-radius:12px; display:flex; align-items:center; justify-content:center; }
.ils-w-48_h-48_bg-r245_158_11_0d1_br-12 { width:48px; height:48px; background:rgba(245,158,11,0.1); border-radius:12px; display:flex; align-items:center; justify-content:center; }
.ils-w-48_h-48_bg-r79_70_229_0d1_br-12 { width:48px; height:48px; background:rgba(79,70,229,0.1); border-radius:12px; display:flex; align-items:center; justify-content:center; }
.ils-w-50 { width:50px; }
.ils-w-60 { width:60px; }
.ils-w-80 { width:80px; }
.ils-w-auto_min-140 { width:auto; min-width:140px; }
.ils-w-auto_p-612_fs-13 { width:auto; padding:6px 12px; font-size:13px; }

/* Supplier Wallet 补充样式 */
.sw-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.sw-value-primary { color: #1677FF; }
.sw-value-warning { color: #F59E0B; }
.sw-value-success { color: #10B981; }
.sw-value-info { color: #06B6D4; }
.sw-mt-20 { margin-top: 20px; }
.sw-p0 { padding: 0; }
.sw-grid-2-padded { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 20px; }
.sw-filter-row { padding: 16px; display: flex; gap: 12px; flex-wrap: wrap; align-items: flex-end; border-bottom: 1px solid #1F2937; }
.sw-filter-label { font-size: 12px; color: #9CA3AF; }
.sw-summary-row { padding: 16px; border-top: 1px solid #1F2937; }
.sw-summary-item { text-align: center; }
.sw-summary-label { font-size: 12px; color: #9CA3AF; }
.sw-summary-value { font-size: 18px; font-weight: 600; }
.sw-summary-value--success { color: #10B981; }
.sw-summary-value--primary { color: #1677FF; }
.sw-summary-value--default { color: #E5E7EB; }
