* { margin: 0; padding: 0; box-sizing: border-box; }
html, body { width: 100%; height: 100%; background: #020817; overflow: hidden; font-family: "Microsoft YaHei", "PingFang SC", sans-serif; color: #cfe8ff; }

#screen {
  width: 1920px; height: 1080px; position: absolute; left: 50%; top: 50%;
  transform-origin: center center;
  /* 首屏缩放脚本执行前不显示，避免 1920×1080 原尺寸闪一下 */
  visibility: hidden;
  background: radial-gradient(ellipse at 50% 0%, #0a2145 0%, #051129 45%, #020817 100%);
  display: flex; flex-direction: column; padding: 18px 24px 20px;
}

/* ---------- 顶部 ---------- */
.topbar { display: flex; flex-direction: column; gap: 12px; height: 118px; }
.title-box { display: flex; align-items: center; justify-content: center; gap: 24px; height: 58px; }
.main-title {
  font-size: 38px; letter-spacing: 6px; font-weight: 700; color: #e8f6ff;
  text-shadow: 0 0 18px rgba(0,200,255,.65), 0 0 40px rgba(0,120,255,.35);
}
.title-line { width: 320px; height: 2px; background: linear-gradient(90deg, transparent, #19c8ff); position: relative; }
.title-line.right { background: linear-gradient(90deg, #19c8ff, transparent); }
.title-line::after { content: ''; position: absolute; top: -4px; width: 10px; height: 10px; background: #19c8ff; transform: rotate(45deg); }
.title-line.left::after { left: 0; } .title-line.right::after { right: 0; }

.filter-bar {
  display: flex; align-items: center; gap: 18px; flex-wrap: nowrap;
  background: linear-gradient(90deg, rgba(10,40,80,.6), rgba(10,40,80,.25));
  border: 1px solid rgba(30,120,200,.35); border-radius: 8px; padding: 10px 16px;
}
.f-item { font-size: 15px; color: #9fc8e8; display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.f-item input[type=date], .f-item input[type=month], .f-item select {
  background: #071a33; color: #cfe8ff; border: 1px solid rgba(60,150,220,.5);
  border-radius: 5px; padding: 5px 8px; font-size: 14px; outline: none; color-scheme: dark;
}
.f-item input[type=month] { min-width: 128px; }
.hide { display: none !important; }
.range-hint { font-size: 13px; color: #7aa6c8; font-variant-numeric: tabular-nums; white-space: nowrap; }
.btn {
  background: linear-gradient(180deg,#1593e6,#0b6fc0); color: #fff; border: 1px solid #35b6ff;
  border-radius: 5px; padding: 6px 18px; font-size: 15px; cursor: pointer; letter-spacing: 2px;
}
.btn:hover { filter: brightness(1.15); }
.btn.ghost { background: transparent; color: #9fc8e8; border: 1px solid rgba(120,180,220,.5); }
.auto { gap: 4px; cursor: pointer; }
.nav-link { color: #56e0ff; font-size: 14px; text-decoration: none; border: 1px solid rgba(60,150,220,.5); border-radius: 5px; padding: 5px 12px; white-space: nowrap; margin-left: auto; }
.nav-link:hover { background: rgba(30,120,200,.25); }
.clock { margin-left: 18px; font-size: 22px; color: #56e0ff; letter-spacing: 2px; font-variant-numeric: tabular-nums; text-shadow: 0 0 10px rgba(0,200,255,.5); }

/* ---------- KPI ---------- */
.kpi-row { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; margin: 14px 0; height: 118px; }
.kpi-card {
  position: relative; border: 1px solid rgba(40,130,210,.4); border-radius: 8px;
  background: linear-gradient(160deg, rgba(14,45,86,.75), rgba(8,26,52,.55));
  padding: 16px 18px; overflow: hidden;
}
.kpi-card::before { content:''; position:absolute; top:0; left:0; width:14px; height:14px; border-top:2px solid #19c8ff; border-left:2px solid #19c8ff; }
.kpi-card::after { content:''; position:absolute; bottom:0; right:0; width:14px; height:14px; border-bottom:2px solid #19c8ff; border-right:2px solid #19c8ff; }
.kpi-label { font-size: 15px; color: #8fb9d9; margin-bottom: 10px; }
.kpi-value { font-size: 34px; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.1; }
.kpi-sub { font-size: 13px; color: #6f97b8; margin-top: 6px; }
.cyan { color: #3fe0ff; text-shadow: 0 0 12px rgba(63,224,255,.5); }
.blue { color: #5aa8ff; text-shadow: 0 0 12px rgba(90,168,255,.5); }
.green { color: #4ef0b0; text-shadow: 0 0 12px rgba(78,240,176,.5); }
.orange { color: #ffc45e; text-shadow: 0 0 12px rgba(255,196,94,.5); }
.purple { color: #c79bff; text-shadow: 0 0 12px rgba(199,155,255,.5); }

/* ---------- 网格 ---------- */
.grid { flex: 1; display: grid; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 1fr; gap: 16px; min-height: 0; }
.panel {
  position: relative; border: 1px solid rgba(40,130,210,.35); border-radius: 8px;
  background: linear-gradient(160deg, rgba(12,38,74,.6), rgba(6,20,42,.45));
  padding: 10px 12px 8px; display: flex; flex-direction: column; min-height: 0;
}
.panel::before, .panel::after { content:''; position:absolute; width:12px; height:12px; }
.panel::before { top:-1px; left:-1px; border-top:2px solid #19c8ff; border-left:2px solid #19c8ff; }
.panel::after { bottom:-1px; right:-1px; border-bottom:2px solid #19c8ff; border-right:2px solid #19c8ff; }
.span4 { grid-column: span 4; } .span8 { grid-column: span 8; }
.panel-title {
  font-size: 17px; color: #bfe4ff; letter-spacing: 1px; padding-left: 14px; margin-bottom: 6px; position: relative; height: 28px; line-height: 28px;
}
.panel-title::before { content:''; position:absolute; left:0; top:6px; width:6px; height:16px; background:linear-gradient(#3fe0ff,#1578d8); box-shadow:0 0 8px #19c8ff; }
.chart { flex: 1; min-height: 0; width: 100%; }
