.web-talent-prediction[data-v-5fcfeb8b]{background:var(--tkx-gray-50, #f9fafb);min-height:100vh;padding:var(--tkx-space-2xl, 32px) 0 64px}.container[data-v-5fcfeb8b]{max-width:1100px;margin:0 auto;padding:0 var(--tkx-space-lg, 20px)}.tp-header[data-v-5fcfeb8b]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:28px}.tp-header__title[data-v-5fcfeb8b]{font-size:26px;font-weight:700;color:#111;margin:0 0 var(--tkx-space-xs, 4px)}.tp-header__desc[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-sm, 14px);color:var(--tkx-gray-400, #6B707E);margin:0}.tp-header__actions[data-v-5fcfeb8b]{display:flex;align-items:center;gap:var(--tkx-space-md, 12px)}.tp-update-time[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-12, 12px);color:var(--tkx-gray-400, #6B707E)}.tp-error-state[data-v-5fcfeb8b]{text-align:center;padding:80px 0;color:var(--tkx-gray-500, #6b7280)}.tp-error-icon[data-v-5fcfeb8b]{font-size:40px;display:block;margin-bottom:var(--tkx-space-md, 12px)}.tp-error-state p[data-v-5fcfeb8b]{margin:0 0 var(--tkx-space-base, 16px);font-size:var(--tkx-font-size-sm, 14px)}.btn[data-v-5fcfeb8b]{display:inline-flex;align-items:center;gap:var(--tkx-space-xs, 4px);padding:var(--tkx-space-sm, 8px) 18px;border-radius:var(--tkx-radius-sm, 8px);font-size:var(--tkx-font-size-xs, 13px);font-weight:500;cursor:pointer;border:none;transition:all .2s ease}.btn-outline[data-v-5fcfeb8b]{border:1px solid var(--tkx-gray-300, #d1d5db);background:#fff;color:var(--tkx-gray-600, #4b5563)}.btn-outline[data-v-5fcfeb8b]:hover{border-color:var(--tkx-primary);color:var(--tkx-primary)}.btn-primary[data-v-5fcfeb8b]{background:var(--tkx-primary);color:#fff}.btn-primary[data-v-5fcfeb8b]:hover{background:var(--tkx-primary-dark)}.tp-kpi-section[data-v-5fcfeb8b]{margin-bottom:28px}.tp-kpi-grid[data-v-5fcfeb8b]{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--tkx-space-base, 16px)}.tp-kpi-card[data-v-5fcfeb8b]{background:#fff;border-radius:var(--tkx-radius-12, 12px);padding:var(--tkx-space-lg, 20px) var(--tkx-space-xl, 24px);display:flex;align-items:center;gap:var(--tkx-space-14, 14px);box-shadow:0 1px 4px #0000000a;border:1px solid #f0f0f0;transition:box-shadow .2s,transform .2s}.tp-kpi-card[data-v-5fcfeb8b]:hover{box-shadow:0 4px 12px #0000000f;transform:translateY(-2px)}.tp-kpi-card__icon[data-v-5fcfeb8b]{width:48px;height:48px;border-radius:var(--tkx-radius-12, 12px);display:flex;align-items:center;justify-content:center;font-size:var(--tkx-font-size-22, 22px);flex-shrink:0}.tp-kpi-icon--demand[data-v-5fcfeb8b]{background:#fef3c7}.tp-kpi-icon--supply[data-v-5fcfeb8b]{background:#d1fae5}.tp-kpi-icon--balance[data-v-5fcfeb8b]{background:#ede9fe}.tp-kpi-icon--accuracy[data-v-5fcfeb8b]{background:#dbeafe}.tp-kpi-card__info[data-v-5fcfeb8b]{flex:1;min-width:0}.tp-kpi-card__num[data-v-5fcfeb8b]{display:block;font-size:var(--tkx-font-size-3xl, 24px);font-weight:700;color:#111;line-height:1.2}.tp-kpi-card__label[data-v-5fcfeb8b]{display:block;font-size:var(--tkx-font-size-xs, 13px);color:var(--tkx-gray-400, #6B707E);margin-top:var(--tkx-space-2xs, 2px)}.tp-charts-row[data-v-5fcfeb8b]{display:grid;grid-template-columns:1.6fr 1fr;gap:var(--tkx-space-base, 16px);margin-bottom:var(--tkx-space-base, 16px)}.tp-charts-second-row[data-v-5fcfeb8b]{margin-bottom:28px}.tp-chart-card[data-v-5fcfeb8b]{background:#fff;border-radius:var(--tkx-radius-12, 12px);padding:var(--tkx-space-lg, 20px);border:1px solid #f0f0f0;box-shadow:0 1px 4px #0000000a}.tp-chart-card--wide[data-v-5fcfeb8b]{grid-column:1 / -1}.tp-chart-card__header[data-v-5fcfeb8b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--tkx-space-base, 16px)}.tp-chart-card__header h3[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-md, 15px);font-weight:600;color:var(--tkx-gray-700, #363B4A);margin:0}.tp-chart-canvas-wrap[data-v-5fcfeb8b]{position:relative;width:100%;height:250px}.tp-chart-canvas[data-v-5fcfeb8b]{width:100%;height:100%}.tp-charts-second-row .tp-chart-canvas-wrap[data-v-5fcfeb8b]{height:300px}.tp-section-title[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-base, 16px);font-weight:600;color:var(--tkx-gray-700, #363B4A);margin:0 0 var(--tkx-space-base, 16px)}.tp-bottom-row[data-v-5fcfeb8b]{display:grid;grid-template-columns:1.5fr 1fr;gap:var(--tkx-space-base, 16px)}.tp-talent-grid[data-v-5fcfeb8b]{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--tkx-space-md, 12px)}.tp-empty[data-v-5fcfeb8b]{grid-column:1 / -1;text-align:center;padding:var(--tkx-space-3xl, 40px) 0;color:var(--tkx-gray-400, #9CA0AB)}.tp-empty-icon[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-38, 38px);margin-bottom:var(--tkx-space-sm, 8px)}.tp-empty-text[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-sm, 14px)}.tp-talent-card[data-v-5fcfeb8b]{background:#fff;border-radius:var(--tkx-radius-12, 12px);padding:var(--tkx-space-base, 16px);border:1px solid #f0f0f0;box-shadow:0 1px 4px #0000000a;transition:box-shadow .2s}.tp-talent-card[data-v-5fcfeb8b]:hover{box-shadow:0 4px 12px #00000014}.tp-talent-card__header[data-v-5fcfeb8b]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--tkx-space-10, 10px)}.tp-talent-card__name[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-sm, 14px);font-weight:600;color:#222;margin:0}.tp-talent-card__trend[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-2xs, 11px);font-weight:600;padding:var(--tkx-space-2xs, 2px) var(--tkx-space-sm, 8px);border-radius:var(--tkx-radius-20, 20px)}.tp-trend--up[data-v-5fcfeb8b]{background:#ecfdf5;color:var(--tkx-success)}.tp-trend--down[data-v-5fcfeb8b]{background:#fef2f2;color:var(--tkx-danger)}.tp-trend--flat[data-v-5fcfeb8b]{background:var(--tkx-gray-100, #f3f4f6);color:var(--tkx-gray-400, #6B707E)}.tp-talent-card__metrics[data-v-5fcfeb8b]{display:flex;gap:var(--tkx-space-md, 12px);margin-bottom:var(--tkx-space-10, 10px)}.tp-talent-card__metric[data-v-5fcfeb8b]{flex:1;text-align:center;background:var(--tkx-gray-50, #f9fafb);border-radius:var(--tkx-radius-sm, 8px);padding:var(--tkx-space-sm, 8px) var(--tkx-space-xs, 4px)}.tp-talent-card__metric-label[data-v-5fcfeb8b]{display:block;font-size:var(--tkx-font-size-2xs, 11px);color:var(--tkx-gray-400, #6B707E);margin-bottom:var(--tkx-space-2xs, 2px)}.tp-talent-card__metric-value[data-v-5fcfeb8b]{display:block;font-size:var(--tkx-font-size-sm, 14px);font-weight:700}.tp-color-demand[data-v-5fcfeb8b]{color:var(--tkx-primary)}.tp-color-supply[data-v-5fcfeb8b]{color:#3b82f6}.tp-color-salary[data-v-5fcfeb8b]{color:var(--tkx-success)}.tp-talent-card__skills[data-v-5fcfeb8b]{display:flex;flex-wrap:wrap;gap:var(--tkx-space-xs, 4px)}.tp-talent-card__skill-tag[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-2xs, 11px);padding:var(--tkx-space-2xs, 2px) var(--tkx-space-sm, 8px);border-radius:var(--tkx-radius-20, 20px);background:var(--tkx-gray-100, #f3f4f6);color:var(--tkx-gray-600, #4b5563)}.tp-recommendations-list[data-v-5fcfeb8b]{display:flex;flex-direction:column;gap:var(--tkx-space-md, 12px)}.tp-rec-card[data-v-5fcfeb8b]{background:#fff;border-radius:var(--tkx-radius-12, 12px);padding:var(--tkx-space-base, 16px);border:1px solid #f0f0f0;box-shadow:0 1px 4px #0000000a;border-left:4px solid var(--tkx-gray-300, #d1d5db)}.tp-rec--success[data-v-5fcfeb8b]{border-left-color:var(--tkx-success)}.tp-rec--warning[data-v-5fcfeb8b]{border-left-color:var(--tkx-warning)}.tp-rec--danger[data-v-5fcfeb8b]{border-left-color:var(--tkx-danger)}.tp-rec--info[data-v-5fcfeb8b]{border-left-color:var(--tkx-primary)}.tp-rec-card__header[data-v-5fcfeb8b]{display:flex;align-items:center;gap:var(--tkx-space-sm, 8px);margin-bottom:var(--tkx-space-6, 6px)}.tp-rec-card__icon[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-base, 16px)}.tp-rec-card__title[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-sm, 14px);font-weight:600;color:#222;margin:0}.tp-rec-card__content[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-xs, 13px);color:var(--tkx-gray-500, #6B707E);margin:0 0 var(--tkx-space-xs, 4px);line-height:1.5}.tp-rec-card__detail[data-v-5fcfeb8b]{font-size:var(--tkx-font-size-12, 12px);color:var(--tkx-gray-400, #6B707E);margin:0;line-height:1.4}@media (max-width: 900px){.tp-kpi-grid[data-v-5fcfeb8b]{grid-template-columns:repeat(2,1fr)}.tp-charts-row[data-v-5fcfeb8b],.tp-bottom-row[data-v-5fcfeb8b],.tp-talent-grid[data-v-5fcfeb8b]{grid-template-columns:1fr}.tp-header[data-v-5fcfeb8b]{flex-direction:column;gap:var(--tkx-space-md, 12px)}}@media (max-width: 480px){.tp-kpi-grid[data-v-5fcfeb8b]{grid-template-columns:1fr}.tp-talent-card__metrics[data-v-5fcfeb8b]{flex-direction:column;gap:var(--tkx-space-6, 6px)}}
