/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
* { box-sizing: border-box; }
html, body {
  margin: 0;
  padding: 0;
  font-family: Inter, Arial, "Microsoft YaHei", sans-serif;
  background: radial-gradient(1200px 600px at 20% -10%, #1d2c4d 0%, #0b1020 55%), #0b1020;
  color: #e6edf7;
}
a { color: #7cc4ff; text-decoration: none; }
a:hover { text-decoration: underline; }
.container { max-width: 1180px; margin: 0 auto; padding: 24px; }

.card {
  background: linear-gradient(180deg, rgba(17,24,39,0.82), rgba(11,18,32,0.88));
  border: 1px solid #2a3b5f;
  border-radius: 14px;
  padding: 18px;
  box-shadow: 0 8px 22px rgba(0, 0, 0, .28), inset 0 1px 0 rgba(255,255,255,.03);
}
.row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }

input, select, button, textarea {
  border-radius: 10px;
  border: 1px solid #344965;
  padding: 10px 12px;
  font-size: 14px;
  transition: all .15s ease;
}
input, select, textarea {
  background: #0f172a;
  color: #e6edf7;
  min-height: 40px;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59,130,246,.18);
}

button {
  background: linear-gradient(180deg, #3b82f6, #2563eb);
  color: #fff;
  cursor: pointer;
  border: 1px solid #3b82f6;
  font-weight: 600;
}
button:hover { transform: translateY(-1px); filter: brightness(1.05); }
button.secondary {
  background: #1f2937;
  border-color: #334155;
  color: #dbe7ff;
}
button:disabled { opacity: .55; cursor: not-allowed; transform: none; }

.table { width: 100%; border-collapse: separate; border-spacing: 0; overflow: hidden; border-radius: 10px; }
.table th, .table td {
  border-bottom: 1px solid #22324e;
  text-align: left;
  padding: 10px;
  font-size: 13px;
}
.table th {
  color: #9ec5ff;
  background: rgba(30, 58, 138, .22);
  font-weight: 600;
}
.table tr:hover td { background: rgba(148, 163, 184, .06); }

.badge { display: inline-block; padding: 4px 10px; border-radius: 999px; font-size: 12px; border: 1px solid transparent; }
.badge.ok { background: rgba(22,163,74,.18); border-color: rgba(22,163,74,.45); color: #86efac; }
.badge.run { background: rgba(245,158,11,.18); border-color: rgba(245,158,11,.45); color: #fcd34d; }
.badge.fail { background: rgba(239,68,68,.18); border-color: rgba(239,68,68,.45); color: #fca5a5; }

/* Leaflet：防止全局 img 规则压扁瓦片；弹窗内地图常见“有标记无底图”需配合 invalidateSize */
.pv-leaflet-map.leaflet-container {
  background: #dfe8f0;
  z-index: 0;
}
.pv-leaflet-map.leaflet-container img {
  max-width: none !important;
}

