/* HoloLake 数据统计面板 · 样式表 */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;
  background: linear-gradient(135deg, #0a1628 0%, #1a2a4a 50%, #0d1f3c 100%);
  color: #e0e6ed;
  min-height: 100vh;
}

.container {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 20px;
}

/* 顶部导航 */
.top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

.logo {
  font-size: 20px;
  font-weight: bold;
}

.nav-links a {
  color: #8899aa;
  text-decoration: none;
  margin-left: 16px;
  font-size: 14px;
}

.nav-links a.active {
  color: #4fc3f7;
}

.nav-links a:hover {
  color: #fff;
}

/* 页面标题 */
.page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 0 16px;
}

.page-header h1 {
  font-size: 22px;
  font-weight: 700;
}

.time-selector {
  display: flex;
  gap: 6px;
}

.time-btn {
  background: rgba(255,255,255,0.06);
  color: #8899aa;
  border: 1px solid rgba(255,255,255,0.1);
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s;
}

.time-btn.active {
  background: rgba(79,195,247,0.15);
  color: #4fc3f7;
  border-color: rgba(79,195,247,0.4);
}

.time-btn:hover {
  border-color: rgba(79,195,247,0.3);
  color: #b0c4d8;
}

/* 统计卡片 */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  padding-bottom: 24px;
}

.stat-card {
  background: rgba(255,255,255,0.04);
  border-radius: 16px;
  padding: 20px 16px;
  border: 1px solid rgba(255,255,255,0.06);
  transition: all 0.3s;
  cursor: pointer;
}

.stat-card:hover {
  background: rgba(79,195,247,0.06);
  border-color: rgba(79,195,247,0.2);
  transform: translateY(-2px);
}

.stat-icon {
  font-size: 24px;
  margin-bottom: 8px;
}

.stat-value {
  font-size: 32px;
  font-weight: 800;
  margin-bottom: 4px;
}

.stat-label {
  font-size: 13px;
  color: #8899aa;
  margin-bottom: 6px;
}

.stat-change {
  font-size: 12px;
  font-weight: 600;
}

