/* ============================================================
   资产监控板块 · Asset Monitor Section
   ------------------------------------------------------------
   结构/布局/交互：完整复用「洛奇狮长沙地区资产监测工作台」
   视觉规范：采用洛奇狮官网设计令牌（深海蓝 #07111f + 香槟金 #d4af5f）
   作用域：全部规则收敛在 .ams 根下，可安全嵌入任意页面不污染宿主样式
   主题：默认 site（官网色）；加 .ams-theme-workbench 可回退工作台原蓝
   ============================================================ */

.ams{
  /* ---- 主题变量（默认对齐官网） ---- */
  --ams-bg:#f0f2f5;
  --ams-card:#ffffff;
  --ams-ink:#1c2b3a;
  --ams-sub:#697b8c;
  --ams-line:#d9dde3;
  --ams-soft:#f7f9fc;
  --ams-pri:#0a192a;        /* 主色 · 深海蓝 */
  --ams-pri-2:#142e47;      /* 主色深 · hover */
  --ams-accent:#d4af5f;     /* 强调 · 香槟金 */
  --ams-accent-2:#b8933e;   /* 强调深 · 暗金 */
  --ams-accent-soft:#fbf6ea;
  --ams-good:#2e9e5b;
  --ams-warn:#c0392b;
  --ams-bad:#c0392b;      /* 修复：原 .ams-dot.err 误引用未定义变量 */
  --ams-gold:#b8933e;
  --ams-r:12px;
  --ams-sh:0 2px 14px rgba(7,17,31,.08);

  font-family:"PingFang SC","Microsoft YaHei","Segoe UI",system-ui,-apple-system,sans-serif;
  color:var(--ams-ink);
  font-size:15px;
  line-height:1.6;
  -webkit-tap-highlight-color:transparent;
}
.ams *{box-sizing:border-box}

/* 回退主题：工作台原蓝色 */
.ams.ams-theme-workbench{
  --ams-bg:#f4f6fb;
  --ams-ink:#1f2733;
  --ams-sub:#6b7785;
  --ams-line:#e6eaf0;
  --ams-soft:#fafbfd;
  --ams-pri:#2563eb;
  --ams-pri-2:#1e40af;
  --ams-accent:#2563eb;
  --ams-accent-2:#1e40af;
  --ams-accent-soft:#eff6ff;
  --ams-good:#16a34a;
  --ams-warn:#dc2626;
  --ams-gold:#d97706;
}

/* ---------- 板块标题（对齐官网 .sec-head） ---------- */
.ams-sec-head{text-align:center;margin-bottom:26px}
.ams-sec-head .kicker{
  color:var(--ams-accent-2);font-size:12.5px;letter-spacing:3px;font-weight:700;
}
.ams-sec-head h2{
  font-size:26px;letter-spacing:2.5px;margin:8px 0 8px;color:#07111f;font-weight:700;
}
.ams-sec-head p{color:var(--ams-sub);font-size:14px}

