/* 金蝶财务报表查询页面样式 - F17 */

.kingdee-fin-report-page {
  padding: 16px;
}

/* === Token状态徽标 === */
.kfr-token-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
}
.kfr-token-badge .dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
}
.kfr-token-badge.connected { background: var(--tag-green-bg, #F6FFED); color: var(--success, #52C41A); }
.kfr-token-badge.connected .dot { background: var(--success, #52C41A); }
.kfr-token-badge.expiring { background: var(--tag-yellow-bg, #FFFBE6); color: var(--warning, #FAAD14); }
.kfr-token-badge.expiring .dot { background: var(--warning, #FAAD14); }
.kfr-token-badge.refreshing { background: var(--tag-orange-bg, #FFF7E6); color: var(--warning, #FAAD14); }
.kfr-token-badge.refreshing .dot { background: var(--warning, #FAAD14); }
.kfr-token-badge.disconnected { background: var(--tag-red-bg, #FFF1F0); color: var(--danger, #FF4D4F); }
.kfr-token-badge.disconnected .dot { background: var(--danger, #FF4D4F); }
.kfr-token-badge.not_configured,
.kfr-token-badge.disabled { background: #F0F0F0; color: var(--info, #909399); }
.kfr-token-badge.not_configured .dot,
.kfr-token-badge.disabled .dot { background: var(--info, #909399); }
.kfr-token-badge.misconfigured { background: var(--tag-orange-bg, #FFF7E6); color: var(--warning, #FAAD14); }
.kfr-token-badge.misconfigured .dot { background: var(--warning, #FAAD14); }

/* === 页面头部 === */
.kfr-page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.kfr-page-header-left {
  display: flex;
  align-items: center;
  gap: 16px;
}
.kfr-page-title {
  font-size: var(--size-title, 16px);
  font-weight: var(--weight-bold, 600);
  color: var(--text-primary, #303133);
}
.kfr-page-header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* === 工具栏 === */
.kfr-toolbar-bar {
  background: var(--bg-card, #FFFFFF);
  border-radius: var(--card-radius, 8px);
  box-shadow: var(--card-shadow, 0 2px 8px rgba(0,0,0,0.08));
  padding: 0 16px;
  margin-bottom: 16px;
}
.kfr-report-tabs .el-tabs__header {
  margin-bottom: 0;
}
.kfr-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 0;
  flex-wrap: wrap;
}
.kfr-period-selector {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* === 骨架屏 === */
.kfr-skeleton {
  background: var(--bg-card, #FFFFFF);
  border-radius: var(--card-radius, 8px);
  box-shadow: var(--card-shadow, 0 2px 8px rgba(0,0,0,0.08));
  padding: 24px;
}

/* === 报表明细区 === */
.kfr-report-detail {
  background: var(--bg-card, #FFFFFF);
  border-radius: var(--card-radius, 8px);
  box-shadow: var(--card-shadow, 0 2px 8px rgba(0,0,0,0.08));
  padding: 16px;
}
.kfr-report-detail.kfr-flash-highlight {
  animation: kfr-flash 1.5s ease-out;
}
@keyframes kfr-flash {
  0% { background: var(--bg-card, #FFFFFF); }
  20% { background: var(--tag-green-bg, #F6FFED); }
  100% { background: var(--bg-card, #FFFFFF); }
}
.kfr-report-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--border-light, #E4E7ED);
}
.kfr-report-title-row {
  display: flex;
  align-items: center;
}
.kfr-report-title {
  font-size: var(--size-title, 16px);
  font-weight: var(--weight-bold, 600);
  color: var(--text-primary, #303133);
}
.kfr-report-meta {
  display: flex;
  align-items: center;
  gap: 16px;
  font-size: var(--size-small, 12px);
  color: var(--text-secondary, #909399);
}
.kfr-data-time {
  cursor: help;
  text-decoration: underline dotted;
}

/* === 报表表格 === */
.kfr-report-table {
  width: 100%;
}
.kfr-report-table .kfr-row-level-1 {
  font-weight: var(--weight-bold, 600);
}
.kfr-amount-negative { color: var(--danger, #FF4D4F); }
.kfr-amount-positive { color: var(--text-primary, #303133); }
.kfr-amount-zero { color: var(--text-secondary, #909399); }

/* === 资产负债表左右双栏 === */
.kfr-balance-sheet-wrapper {
  display: flex;
  gap: 16px;
}
.kfr-bs-column {
  flex: 1;
  min-width: 0;
}
.kfr-bs-column-header {
  background: var(--primary, #1890FF);
  color: #FFFFFF;
  padding: 8px 16px;
  font-size: var(--size-base, 14px);
  font-weight: var(--weight-bold, 600);
  border-radius: var(--radius-sm, 8px) var(--radius-sm, 8px) 0 0;
  text-align: center;
}
.kfr-bs-column .el-table {
  border-radius: 0 0 var(--radius-sm, 8px) var(--radius-sm, 8px);
}
.kfr-bs-total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: var(--tag-orange-bg, #FFF7E6);
  border-radius: var(--radius-sm, 8px);
  font-size: var(--size-base, 14px);
  font-weight: var(--weight-bold, 600);
  margin-top: 8px;
  color: var(--text-primary, #303133);
}
.kfr-bs-total-amounts {
  display: flex;
  gap: 56px;
  text-align: right;
}
.kfr-bs-total-amounts span {
  min-width: 140px;
  text-align: right;
}

/* === 现金流量表三段式 === */
.kfr-cf-section {
  margin-bottom: 16px;
}
.kfr-cf-section:last-child {
  margin-bottom: 0;
}
.kfr-cf-section-header {
  background: var(--bg-page, #F0F2F5);
  padding: 10px 16px;
  font-size: var(--size-base, 14px);
  font-weight: var(--weight-bold, 600);
  color: var(--text-primary, #303133);
  border-radius: var(--radius-sm, 8px) var(--radius-sm, 8px) 0 0;
  border-left: 4px solid var(--primary, #1890FF);
}

/* === 数据来源信息栏 === */
.kfr-source-bar {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 12px 16px;
  background: #FAFAFA;
  border-top: 1px solid var(--border-light, #E4E7ED);
  border-radius: 0 0 var(--radius-sm, 8px) var(--radius-sm, 8px);
  font-size: var(--size-small, 12px);
  color: var(--text-secondary, #909399);
  margin-top: 16px;
}
.kfr-source-bar .source-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* === 空状态 === */
.kfr-empty-card {
  border-radius: var(--card-radius, 8px);
}
.kfr-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 16px;
  text-align: center;
}
.kfr-empty-state .empty-text {
  font-size: var(--size-base, 14px);
  color: var(--text-secondary, #909399);
  margin: 12px 0 16px;
}

/* === 降级提示 === */
.kfr-degraded-banner {
  margin-bottom: 12px;
}

/* === 同步状态矩阵标签 === */
.kfr-sync-status-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: var(--size-small, 12px);
  font-weight: var(--weight-bold, 600);
}
.kfr-sync-status-tag.synced {
  background: var(--tag-green-bg, #F6FFED);
  color: var(--success, #52C41A);
}
.kfr-sync-status-tag.missing {
  background: var(--tag-red-bg, #FFF1F0);
  color: var(--danger, #FF4D4F);
}
.kfr-sync-status-tag.stale {
  background: var(--tag-orange-bg, #FFF7E6);
  color: var(--warning, #FAAD14);
}
.kfr-sync-status-tag.syncing {
  background: var(--tag-yellow-bg, #FFFBE6);
  color: var(--warning, #FAAD14);
}

/* === 同步结果弹窗 === */
.kfr-sync-result-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--border-light, #E4E7ED);
}
.kfr-sync-result-item:last-child {
  border-bottom: none;
}
.kfr-sync-result-item .result-icon {
  font-size: 16px;
  flex-shrink: 0;
}
.kfr-sync-result-item .result-text {
  font-size: var(--size-base, 14px);
  color: var(--text-primary, #303133);
  font-weight: var(--weight-bold, 600);
}
.kfr-sync-result-item .result-error {
  font-size: var(--size-small, 12px);
  color: var(--text-secondary, #909399);
  margin-left: auto;
}

/* === 响应式: 小屏幕资产负债表变上下排列 === */
@media (max-width: 1200px) {
  .kfr-balance-sheet-wrapper {
    flex-direction: column;
  }
}
