/* ========================================================
   base.css — 全局变量 / 基础 reset / 通用动画
   来源：V22 HTML <style> 拆分 — 不改逻辑/不重构
   ======================================================== */

  * { margin: 0; padding: 0; box-sizing: border-box; }
  
  :root {
    --bg-deep: #050a14;
    --bg-base: #050a14;
    --bg-panel: #0a1424;
    --bg-panel-2: #0f1c30;
    --bg-panel-3: #142540;
    --bg-card: #142540;
    --border: #1a2942;
    --border-light: #243859;
    --text-primary: #d8e4f5;
    --text-secondary: #7a93b8;
    --text-tertiary: #4a5f80;
    /* === 颜色语义化（V3.6）===
     * cyan:   实时数据 / 正在处理 — 仅用于动态状态、流光、实时标识
     * purple: AI / 海若大模型 — 仅用于 AI 相关的输出和触发点
     * amber:  警示 / 中等风险
     * green:  正常 / 方案优 / AI 推荐
     * red:    高危 / 红色预警 — 仅用于紧急、不可忽视事件
     * #d8e4f5 白:  普通 KPI 数字（默认数字色，不抢戏）
     */
    --accent-cyan: #00d4ff;
    --accent-amber: #ffb52e;
    --accent-purple: #a855f7;
    --risk-green: #2ecc71;
    --risk-yellow: #f1c40f;
    --risk-orange: #e67e22;
    --risk-red: #e74c3c;
    --risk-deep-red: #c0392b;
    /* === 字号梯度（V3.6 精简为 6 档）=== */
    --font-xs:    10px;   /* 标签、辅助说明 */
    --font-sm:    11px;   /* 二级正文、卡片副标题 */
    --font-base:  12.5px; /* 主正文 */
    --font-md:    14px;   /* 区块标题 */
    --font-lg:    16px;   /* 顶部主标题 */
    --font-xl:    22px;   /* KPI 大数字、关键标题 */
  }
  
  /* === V3.6 数字跳动微动效 === */
  .num-tick {
    animation: numPulse 220ms ease-out;
  }
  @keyframes numPulse {
    0%   { transform: translateY(0); }
    50%  { transform: translateY(-1px); color: var(--accent-cyan); }
    100% { transform: translateY(0); }
  }
  /* 数字跳动颜色不抢戏：默认仅微微亮一下 */
  .num-tick-soft {
    animation: numPulseSoft 220ms ease-out;
  }
  @keyframes numPulseSoft {
    0%   { transform: translateY(0); }
    50%  { transform: translateY(-1px); filter: brightness(1.3); }
    100% { transform: translateY(0); }
  }
  
  /* === V3.7 主舞台车辆增强阴影（让画面立体感更强）=== */
  #map-3d #vehicles-down > g,
  #map-3d #vehicles-up > g,
  #map-3d g.cam-clickable-car {
    filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.55));
  }
  
  /* === V3.7 主舞台路面径向渐变（夜雨反光感）=== */
  .road-base-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(ellipse 65% 45% at 50% 62%, rgba(255, 255, 255, 0.045), transparent 55%);
    z-index: 2;
  }
  
  /* === V14: 地图归地图、列表归列表 ===
     V4-V13 把 AI 路段卡片/节点清单做成地图浮层挡到了主图区，
     现在统一改为：所有 AI 生成的业务对象列表都渲染到右下 #impact-list 里。
     这两个浮层 DOM 保留以兼容旧调用，但默认不再显示。 */
  .ai-segment-list,
  .impact-nodes-list {
    display: none !important;
  }
  
  /* === V4.0 AI 识别重点布防路段（场景推演第一层）— V13 真正贴顶 ===
     v22.8 修复：原文件末尾规则未闭合，layout.css 头部继续残留属性。
     现已在 base.css 内补完整规则，layout.css 改为从 .ai-segment-list.show 起始。 */
  .ai-segment-list {
    position: absolute;
    left: 16px;
    top: 60px;          /* V13: 改为 top 定位，紧贴顶部视角栏(12+36=48px)下方 12px 间隙 */
    width: 320px;       /* V13: 360 → 320，给主舞台横向更多空间 */
    max-height: 320px;  /* V13: 280 → 320，3 张卡 + 标题完整可见 */
    overflow-y: auto;
    z-index: 22;
    background: rgba(10, 20, 36, 0.92);
    border: 1px solid var(--border-light);
    backdrop-filter: blur(8px);
    padding: 10px 12px 8px;
    display: none;
  }