/* ---------- 头部 ---------- */
.ams-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.ams-logo{
  width:40px;height:40px;border-radius:10px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--ams-pri),var(--ams-pri-2));
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 0 1px rgba(212,175,95,.35);
}
.ams-logo svg{width:22px;height:22px}
.ams-title{font-size:19px;margin:0;font-weight:700;letter-spacing:1.2px}
.ams-sub{color:var(--ams-sub);font-size:12.5px;margin-top:2px}
.ams-spacer{flex:1}
.ams-pill{
  font-size:12px;padding:5px 11px;border-radius:999px;border:1px solid var(--ams-line);
  background:#fff;color:var(--ams-sub);display:inline-flex;align-items:center;gap:6px;
}
.ams-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;flex:0 0 auto}
.ams-dot.ok{background:var(--ams-good)}
.ams-dot.warn{background:var(--ams-gold)}
.ams-dot.off{background:#cbd5e1}

/* ---------- 按钮 ---------- */
.ams-btn{
  appearance:none;border:1px solid var(--ams-line);background:#fff;color:var(--ams-ink);
  padding:9px 14px;border-radius:10px;font-size:14px;cursor:pointer;min-height:44px;
  display:inline-flex;align-items:center;gap:7px;transition:.15s;font-family:inherit;
}
.ams-btn:hover{border-color:var(--ams-accent);color:var(--ams-accent-2)}
.ams-btn.primary{
  background:linear-gradient(135deg,var(--ams-accent) 0%,var(--ams-accent-2) 100%);
  border-color:var(--ams-accent-2);color:#fff;font-weight:600;
  box-shadow:0 6px 20px rgba(184,147,62,.22);
}
.ams-btn.primary:hover{filter:brightness(1.07);color:#fff}
.ams-btn.navy{background:var(--ams-pri);border-color:var(--ams-pri);color:#fff}
.ams-btn.navy:hover{background:var(--ams-pri-2);color:#fff}
.ams-btn svg{width:16px;height:16px;flex:0 0 auto}
.ams-btn[disabled]{opacity:.45;cursor:not-allowed}
.ams-btn[disabled]:hover{border-color:var(--ams-line);color:var(--ams-ink)}

/* ---------- 卡片 ---------- */
.ams-card{
  background:var(--ams-card);border:1px solid var(--ams-line);border-radius:var(--ams-r);
  box-shadow:var(--ams-sh);padding:16px;margin-bottom:14px;
}
.ams-card h2{
  font-size:16px;margin:0 0 12px;display:flex;align-items:center;gap:8px;font-weight:700;
}
.ams-card h2 svg{width:18px;height:18px;color:var(--ams-accent-2);flex:0 0 auto}

/* ============================================================
   日期导航（新增 · 每日资产数据按日期查看）
   ============================================================ */
.ams-datebar{
  background:var(--ams-card);border:1px solid var(--ams-line);border-radius:var(--ams-r);
  box-shadow:var(--ams-sh);padding:14px 16px;margin-bottom:14px;
}
.ams-datenav{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ams-navbtn{
  appearance:none;border:1px solid var(--ams-line);background:#fff;color:var(--ams-ink);
  width:44px;height:44px;border-radius:10px;cursor:pointer;display:inline-flex;
  align-items:center;justify-content:center;transition:.15s;flex:0 0 auto;
}
.ams-navbtn:hover{border-color:var(--ams-accent);color:var(--ams-accent-2)}
.ams-navbtn[disabled]{opacity:.4;cursor:not-allowed}
.ams-navbtn svg{width:18px;height:18px}
.ams-dateinput{
  appearance:none;border:1px solid var(--ams-line);border-radius:10px;background:#fff;
  padding:10px 12px;font-size:14px;color:var(--ams-ink);min-height:44px;font-family:inherit;
  color-scheme:light;
}
.ams-dateinput:focus{outline:none;border-color:var(--ams-accent)}
.ams-datelabel{font-size:13px;color:var(--ams-sub)}
.ams-datelabel b{color:var(--ams-ink);font-size:15px;letter-spacing:.5px}
.ams-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--ams-line)}
.ams-chip{
  padding:6px 13px;border-radius:999px;border:1px solid var(--ams-line);background:#fff;
  font-size:13px;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;gap:6px;
  transition:.15s;color:var(--ams-sub);font-variant-numeric:tabular-nums;
}
.ams-chip:hover{border-color:var(--ams-accent);color:var(--ams-accent-2)}
.ams-chip.active{
  background:var(--ams-pri);border-color:var(--ams-pri);color:#fff;font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(212,175,95,.35);
}
.ams-chip .cn{font-size:11px;opacity:.75}

/* ---------- KPI ---------- */
.ams-grid{display:grid;gap:12px}
.ams-kpi{
  background:var(--ams-soft);border:1px solid var(--ams-line);border-radius:10px;padding:12px;
}
.ams-kpi .n{font-size:22px;font-weight:800;color:var(--ams-pri);font-variant-numeric:tabular-nums;letter-spacing:.5px}
.ams-kpi .l{font-size:12px;color:var(--ams-sub);margin-top:2px}
.ams-kpi .delta{font-size:11.5px;margin-top:4px;display:inline-flex;align-items:center;gap:3px;color:var(--ams-sub)}
.ams-kpi .delta.up{color:var(--ams-good)}
.ams-kpi .delta.down{color:var(--ams-accent-2)}
.ams-kpi .delta.flat{color:var(--ams-sub)}
.ams-kpi.accent .n{color:var(--ams-accent-2)}

/* ---------- 标签页 ---------- */
.ams-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.ams-tab{
  padding:8px 14px;border-radius:999px;border:1px solid var(--ams-line);background:#fff;
  font-size:13.5px;cursor:pointer;min-height:40px;display:inline-flex;align-items:center;transition:.15s;
}
.ams-tab:hover{border-color:var(--ams-accent);color:var(--ams-accent-2)}
.ams-tab.active{
  background:var(--ams-pri);color:#fff;border-color:var(--ams-pri);font-weight:600;
  box-shadow:inset 0 0 0 1px rgba(212,175,95,.35);
}

/* ---------- 表格 ---------- */
.ams-tablewrap{overflow-x:auto;border-radius:10px;border:1px solid var(--ams-line)}
.ams table{width:100%;border-collapse:collapse;font-size:13px}
.ams th,.ams td{padding:9px 8px;text-align:left;border-bottom:1px solid var(--ams-line);vertical-align:top}
.ams th{
  color:var(--ams-sub);font-weight:600;font-size:12px;background:var(--ams-soft);
  position:sticky;top:0;white-space:nowrap;
}
.ams tbody tr:hover{background:var(--ams-soft)}
.ams tbody tr:last-child td{border-bottom:none}

/* ---------- 标签 / 数值 ---------- */
.ams .tag{display:inline-block;padding:2px 8px;border-radius:6px;font-size:11.5px;font-weight:600;white-space:nowrap}
.ams .tag.住宅{background:#e0f2fe;color:#0369a1}
.ams .tag.商业{background:#fef3c7;color:#b45309}
.ams .tag.厂房{background:#dcfce7;color:#15803d}
.ams .tag.src-ali{background:#e0f2fe;color:#0369a1}
.ams .tag.src-jd{background:#ffe4e6;color:#be123c}
.ams .tag.src{background:#ede9fe;color:#6d28d9}
.ams .tag.stage{background:#f1f5f9;color:#475569}
.ams .tag.isnew{background:#fee2e2;color:#b91c1c}
.ams .score{font-weight:800;font-size:15px;color:var(--ams-good);font-variant-numeric:tabular-nums}
.ams .disc{font-weight:700;font-variant-numeric:tabular-nums}
.ams .disc.good{color:var(--ams-good)}
.ams .disc.mid{color:var(--ams-gold)}
.ams .disc.bad{color:var(--ams-warn)}
.ams .mono{font-variant-numeric:tabular-nums}
.ams .amt{font-size:16px;font-weight:700;color:var(--ams-ink)}
.ams a.link{color:var(--ams-accent-2);text-decoration:none;font-size:12px;font-weight:600}
.ams a.link:hover{text-decoration:underline}

/* ---------- 关注列表 ---------- */
.ams-watch{display:grid;gap:10px}
.ams-wcard{
  border:1px solid var(--ams-line);border-radius:12px;padding:12px;background:#fff;
  display:flex;gap:12px;align-items:flex-start;
}
.ams-wcard .rk{
  width:30px;height:30px;border-radius:8px;flex:0 0 auto;font-size:14px;font-weight:700;
  background:linear-gradient(135deg,var(--ams-accent) 0%,var(--ams-accent-2) 100%);color:#fff;
  display:flex;align-items:center;justify-content:center;
}
.ams-wcard .nm{font-weight:600;font-size:14px;line-height:1.45}
.ams-wcard .mt{font-size:12px;color:var(--ams-sub);margin-top:3px}
.ams .new{
  display:inline-block;background:#fee2e2;color:#b91c1c;font-size:11px;font-weight:700;
  padding:2px 7px;border-radius:6px;margin-left:6px;
}

/* ---------- 权重滑块 ---------- */
.ams-sliders{display:grid;gap:14px;max-width:560px}
.ams-srow{display:grid;grid-template-columns:120px 1fr 52px;align-items:center;gap:10px}
.ams-srow label{font-size:13.5px}
.ams .ams-srow input[type=range]{width:100%;accent-color:var(--ams-accent-2)}
.ams-srow .val{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.ams-wsum{font-size:12.5px;color:var(--ams-sub);margin-top:6px}

/* ---------- 数据源卡片 ---------- */
.ams-src-card{
  border:1px solid var(--ams-line);border-radius:12px;padding:13px;background:#fff;
  display:flex;flex-direction:column;gap:6px;
}
.ams-src-card.ok{border-left:4px solid var(--ams-good)}
.ams-src-card.warn{border-left:4px solid var(--ams-gold)}
.ams-src-h{display:flex;align-items:center;gap:8px;font-size:14.5px}
.ams-src-h .src-badge{
  margin-left:auto;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;
  background:#eef2f7;color:var(--ams-sub);white-space:nowrap;
}
.ams-src-h .src-badge.off{background:#fef3c7;color:#b45309}
.ams-src-plat{font-size:12.5px;color:var(--ams-ink);font-weight:600}
.ams-src-meta{font-size:12px;color:var(--ams-sub)}
.ams-src-count{font-size:24px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}
.ams-src-count span{font-size:12px;font-weight:500;color:var(--ams-sub)}
.ams-src-req{font-size:11.5px;color:var(--ams-gold);background:#fffbeb;border-radius:6px;padding:4px 8px}

/* ---------- 说明 / 空态 / 提示 ---------- */
.ams-note{font-size:12px;color:var(--ams-sub);line-height:1.7}
.ams-note b{color:var(--ams-ink)}
.ams-note code{
  background:var(--ams-soft);padding:1px 5px;border-radius:4px;font-size:11.5px;
  border:1px solid var(--ams-line);
}
.ams-empty{padding:30px;text-align:center;color:var(--ams-sub);font-size:14px}
.ams-filehide{display:none}
.ams-toast{
  position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:#07111f;color:#fff;
  padding:11px 18px;border-radius:10px;font-size:13.5px;opacity:0;transition:.25s;z-index:9999;
  pointer-events:none;max-width:86vw;text-align:center;
}
.ams-toast.show{opacity:1}

/* ---------- 告警 / 监测指标 / 同步状态（同步字段） ---------- */
.ams-dot.err{background:var(--ams-bad)}
.ams-alerts{display:flex;flex-direction:column;gap:8px;margin:12px 0 0}
.ams-alert{
  display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.5;
  border:1px solid var(--ams-line);background:var(--ams-soft);
}
.ams-alert .ai{flex:0 0 auto;font-size:14px;line-height:1.3}
.ams-alert.info{color:#0f4c81;border-color:#bfdbfe;background:#eff6ff}
.ams-alert.warn{color:#92400e;border-color:#fde68a;background:#fffbeb}
.ams-alert.err{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.ams-metrics{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 16px;padding:10px 12px;
  border:1px solid var(--ams-line);border-radius:12px;background:var(--ams-soft);
}
.ams-metric-label{font-size:12px;color:var(--ams-sub);font-weight:700;letter-spacing:.5px;margin-right:2px}
.ams-metric{display:inline-flex;align-items:baseline;gap:4px;font-size:12.5px;color:var(--ams-sub)}
.ams-metric b{font-size:15px;color:var(--ams-ink);font-weight:700;letter-spacing:.3px}
.ams-metric-sub{font-size:11.5px;color:var(--ams-sub);margin-left:auto;opacity:.85}
.ams-status{
  display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;line-height:1.6;font-weight:600;white-space:nowrap;
  border:1px solid transparent;
}
.ams-status.lc-live{color:#15803d;background:#dcfce7;border-color:#86efac}
.ams-status.lc-wait{color:#1d4ed8;background:#dbeafe;border-color:#93c5fd}
.ams-status.lc-end{color:#475569;background:#e2e8f0;border-color:#cbd5e1}
.ams-status.lc-fail{color:#b91c1c;background:#fef2f2;border-color:#fecaca}
.ams-status.lc-unknown{color:#64748b;background:#f1f5f9;border-color:#e2e8f0}

/* ---------- 响应式 ---------- */
@media(max-width:768px){
  .ams{font-size:14px}
  .ams-card{padding:13px}
  .ams-header{gap:10px}
  .ams-title{font-size:17px}
  .ams-sec-head h2{font-size:21px;letter-spacing:1.5px}
  .ams table{font-size:12px}
  .ams th,.ams td{padding:7px 5px}
  .ams .show-pc{display:none}
  .ams-srow{grid-template-columns:96px 1fr 46px}
  .ams .amt{font-size:14px}
  .ams-kpi .n{font-size:19px}
}
@media(min-width:769px){ .ams .show-mo{display:none} }

/* ============================================================
   运行状态指示灯 · 系统健康灯 / 资产状态点 / 自动刷新条 / 行变化高亮
   ============================================================ */

/* 系统运行状态指示灯（顶部工具条） */
.ams-syslight{
  display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;
  font-size:12.5px;font-weight:600;border:1px solid var(--ams-line);background:#fff;white-space:nowrap;
}
.ams-syslight .lt{width:10px;height:10px;border-radius:50%;flex:0 0 auto;background:var(--ams-sub)}
.ams-syslight .txt{color:var(--ams-ink)}
.ams-syslight.ok{color:var(--ams-good);border-color:#86efac;background:#f0fdf4}
.ams-syslight.ok .lt{background:var(--ams-good);animation:amsPulse 2s infinite}
.ams-syslight.info{color:#0f4c81;border-color:#bfdbfe;background:#eff6ff}
.ams-syslight.info .lt{background:#2b6cb0}
.ams-syslight.warn{color:#b45309;border-color:#fde68a;background:#fffbeb}
.ams-syslight.warn .lt{background:var(--ams-gold);animation:amsPulse 2s infinite}
.ams-syslight.err{color:#b91c1c;border-color:#fecaca;background:#fef2f2}
.ams-syslight.err .lt{background:var(--ams-bad);animation:amsPulse 1s infinite}

/* 资产状态徽章内的指示点（脉冲表示进行中/活跃） */
.ams-status .lt{width:7px;height:7px;border-radius:50%;margin-right:6px;display:inline-block;vertical-align:middle;background:currentColor;opacity:.9}
.ams-status.lc-live .lt{animation:amsPulse 1.6s infinite}
@keyframes amsPulse{
  0%{box-shadow:0 0 0 0 rgba(46,158,91,.55)}
  70%{box-shadow:0 0 0 6px rgba(46,158,91,0)}
  100%{box-shadow:0 0 0 0 rgba(46,158,91,0)}
}

/* 自动刷新工具条 */
.ams-refreshbar{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--ams-card);border:1px solid var(--ams-line);border-radius:var(--ams-r);
  box-shadow:var(--ams-sh);padding:12px 16px;margin-bottom:14px;
}
.ams-switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;color:var(--ams-ink);user-select:none}
.ams-switch input{position:absolute;opacity:0;width:0;height:0}
.ams-switch .track{width:42px;height:24px;border-radius:999px;background:#cbd5e1;transition:.2s;position:relative;flex:0 0 auto}
.ams-switch .track::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ams-switch input:checked + .track{background:var(--ams-good)}
.ams-switch input:checked + .track::after{transform:translateX(18px)}
.ams-refreshinfo{font-size:12.5px;color:var(--ams-sub);font-variant-numeric:tabular-nums}

/* 行变化高亮（新出现 / 状态变更） */
.ams tbody tr.ams-row-new{background:#fff7ed}
.ams tbody tr.ams-row-changed{animation:amsFlash 1.4s ease-out}
.ams tbody tr.ams-row-changed td:first-child{box-shadow:inset 3px 0 0 var(--ams-accent-2)}
@keyframes amsFlash{0%{background:#fde68a}100%{background:transparent}}

@media(max-width:768px){
  .ams-refreshbar{gap:10px;padding:10px 12px}
  .ams-refreshinfo{width:100%;order:5}
}