.stat-change.up { color: #4caf50; }
.stat-change.down { color: #ef5350; }
.stat-change.same { color: #8899aa; }

/* 区块通用 */
.section {
  padding-bottom: 28px;
}

.section h2 {
  font-size: 16px;
  font-weight: 600;
  margin-bottom: 16px;
}

/* 横向条形图 */
.bar-chart {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

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

.bar-label {
  font-size: 13px;
  color: #aab;
  min-width: 70px;
  text-align: right;
}

.bar-track {
  flex: 1;
  height: 22px;
  background: rgba(255,255,255,0.04);
  border-radius: 11px;
  overflow: hidden;
}

.bar-fill {
  height: 100%;
  border-radius: 11px;
  transition: width 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.bar-fill.deepseek { background: linear-gradient(90deg, #4fc3f7, #29b6f6); }
.bar-fill.qwen { background: linear-gradient(90deg, #7c4dff, #651fff); }
.bar-fill.kimi { background: linear-gradient(90deg, #ff7043, #f4511e); }
.bar-fill.doubao { background: linear-gradient(90deg, #66bb6a, #43a047); }
.bar-fill.premium { background: linear-gradient(90deg, #ffd54f, #ffb300); }

.bar-value {
  font-size: 13px;
  color: #8899aa;
  min-width: 36px;
  font-weight: 600;
}

/* 每日趋势柱状图 */
.trend-chart {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  height: 160px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.trend-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  height: 100%;
  justify-content: flex-end;
  gap: 8px;
}

.trend-fill {
  width: 28px;
  border-radius: 6px 6px 2px 2px;
  background: linear-gradient(180deg, #4fc3f7, rgba(79,195,247,0.3));
  transition: height 1s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  height: 0;
}

.trend-bar span {
  font-size: 11px;
  color: #667;
}

/* 最近活动 */
.activity-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.activity-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}

.activity-item:last-child {
  border-bottom: none;
}

.activity-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-top: 6px;
  flex-shrink: 0;
}

.activity-dot.blue { background: #4fc3f7; }
.activity-dot.green { background: #66bb6a; }
.activity-dot.orange { background: #ffb74d; }
.activity-dot.purple { background: #ab47bc; }

.activity-content {
  flex: 1;
}

.activity-text {
  font-size: 14px;
  line-height: 1.5;
}

.activity-text strong {
  color: #4fc3f7;
}

.activity-time {
  font-size: 12px;
  color: #556;
  margin-top: 2px;
}

/* 底部 */
.footer {
  text-align: center;
  padding: 32px 0;
  color: #556677;
  font-size: 12px;
  line-height: 1.8;
}

/* 响应式 */
@media (max-width: 480px) {
  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
  }
  .stat-value {
    font-size: 26px;
  }
  .page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  .trend-fill {
    width: 22px;
  }
  .bar-label {
    min-width: 56px;
    font-size: 12px;
  }
}
/* ========== 响应式布局增强 ========== */
/* 平板（768px以下） */
@media (max-width: 768px) {
 .container {
 padding: 0 16px;
 }
 .page-header {
 flex-direction: column;
 align-items: flex-start;
 gap: 12px;
 }
 .page-header h1 {
 font-size: 20px;
 }
 .stats-grid {
 grid-template-columns: repeat(2, 1fr);
 gap: 10px;
 }
 .stat-value {
 font-size: 28px;
 }
 .bar-label {
 min-width: 60px;
 font-size: 12px;
 }
 .trend-fill {
 width: 24px;
 }
}
/* 手机（480px以下） */
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 2
@media (max-width: 480px) {
 .container {
 padding: 0 12px;
 }
 .top-bar {
 padding: 12px 0;
 }
 .logo {
 font-size: 17px;
 }
 .nav-links a {
 font-size: 13px;
 margin-left: 12px;
 }
 .page-header h1 {
 font-size: 18px;
 }
 .time-btn {
 padding: 5px 10px;
 font-size: 12px;
 }
 .stats-grid {
 grid-template-columns: 1fr 1fr;
 gap: 8px;
 }
 .stat-card {
 padding: 14px 12px;
 border-radius: 12px;
 }
 .stat-icon {
 font-size: 20px;
 margin-bottom: 6px;
 }
 .stat-value {
 font-size: 24px;
 }
 .stat-label {
 font-size: 12px;
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 3
 }
 .stat-change {
 font-size: 11px;
 }
 .section h2 {
 font-size: 15px;
 }
 .bar-row {
 gap: 8px;
 }
 .bar-label {
 min-width: 50px;
 font-size: 11px;
 }
 .bar-track {
 height: 18px;
 }
 .bar-value {
 font-size: 11px;
 min-width: 30px;
 }
 .trend-chart {
 height: 120px;
 }
 .trend-fill {
 width: 18px;
 border-radius: 4px 4px 2px 2px;
 }
 .trend-bar span {
 font-size: 10px;
 }
 .activity-item {
 padding: 10px 0;
 gap: 10px;
 }
 .activity-text {
 font-size: 13px;
 }
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 4
 .activity-time {
 font-size: 11px;
 }
 .footer {
 padding: 20px 0;
 font-size: 11px;
 }
}
/* 超小屏（360px以下） */
@media (max-width: 360px) {
 .stats-grid {
 grid-template-columns: 1fr;
 }
 .stat-card {
 display: flex;
 align-items: center;
 gap: 12px;
 padding: 12px 14px;
 }
 .stat-icon {
 margin-bottom: 0;
 }
 .stat-value {
 font-size: 22px;
 }
 .time-selector {
 width: 100%;
 justify-content: space-between;
 }
}
/* ========== 导出按钮样式 ========== */
.export-bar {
 display: flex;
 justify-content: flex-end;
 padding: 8px 0;
}
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 5
.export-btn {
 background: rgba(76, 175, 80, 0.1);
 color: #81c784;
 border: 1px solid rgba(76, 175, 80, 0.2);
 padding: 8px 18px;
 border-radius: 8px;
 font-size: 13px;
 cursor: pointer;
 transition: all 0.2s;
}
.export-btn:hover {
 background: rgba(76, 175, 80, 0.2);
 transform: scale(1.02);
}
.export-btn:active {
 transform: scale(0.98);
}
.export-toast {
 position: fixed;
 bottom: 30px;
 left: 50%;
 transform: translateX(-50%) translateY(60px);
 background: rgba(76, 175, 80, 0.9);
 color: #fff;
 padding: 10px 24px;
 border-radius: 8px;
 font-size: 14px;
 opacity: 0;
 transition: all 0.4s;
 pointer-events: none;
 z-index: 999;
}
.export-toast.show {
 opacity: 1;
 transform: translateX(-50%) translateY(0);
}
/* ========== 环形图样式 ========== */
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 6
.donut-section {
 padding-bottom: 28px;
}
.donut-container {
 display: flex;
 align-items: center;
 gap: 24px;
 justify-content: center;
}
.donut-chart {
 width: 160px;
 height: 160px;
 position: relative;
}
.donut-chart svg {
 width: 100%;
 height: 100%;
 transform: rotate(-90deg);
}
.donut-chart circle {
 fill: none;
 stroke-width: 20;
 cx: 80;
 cy: 80;
 r: 60;
}
.donut-bg {
 stroke: rgba(255,255,255,0.06);
}
.donut-segment {
 transition: stroke-dasharray 1.2s cubic-bezier(0.25, 0.
46, 0.45, 0.94);
}
.donut-center {
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 7
 text-align: center;
}
.donut-center-value {
 font-size: 24px;
 font-weight: 800;
}
.donut-center-label {
 font-size: 11px;
 color: #8899aa;
}
.donut-legend {
 display: flex;
 flex-direction: column;
 gap: 8px;
}
.legend-item {
 display: flex;
 align-items: center;
 gap: 8px;
 font-size: 13px;
}
.legend-dot {
 width: 10px;
 height: 10px;
 border-radius: 3px;
 flex-shrink: 0;
}
.legend-dot.c-deepseek { background: #4fc3f7; }
.legend-dot.c-qwen { background: #7c4dff; }
.legend-dot.c-kimi { background: #ff7043; }
.legend-dot.c-doubao { background: #66bb6a; }
.legend-dot.c-premium { background: #ffd54f; }
.legend-percent {
 color: #8899aa;
 margin-left: auto;
 font-weight: 600;
}
📡 BC-M08-002 · DEV-010桔子 · 数据统计面板·环节2~3·响应式布局+数据导出+高级图表 8
@media (max-width: 480px) {
 .donut-container {
 flex-direction: column;
 gap: 16px;
 }
 .donut-chart {
 width: 140px;
 height: 140px;
 }
 .donut-legend {
 flex-direction: row;
 flex-wrap: wrap;
 justify-content: center;
 gap: 6px 16px;
 }
}
/* ========== 响应式布局增强 ========== */
/* 平板（768px以下） */
@media (max-width: 768px) {
  .container { padding: 0 16px; }
  .page-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .page-header h1 { font-size: 20px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .stat-value { font-size: 28px; }
  .bar-label { min-width: 60px; font-size: 12px; }
  .trend-fill { width: 24px; }
}
/* 手机（480px以下） */
@media (max-width: 480px) {
  .container { padding: 0 12px; }
  .top-bar { padding: 12px 0; }
  .logo { font-size: 17px; }
  .nav-links a { font-size: 13px; margin-left: 12px; }
  .page-header h1 { font-size: 18px; }
  .time-btn { padding: 5px 10px; font-size: 12px; }
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .stat-card { padding: 14px 12px; border-radius: 12px; }
  .stat-icon { font-size: 20px; margin-bottom: 6px; }
  .stat-value { font-size: 24px; }
  .stat-label { font-size: 12px; }
  .activity-time { font-size: 11px; }
  .footer { padding: 20px 0; font-size: 11px; }
}
/* 超小屏（360px以下） */
@media (max-width: 360px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
  .stat-icon { margin-bottom: 0; }
  .stat-value { font-size: 22px; }
  .time-selector { width: 100%; justify-content: space-between; }
}
/* ========== 导出按钮样式 ========== */
.export-bar {
  display: flex;
  justify-content: flex-end;
  padding: 8px 0;
}
.export-btn {
  background: rgba(76,175,80,0.1);
  color: #81c784;
  border: 1px solid rgba(76,175,80,0.2);
  padding: 8px 18px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s;
}
.export-btn:hover {
  background: rgba(76,175,80,0.2);
  transform: scale(1.02);
}
.export-btn:active {
  transform: scale(0.98);
}
.export-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(60px);
  background: rgba(76,175,80,0.9);
  color: #fff;
  padding: 10px 24px;
  border-radius: 8px;
  font-size: 14px;
  opacity: 0;
  transition: all 0.4s;
  pointer-events: none;
  z-index: 999;
}
.export-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
/* ========== 环形图样式 ========== */
.donut-section {
  padding-bottom: 28px;
}
.donut-container {
  display: flex;
  align-items: center;
  gap: 24px;
  justify-content: center;
}
.donut-chart {
  width: 160px;
  height: 160px;
  position: relative;
}
.donut-chart svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.donut-chart circle {
  fill: none;
  stroke-width: 20;
  cx: 80;
  cy: 80;
  r: 60;
}
.donut-bg {
  stroke: rgba(255,255,255,0.06);
}
.donut-segment {
  transition: stroke-dasharray 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.donut-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.donut-center-value {
  font-size: 24px;
  font-weight: 800;
}
.donut-center-label {
  font-size: 11px;
  color: #8899aa;
}
.donut-legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}
.legend-dot.c-deepseek { background: #4fc3f7; }
.legend-dot.c-qwen { background: #7c4dff; }
.legend-dot.c-kimi { background: #ff7043; }
.legend-dot.c-doubao { background: #66bb6a; }
.legend-dot.c-premium { background: #ffd54f; }
.legend-percent {
  color: #8899aa;
  margin-left: auto;
  font-weight: 600;
}
/* ========== 响应式布局增强 ========== */
@media (max-width: 768px) {
  .container { padding: 0 16px; }
  .page-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .page-header h1 { font-size: 20px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .stat-value { font-size: 28px; }
  .bar-label { min-width: 60px; font-size: 12px; }
  .trend-fill { width: 24px; }
}
@media (max-width: 480px) {
  .container { padding: 0 12px; }
  .top-bar { padding: 12px 0; }
  .logo { font-size: 17px; }
  .nav-links a { font-size: 13px; margin-left: 12px; }
  .page-header h1 { font-size: 18px; }
  .time-btn { padding: 5px 10px; font-size: 12px; }
  .stats-grid { grid-template-columns: 1fr 1fr; gap: 8px; }
  .stat-card { padding: 14px 12px; border-radius: 12px; }
  .stat-icon { font-size: 20px; margin-bottom: 6px; }
  .stat-value { font-size: 24px; }
  .stat-label { font-size: 12px; }
  .activity-time { font-size: 11px; }
  .footer { padding: 20px 0; font-size: 11px; }
}
@media (max-width: 360px) {
  .stats-grid { grid-template-columns: 1fr; }
  .stat-card { display: flex; align-items: center; gap: 12px; padding: 12px 14px; }
  .stat-icon { margin-bottom: 0; }
  .stat-value { font-size: 22px; }
  .time-selector { width: 100%; justify-content: space-between; }
}
/* ========== 导出按钮样式 ========== */
.export-bar {
  display: flex;
  justify-content: flex-end;
  padding: 8px 0;
}
.export-btn {
  background: rgba(76,175,80,0.1);
  color: #81c784;
  border: 1px solid rgba(76,175,80,0.2);
  padding: 8px 18px;
  border-radius: 8px;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.2s;
}
.export-btn:hover {
  background: rgba(76,175,80,0.2);
  transform: scale(1.02);
}
.export-btn:active {
  transform: scale(0.98);
}
.export-toast {
  position: fixed;
  bottom: 30px;
  left: 50%;
  transform: translateX(-50%) translateY(60px);
  background: rgba(76,175,80,0.9);
  color: #fff;
  padding: 10px 24px;
  border-radius: 8px;
  font-size: 14px;
  opacity: 0;
  transition: all 0.4s;
  pointer-events: none;
  z-index: 999;
}
.export-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}
/* ========== 环形图样式 ========== */
.donut-section {
  padding-bottom: 28px;
}
.donut-container {
  display: flex;
  align-items: center;
  gap: 24px;
  justify-content: center;
}
.donut-chart {
  width: 160px;
  height: 160px;
  position: relative;
}
.donut-chart svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.donut-chart circle {
  fill: none;
  stroke-width: 20;
  cx: 80;
  cy: 80;
  r: 60;
}
.donut-bg {
  stroke: rgba(255,255,255,0.06);
}
.donut-segment {
  transition: stroke-dasharray 1.2s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.donut-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
}
.donut-center-value {
  font-size: 24px;
  font-weight: 800;
}
.donut-center-label {
  font-size: 11px;
  color: #8899aa;
}
.donut-legend {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
}
.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 3px;
  flex-shrink: 0;
}
.legend-dot.c-deepseek { background: #4fc3f7; }
.legend-dot.c-qwen { background: #7c4dff; }
.legend-dot.c-kimi { background: #ff7043; }
.legend-dot.c-doubao { background: #66bb6a; }
.legend-dot.c-premium { background: #ffd54f; }
.legend-percent {
  color: #8899aa;
  margin-left: auto;
  font-weight: 600;
}
