.hidden { display: none !important; }

/* ---------- 登录页 ---------- */
.login-wrap {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background:
    radial-gradient(900px 500px at 20% 10%, rgba(32, 107, 196, 0.22), transparent 55%),
    radial-gradient(800px 500px at 85% 85%, rgba(47, 179, 68, 0.16), transparent 55%),
    #0f1521;
  position: relative;
}
.login-card {
  width: min(400px, 100%);
  border: 0;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}
.login-card .form-control { background: #f8fafc; }

/* ---------- 设备预览(296×152 墨水屏模拟) ---------- */
.device-preview-wrap { width: 100%; overflow-x: auto; }
.device-frame {
  width: 474px; /* 296 × 1.6 */
  height: 243px; /* 152 × 1.6 */
  margin: 0 auto;
  border-radius: 12px;
  background: #1a2233;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.35), inset 0 0 0 1px rgba(255, 255, 255, 0.06);
}
.device-canvas {
  width: 474px;
  height: 243px;
  background: #ffffff;
  /* 最近邻放大,模拟墨水屏像素点阵 */
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}

/* ---------- 设备列表 ---------- */
.device-list { display: grid; gap: 8px; }
.device-row { display: flex; gap: 8px; }
.device-row .input-group { flex: 1 1 auto; min-width: 0; }
.device-row .btn { flex: 0 0 auto; }

/* ---------- 设备诊断 ---------- */
.diagnose-result .alert { border-left: 3px solid currentColor; }

/* ---------- 首页卡片微调 ---------- */
.status-item { border-left: 3px solid var(--tblr-primary); }

/* ---------- 模型表格 ---------- */
.model-table td.num { font-variant-numeric: tabular-nums; }

/* ---------- 小屏适配 ---------- */
@media (max-width: 576px) {
  .device-frame { transform: scale(0.72); transform-origin: top left; height: 175px; width: 100%; }
  .device-canvas { transform: scale(0.72); transform-origin: top left; }
}
