/* =====================================================================
   theme.css · 《末日房车：尸海行商》视觉系统
   基调：1977 美国西南 · 应急广播 + 油印公路图 + 锈蚀金属
   内容：设计令牌 / 阶段与天气 / 势力色 / 排版 / 质感 / 通用组件
   约束：仅系统字体，无外链，无外部素材，file:// 直接可用
   ===================================================================== */

/* ---------------------------------------------------------------------
   1. 设计令牌
   --------------------------------------------------------------------- */
:root{
  /* 沥青 / 金属底色 */
  --asphalt-0:#0a0c0e;
  --asphalt-1:#0f1114;
  --asphalt-2:#14161a;
  --asphalt-3:#1a1d22;
  --steel-0:#0b0d10;
  --steel-1:#22262c;
  --steel-2:#2b3037;
  --steel-3:#3a4049;
  --ink-black:#0a0b0d;
  --ink-brown:#17140e;

  /* 骨白油印纸 */
  --paper:#e7ddc8;
  --paper-2:#d9cdb4;
  --paper-3:#c2b699;
  --paper-dim:#a89e86;
  --paper-warm:#efe6d2;

  /* 主强调 */
  --rust:#b5502a;
  --rust-deep:#7c361f;
  --rust-light:#d76c3d;
  --sodium:#e2a33e;
  --sodium-2:#f2bd5c;
  --sodium-deep:#a8741f;
  --alert:#a33a3a;
  --alert-2:#c8514b;
  --rad:#93a86a;
  --rad-2:#b0c184;
  --blue:#4a7fa8;
  --blue-2:#74a3c8;

  /* 语义色 */
  --bg:var(--asphalt-1);
  --bg-2:var(--asphalt-2);
  --fg:var(--paper);
  --muted:#98917f;
  --muted-2:#6f6a5d;
  --ok:var(--rad);
  --warn:var(--sodium);
  --bad:var(--alert);
  --line:rgba(231,221,200,.14);
  --line-2:rgba(231,221,200,.075);
  --line-strong:rgba(231,221,200,.30);

  /* 七势力色（契约 §6 固定值） */
  --f-police:#4a7fa8;
  --f-alliance:#7d9a6a;
  --f-militia:#b28a4e;
  --f-church:#8b7fa8;
  --f-hand:#a33a3a;
  --f-army:#5f6b46;
  --f-mayor:#c8a23c;

  /* 字体：只使用系统字体栈 */
  --font-sans:"PingFang SC","Microsoft YaHei","Hiragino Sans GB","Noto Sans SC","Heiti SC","WenQuanYi Micro Hei",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-head:"Arial Narrow","Franklin Gothic Medium","Impact","Haettenschweiler","PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono","Courier New",monospace;

  /* 排版尺度 */
  --fs-body:14.5px;
  --lh-body:1.65;
  --fs-small:12.5px;
  --fs-tiny:11px;
  --fs-micro:10.5px;

  /* 布局尺寸（契约 §11.3） */
  --topbar-h:64px;
  --rail-w:88px;
  --side-w:320px;
  --stage-max:1300px;
  --gap:16px;
  --gap-sm:10px;
  --pad:20px;
  --radius:3px;

  /* 动效：150–220ms，克制 */
  --t-fast:150ms;
  --t:190ms;
  --t-slow:220ms;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,.84,.44,1);

  /* 质感纹理（纯 CSS / 内联 data URI） */
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  --halftone:radial-gradient(circle at 50% 50%,rgba(231,221,200,.20) 1px,transparent 1.45px);
  --halftone-dark:radial-gradient(circle at 50% 50%,rgba(10,11,13,.55) 1px,transparent 1.4px);
  --metal:repeating-linear-gradient(90deg,rgba(255,255,255,.030) 0 1px,rgba(0,0,0,.05) 1px 2px,transparent 2px 5px);
  --scan:repeating-linear-gradient(180deg,rgba(0,0,0,.32) 0 1px,transparent 1px 3px);
  --vignette:radial-gradient(ellipse at 50% 42%,transparent 42%,rgba(0,0,0,.55) 100%);

  /* 阶段（会随 data-era 覆盖） */
  --era-grain:.045;
  --era-scan:.07;
  --era-glow:rgba(226,163,62,.06);
  --era-haze:rgba(74,127,168,.05);
  --era-sat:1;
  --era-sepia:0;
  --w-tint:transparent;
  --w-accent:var(--blue);
}

/* ---------------------------------------------------------------------
   2. 世界阶段 · 天气 · 势力色
   --------------------------------------------------------------------- */
[data-era="1"],body[data-era="1"]{
  --era-grain:.040;
  --era-scan:.06;
  --era-glow:rgba(226,163,62,.07);
  --era-haze:rgba(74,127,168,.055);
  --era-sat:1;
  --era-sepia:0;
}
[data-era="2"],body[data-era="2"]{
  --era-grain:.065;
  --era-scan:.11;
  --era-glow:rgba(181,80,42,.09);
  --era-haze:rgba(181,80,42,.075);
  --era-sat:.94;
  --era-sepia:2;
}
[data-era="3"],body[data-era="3"]{
  --era-grain:.095;
  --era-scan:.16;
  --era-glow:rgba(163,58,58,.13);
  --era-haze:rgba(163,58,58,.10);
  --era-sat:.80;
  --era-sepia:5;
}

/* 天气：底部令牌 + 具体天气覆盖；只做色调偏移，不给关键信息设悬停门槛 */
body[data-weather]{--w-tint:transparent;--w-accent:var(--blue);}
[data-weather="clear"],body[data-weather="clear"]{ --w-tint:transparent; --w-accent:var(--blue); }
[data-weather="rain"],body[data-weather="rain"]{ --w-tint:rgba(74,127,168,.10); --w-accent:#6a9cc4; }
[data-weather="storm"],body[data-weather="storm"]{ --w-tint:rgba(58,64,73,.20); --w-accent:#8fa4bb; }
[data-weather="fog"],body[data-weather="fog"]{ --w-tint:rgba(194,182,153,.10); --w-accent:var(--paper-3); }
[data-weather="ash"],body[data-weather="ash"]{ --w-tint:rgba(120,116,108,.14); --w-accent:#b3aa99; }
[data-weather="heat"],body[data-weather="heat"]{ --w-tint:rgba(226,163,62,.10); --w-accent:var(--sodium); }
[data-weather="dust"],body[data-weather="dust"]{ --w-tint:rgba(178,138,78,.12); --w-accent:var(--f-militia); }
[data-weather="wind"],body[data-weather="wind"]{ --w-tint:rgba(147,168,106,.07); --w-accent:var(--rad); }
[data-weather="cold"],body[data-weather="cold"]{ --w-tint:rgba(106,156,196,.12); --w-accent:var(--blue-2); }
[data-weather]:not([data-weather="clear"]){ --w-accent:var(--w-accent); }

/* 势力色变量：在 .f-<id> / .faction-<id> 容器内用 var(--fac) 取色 */
.f-police,.faction-police{--fac:var(--f-police);--fac-soft:rgba(74,127,168,.16);}
.f-alliance,.faction-alliance{--fac:var(--f-alliance);--fac-soft:rgba(125,154,106,.16);}
.f-militia,.faction-militia{--fac:var(--f-militia);--fac-soft:rgba(178,138,78,.16);}
.f-church,.faction-church{--fac:var(--f-church);--fac-soft:rgba(139,127,168,.16);}
.f-hand,.faction-hand{--fac:var(--f-hand);--fac-soft:rgba(163,58,58,.16);}
.f-army,.faction-army{--fac:var(--f-army);--fac-soft:rgba(95,107,70,.18);}
.f-mayor,.faction-mayor{--fac:var(--f-mayor);--fac-soft:rgba(200,162,60,.16);}

/* ---------------------------------------------------------------------
   3. 基础重置与页面底色
   --------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{height:100%;-webkit-text-size-adjust:100%;}
body{
  margin:0;
  min-height:100%;
  overflow-x:hidden;
  color:var(--fg);
  font:var(--fs-body)/var(--lh-body) var(--font-sans);
  background-color:var(--asphalt-1);
  background-image:
    radial-gradient(1100px 560px at 18% -12%,var(--era-glow),transparent 70%),
    linear-gradient(180deg,var(--era-haze),transparent 34%),
    linear-gradient(180deg,var(--w-tint),transparent 46%),
    linear-gradient(180deg,#0d0f12 0%,#101216 46%,#0a0c0e 100%);
  background-attachment:fixed;
  filter:saturate(var(--era-sat)) sepia(var(--era-sepia));
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0;}
h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;}
ul,ol{margin:0;padding:0;list-style:none;}
b,strong{font-weight:700;color:var(--paper-warm);}
small{font-size:var(--fs-tiny);}
a{color:var(--sodium);text-decoration:none;transition:color var(--t-fast) var(--ease);}
a:hover{color:var(--sodium-2);text-decoration:underline;text-underline-offset:2px;}
img,svg{max-width:100%;vertical-align:middle;}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit;}
button{background:none;border:0;padding:0;cursor:pointer;color:inherit;}
button::-moz-focus-inner{border:0;}
table{border-collapse:collapse;width:100%;}
hr{border:0;border-top:1px solid var(--line);margin:0;}
::selection{background:var(--rust);color:#fff4e4;}
::placeholder{color:var(--muted-2);opacity:1;}

/* 焦点态：始终可见（暗底加一圈外发光保证可辨识） */
:focus{outline:none;}
:focus-visible{
  outline:2px solid var(--sodium);
  outline-offset:2px;
  box-shadow:0 0 0 4px rgba(226,163,62,.18);
  border-radius:var(--radius);
}

/* 滚动条 */
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:#0b0d10;}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#333941,#242930);border:1px solid #0b0d10;}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#4a4230,#332d22);}
*{scrollbar-width:thin;scrollbar-color:#333941 #0b0d10;}

/* ---------------------------------------------------------------------
   4. 排版工具类
   --------------------------------------------------------------------- */
.mono{
  font-family:var(--font-mono);
  font-variant-numeric:tabular-nums;
  letter-spacing:0;
}
.tiny{font-size:var(--fs-tiny);line-height:1.55;letter-spacing:.02em;}
.muted{color:var(--muted);}
.center{text-align:center;}
.hidden{display:none !important;}
[hidden]{display:none !important;}

/* 标题字：窄体 + 字距，用于所有栏目名 */
.screen-title,.panel-title,.logo-main,.menu-btn,.brand-mark{
  font-family:var(--font-head);
  font-weight:700;
}

/* ---------------------------------------------------------------------
   5. 质感层：颗粒 / 扫描线 / 暗角 / 半调 / 胶带 / 印章 / 金属
   --------------------------------------------------------------------- */
.fx-grain,.fx-scan,.fx-vignette,.fx-flash{
  position:fixed;
  inset:0;
  pointer-events:none;
}
.fx-grain{
  z-index:60;
  opacity:var(--era-grain);
  background-image:var(--noise);
  background-size:170px 170px;
  mix-blend-mode:overlay;
  animation:grainShift 5.5s steps(6,end) infinite;
}
.fx-scan{
  z-index:61;
  opacity:var(--era-scan);
  background-image:var(--scan);
}
.fx-vignette{
  z-index:59;
  background-image:var(--vignette);
}
.fx-flash{
  z-index:62;
  background:var(--flash-color,#e7ddc8);
  opacity:0;
  animation:fxFlash 420ms var(--ease-out) forwards;
}
.fx-shake{animation:fxShake 340ms ease-in-out;}

/* 半调网点：可叠加在任意 .fx-halftone 容器上 */
.fx-halftone{position:relative;}
.fx-halftone::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:var(--halftone);
  background-size:5px 5px;
  opacity:.5;
  mix-blend-mode:soft-light;
}

/* 胶带（扩展工具类，用于面板/弹窗的"贴纸"感） */
.tape{
  display:inline-block;
  padding:3px 16px;
  background:linear-gradient(180deg,rgba(231,221,200,.80),rgba(217,205,180,.68));
  border-left:1px solid rgba(255,255,255,.45);
  border-right:1px solid rgba(0,0,0,.12);
  box-shadow:0 2px 6px rgba(0,0,0,.35);
  color:#2a2418;
  font-size:10.5px;
  letter-spacing:.16em;
  transform:rotate(-1.4deg);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 2px,#000 calc(100% - 2px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 2px,#000 calc(100% - 2px),transparent 100%);
}

/* 印章（扩展工具类） */
.stamp{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 11px;
  border:2px solid currentColor;
  border-radius:2px;
  color:var(--rust-light);
  font-family:var(--font-head);
  font-size:12px;
  letter-spacing:.22em;
  text-transform:uppercase;
  opacity:.86;
  transform:rotate(-3deg);
  -webkit-mask-image:var(--noise);
  mask-image:var(--noise);
  -webkit-mask-size:120px 120px;
  mask-size:120px 120px;
  pointer-events:none;
}
.stamp.good{color:var(--rad);}
.stamp.warn{color:var(--sodium);}

/* 金属拉丝条 */
.metal{background-image:var(--metal);}

/* ---------------------------------------------------------------------
   6. 布局工具（不承担外壳骨架，外壳见 layout.css）
   --------------------------------------------------------------------- */
.stack{display:flex;flex-direction:column;gap:var(--gap-sm);min-width:0;}
.row{display:flex;align-items:center;gap:var(--gap-sm);min-width:0;}
.row.wrap{flex-wrap:wrap;}
.spacer{flex:1 1 auto;min-width:0;}
.divider{
  height:1px;
  border:0;
  background:linear-gradient(90deg,transparent,var(--line) 12%,var(--line) 88%,transparent);
  position:relative;
}
.divider::after{
  content:"";
  position:absolute;
  left:50%;
  top:-2px;
  width:5px;
  height:5px;
  margin-left:-2.5px;
  background:var(--muted-2);
  transform:rotate(45deg);
}
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);}
.grid-veh{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:var(--gap);align-items:start;}

/* ---------------------------------------------------------------------
   7. 按钮：默认 / 主 / 幽灵 / 危险 / 小 / 图标 / 禁用
   --------------------------------------------------------------------- */
.btn{
  --btn-bg:linear-gradient(180deg,#2c323a,#1c2026 72%,#171a1f);
  --btn-fg:var(--paper-2);
  --btn-bd:rgba(231,221,200,.22);
  --btn-accent:rgba(231,221,200,.08);
  position:relative;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.45em;
  min-height:34px;
  padding:7px 15px;
  border:1px solid var(--btn-bd);
  border-radius:var(--radius);
  background:var(--btn-bg);
  color:var(--btn-fg);
  font-family:var(--font-head);
  font-size:13.5px;
  font-weight:700;
  letter-spacing:.06em;
  line-height:1.2;
  text-align:center;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 2px 0 rgba(0,0,0,.55);
  transition:background var(--t) var(--ease),border-color var(--t) var(--ease),
             color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease),
             transform var(--t-fast) var(--ease),filter var(--t) var(--ease);
}
.btn::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:var(--metal);
  opacity:.55;
  border-radius:inherit;
}
.btn:hover,.btn.is-hover{
  --btn-bd:rgba(231,221,200,.40);
  --btn-fg:var(--paper-warm);
  background:linear-gradient(180deg,#363d47,#232830 72%,#1b1f25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 2px 0 rgba(0,0,0,.55),0 0 16px rgba(231,221,200,.07);
}
.btn:active,.btn.is-active{
  transform:translateY(1px);
  box-shadow:inset 0 2px 7px rgba(0,0,0,.55);
}
.btn.primary{
  --btn-bg:linear-gradient(180deg,#eab655,#c98d2c 70%,#ad7522);
  --btn-fg:#1a1306;
  --btn-bd:#f2c977;
  text-shadow:0 1px 0 rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.45),0 2px 0 #4d340f,0 0 18px rgba(226,163,62,.18);
}
.btn.primary:hover,.btn.primary.is-hover{
  --btn-bg:linear-gradient(180deg,#f5c766,#d99a34 70%,#bb8226);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 2px 0 #4d340f,0 0 24px rgba(226,163,62,.30);
}
.btn.ghost{
  --btn-bg:rgba(231,221,200,.03);
  --btn-fg:var(--paper-2);
  --btn-bd:rgba(231,221,200,.28);
  box-shadow:none;
}
.btn.ghost:hover,.btn.ghost.is-hover{
  --btn-bg:rgba(231,221,200,.08);
  --btn-bd:rgba(231,221,200,.44);
  --btn-fg:var(--paper-warm);
  box-shadow:none;
}
.btn.danger{
  --btn-bg:linear-gradient(180deg,#b8483f,#8e2f2c 70%,#752624);
  --btn-fg:#f6e4cf;
  --btn-bd:#cf6a5c;
  text-shadow:0 1px 0 rgba(0,0,0,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 2px 0 #3d1312,0 0 16px rgba(163,58,58,.20);
}
.btn.danger:hover,.btn.danger.is-hover{
  --btn-bg:linear-gradient(180deg,#cd564b,#a13733 70%,#8a2c29);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 0 #3d1312,0 0 22px rgba(163,58,58,.34);
}
.btn.small{
  min-height:26px;
  padding:3px 10px;
  font-size:11.5px;
  letter-spacing:.09em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 1px 0 rgba(0,0,0,.5);
}
.btn.icon{
  min-height:0;
  width:34px;
  height:34px;
  padding:0;
  flex:0 0 auto;
}
.btn.icon.small{width:26px;height:26px;}
.btn.icon .ico,.btn .ico{width:16px;height:16px;}
.btn.block{width:100%;}
.btn[disabled],.btn:disabled,.btn.disabled{
  opacity:.42;
  cursor:not-allowed;
  filter:grayscale(.55) saturate(.6);
  box-shadow:none;
  transform:none;
}
.btn[disabled]::after,.btn:disabled::after{opacity:.2;}

/* ---------------------------------------------------------------------
   8. 标签 / 徽章 / 字符片 / 键帽
   --------------------------------------------------------------------- */
.tag{
  display:inline-flex;
  align-items:center;
  gap:4px;
  max-width:100%;
  padding:1px 6px;
  border:1px solid rgba(231,221,200,.24);
  background:rgba(231,221,200,.045);
  color:var(--paper-3);
  font-size:var(--fs-micro);
  letter-spacing:.09em;
  line-height:1.6;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  border-radius:1px;
}
.tag.warn{color:var(--sodium-2);border-color:rgba(226,163,62,.46);background:rgba(226,163,62,.10);}
.tag.good{color:var(--rad-2);border-color:rgba(147,168,106,.46);background:rgba(147,168,106,.10);}
.tag.danger{color:#e79684;border-color:rgba(163,58,58,.60);background:rgba(163,58,58,.13);}

.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:18px;
  height:18px;
  padding:0 5px;
  background:var(--sodium);
  color:#161308;
  font-family:var(--font-mono);
  font-size:10.5px;
  font-weight:700;
  line-height:1;
  border-radius:2px;
  box-shadow:0 1px 0 rgba(0,0,0,.5);
}
.badge.good{background:var(--rad);}
.badge.bad{background:var(--alert);color:#f6e4d6;}
.badge.rust{background:var(--rust);color:#fbe9dc;}

.chip{
  display:inline-flex;
  align-items:center;
  gap:5px;
  height:24px;
  padding:0 9px;
  border:1px solid var(--line);
  background:rgba(231,221,200,.045);
  color:var(--paper-2);
  font-size:11.5px;
  letter-spacing:.03em;
  white-space:nowrap;
  border-radius:1px;
}
.chip.mono{font-size:11px;}

.kbd{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 5px;
  border:1px solid var(--line-strong);
  border-bottom-width:2px;
  border-radius:2px;
  background:linear-gradient(180deg,#2c323a,#1a1e24);
  color:var(--paper-2);
  font-family:var(--font-mono);
  font-size:var(--fs-micro);
  line-height:1;
}

/* ---------------------------------------------------------------------
   9. 计量：meter / bar / stat / delta
   --------------------------------------------------------------------- */
.meter{
  --meter:var(--sodium);
  position:relative;
  height:8px;
  background:#0a0c0f;
  border:1px solid var(--line);
  overflow:hidden;
  border-radius:1px;
}
.meter::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background-image:repeating-linear-gradient(90deg,rgba(0,0,0,.55) 0 1px,transparent 1px 10px);
  opacity:.6;
}
.meter-fill{
  height:100%;
  width:0;
  background:linear-gradient(90deg,var(--meter),var(--sodium-2));
  box-shadow:0 0 10px rgba(226,163,62,.25);
  transition:width var(--t-slow) var(--ease);
}
.meter.thin{height:4px;}
.meter.thin::after{opacity:.35;}
.meter.good{--meter:var(--rad);}
.meter.good .meter-fill{background:linear-gradient(90deg,var(--rad),var(--rad-2));box-shadow:0 0 10px rgba(147,168,106,.25);}
.meter.bad{--meter:var(--alert);}
.meter.bad .meter-fill{background:linear-gradient(90deg,var(--alert),var(--alert-2));box-shadow:0 0 10px rgba(163,58,58,.3);}

.bar{
  position:relative;
  height:6px;
  background:#0a0c0f;
  border:1px solid var(--line);
  overflow:hidden;
  border-radius:1px;
}
.bar-fill{
  height:100%;
  width:0;
  background:var(--sodium);
  transition:width var(--t-slow) var(--ease);
}
.bar.good .bar-fill{background:var(--rad);}
.bar.bad .bar-fill{background:var(--alert);}
.bar.blue .bar-fill{background:var(--blue);}

.stat{
  display:flex;
  flex-direction:column;
  gap:1px;
  min-width:0;
}
.stat-label{
  color:var(--muted);
  font-size:var(--fs-micro);
  letter-spacing:.12em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.stat-value{
  color:var(--paper);
  font-family:var(--font-mono);
  font-size:18px;
  line-height:1.15;
  font-variant-numeric:tabular-nums;
}
.stat-value small{font-size:var(--fs-tiny);color:var(--muted);}
.stat.horizontal{flex-direction:row;align-items:baseline;justify-content:space-between;gap:8px;}

.delta{
  display:inline-flex;
  align-items:center;
  gap:3px;
  font-family:var(--font-mono);
  font-size:11.5px;
  font-variant-numeric:tabular-nums;
}
.delta::before{
  content:"";
  width:0;
  height:0;
  border-left:4px solid transparent;
  border-right:4px solid transparent;
}
.delta.up{color:var(--rad-2);}
.delta.up::before{border-bottom:6px solid currentColor;}
.delta.down{color:#e08a7c;}
.delta.down::before{border-top:6px solid currentColor;}

/* ---------------------------------------------------------------------
   10. 工具提示 / 空态
   --------------------------------------------------------------------- */
.tooltip{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.3em;
  max-width:100%;
  color:var(--paper-2);
  border-bottom:1px dashed rgba(226,163,62,.5);
  cursor:help;
}
.tooltip[data-tip]::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  z-index:90;
  transform:translateX(-50%) translateY(2px);
  min-width:150px;
  max-width:290px;
  padding:8px 10px;
  border:1px solid var(--line-strong);
  background:#12151a;
  color:var(--paper-2);
  font-size:var(--fs-tiny);
  line-height:1.6;
  letter-spacing:0;
  white-space:normal;
  text-align:left;
  box-shadow:0 12px 26px rgba(0,0,0,.65);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),visibility var(--t-fast);
}
.tooltip[data-tip]:hover::after,
.tooltip[data-tip]:focus-visible::after,
.tooltip[data-tip]:focus-within::after{
  opacity:1;
  visibility:visible;
  transform:translateX(-50%) translateY(0);
}

.empty,.empty-state{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:92px;
  padding:16px;
  border:1px dashed var(--line);
  color:var(--muted);
  font-size:var(--fs-small);
  text-align:center;
  background-color:rgba(231,221,200,.015);
  background-image:var(--halftone);
  background-size:6px 6px;
  background-blend-mode:overlay;
}
.empty b,.empty-state b{color:var(--paper-2);}

/* ---------------------------------------------------------------------
   11. 图标：.ico + .ico-<name>（mask + currentColor）
   契约 §16 全部图标均提供；尺寸默认 18，可加 .size-16/.size-20/.size-24
   --------------------------------------------------------------------- */
.ico{
  display:inline-block;
  flex:0 0 auto;
  width:18px;
  height:18px;
  vertical-align:-.18em;
  background-color:currentColor;
  -webkit-mask-repeat:no-repeat;
  mask-repeat:no-repeat;
  -webkit-mask-position:center;
  mask-position:center;
  -webkit-mask-size:contain;
  mask-size:contain;
  transition:opacity var(--t-fast) var(--ease),background-color var(--t-fast) var(--ease);
}
.ico.size-16{width:16px;height:16px;}
.ico.size-20{width:20px;height:20px;}
.ico.size-24{width:24px;height:24px;}
.ico.size-32{width:32px;height:32px;}
.ico.ico-food{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cellipse cx='12' cy='5.6' rx='4.6' ry='1.7'/%3E%3Cpath d='M7.4 5.6v11.6A3.2 3.2 0 0 0 10.6 20.4h2.8a3.2 3.2 0 0 0 3.2-3.2V5.6'/%3E%3Cpath d='M7.4 9.6h9.2'/%3E%3Cpath d='M10.4 13.2h3.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cellipse cx='12' cy='5.6' rx='4.6' ry='1.7'/%3E%3Cpath d='M7.4 5.6v11.6A3.2 3.2 0 0 0 10.6 20.4h2.8a3.2 3.2 0 0 0 3.2-3.2V5.6'/%3E%3Cpath d='M7.4 9.6h9.2'/%3E%3Cpath d='M10.4 13.2h3.2'/%3E%3C/svg%3E");}
.ico.ico-water{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.1c3.2 3.7 5.4 6.5 5.4 9.1a5.4 5.4 0 0 1-10.8 0c0-2.6 2.2-5.4 5.4-9.1z'/%3E%3Cpath d='M8.5 13.5c1 .9 2.2.9 3.5.1 1.3-.8 2.5-.8 3.5.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.1c3.2 3.7 5.4 6.5 5.4 9.1a5.4 5.4 0 0 1-10.8 0c0-2.6 2.2-5.4 5.4-9.1z'/%3E%3Cpath d='M8.5 13.5c1 .9 2.2.9 3.5.1 1.3-.8 2.5-.8 3.5.1'/%3E%3C/svg%3E");}
.ico.ico-med{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.4' y='3.4' width='17.2' height='17.2' rx='2.4'/%3E%3Cpath d='M12 8.2v7.6M8.2 12h7.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.4' y='3.4' width='17.2' height='17.2' rx='2.4'/%3E%3Cpath d='M12 8.2v7.6M8.2 12h7.6'/%3E%3C/svg%3E");}
.ico.ico-ammo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.2 20.6V10.6L12 3.8l2.8 6.8v10'/%3E%3Cpath d='M9.2 10.6h5.6'/%3E%3Cpath d='M9.2 16.4h5.6'/%3E%3Cpath d='M9.2 20.6h5.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.2 20.6V10.6L12 3.8l2.8 6.8v10'/%3E%3Cpath d='M9.2 10.6h5.6'/%3E%3Cpath d='M9.2 16.4h5.6'/%3E%3Cpath d='M9.2 20.6h5.6'/%3E%3C/svg%3E");}
.ico.ico-fuel{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.8 8.6h13.6v10.6a1.6 1.6 0 0 1-1.6 1.6H6.4a1.6 1.6 0 0 1-1.6-1.6z'/%3E%3Cpath d='M8 8.6V5.9c0-.9.7-1.6 1.6-1.6h4.8c.9 0 1.6.7 1.6 1.6v2.7'/%3E%3Cpath d='M15.4 3.4h2.4l1.2 3.4'/%3E%3Cpath d='M8.8 13.2h5.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.8 8.6h13.6v10.6a1.6 1.6 0 0 1-1.6 1.6H6.4a1.6 1.6 0 0 1-1.6-1.6z'/%3E%3Cpath d='M8 8.6V5.9c0-.9.7-1.6 1.6-1.6h4.8c.9 0 1.6.7 1.6 1.6v2.7'/%3E%3Cpath d='M15.4 3.4h2.4l1.2 3.4'/%3E%3Cpath d='M8.8 13.2h5.8'/%3E%3C/svg%3E");}
.ico.ico-part{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.4l1.5 1.7 2.2-.6.7 2.1 2.1.7-.6 2.2 1.7 1.5-1.7 1.5.6 2.2-2.1.7-.7 2.1-2.2-.6L12 20.6l-1.5-1.7-2.2.6-.7-2.1-2.1-.7.6-2.2L4.4 12l1.7-1.5-.6-2.2 2.1-.7.7-2.1 2.2.6z'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.4l1.5 1.7 2.2-.6.7 2.1 2.1.7-.6 2.2 1.7 1.5-1.7 1.5.6 2.2-2.1.7-.7 2.1-2.2-.6L12 20.6l-1.5-1.7-2.2.6-.7-2.1-2.1-.7.6-2.2L4.4 12l1.7-1.5-.6-2.2 2.1-.7.7-2.1 2.2.6z'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3C/svg%3E");}
.ico.ico-tool{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.9 4.1a4.6 4.6 0 0 0-4.2 6.3l-6.2 6.2a1.9 1.9 0 0 0 0 2.7l.2.2a1.9 1.9 0 0 0 2.7 0l6.2-6.2a4.6 4.6 0 0 0 5.7-6.1l-2.6 2.6-2.7-.7-.7-2.7z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.9 4.1a4.6 4.6 0 0 0-4.2 6.3l-6.2 6.2a1.9 1.9 0 0 0 0 2.7l.2.2a1.9 1.9 0 0 0 2.7 0l6.2-6.2a4.6 4.6 0 0 0 5.7-6.1l-2.6 2.6-2.7-.7-.7-2.7z'/%3E%3C/svg%3E");}
.ico.ico-lux{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7.1 4.2h9.8l3.2 5.5L12 20.8 3.9 9.7z'/%3E%3Cpath d='M3.9 9.7h16.2'/%3E%3Cpath d='M9 9.7 12 20.8l3-11.1'/%3E%3Cpath d='M7.1 4.2 9 9.7l3-5.5 3 5.5 1.9-5.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7.1 4.2h9.8l3.2 5.5L12 20.8 3.9 9.7z'/%3E%3Cpath d='M3.9 9.7h16.2'/%3E%3Cpath d='M9 9.7 12 20.8l3-11.1'/%3E%3Cpath d='M7.1 4.2 9 9.7l3-5.5 3 5.5 1.9-5.5'/%3E%3C/svg%3E");}
.ico.ico-contra{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.4 3.4h5.2M10 3.4v5.2L6.4 16a3.1 3.1 0 0 0 2.8 4.5h5.6a3.1 3.1 0 0 0 2.8-4.5L14 8.6V3.4'/%3E%3Cpath d='M8.1 14.4h7.8'/%3E%3Cpath d='M10.7 16.4l2.6 2.6M13.3 16.4l-2.6 2.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.4 3.4h5.2M10 3.4v5.2L6.4 16a3.1 3.1 0 0 0 2.8 4.5h5.6a3.1 3.1 0 0 0 2.8-4.5L14 8.6V3.4'/%3E%3Cpath d='M8.1 14.4h7.8'/%3E%3Cpath d='M10.7 16.4l2.6 2.6M13.3 16.4l-2.6 2.6'/%3E%3C/svg%3E");}
.ico.ico-intel{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.4 3.4h6.8L17 7.2v13.4H6.4z'/%3E%3Cpath d='M13.2 3.4v3.8H17'/%3E%3Cpath d='M9 10.2h5M9 13h3.6'/%3E%3Ccircle cx='15.4' cy='16.2' r='2.6'/%3E%3Cpath d='M17.3 18.1l2.1 2.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.4 3.4h6.8L17 7.2v13.4H6.4z'/%3E%3Cpath d='M13.2 3.4v3.8H17'/%3E%3Cpath d='M9 10.2h5M9 13h3.6'/%3E%3Ccircle cx='15.4' cy='16.2' r='2.6'/%3E%3Cpath d='M17.3 18.1l2.1 2.1'/%3E%3C/svg%3E");}
.ico.ico-quest{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.2 3.6h11.6v15.2l-2.9-1.9-2.9 1.9-2.9-1.9-2.9 1.9z'/%3E%3Cpath d='M9 8.2h6M9 11.6h6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6.2 3.6h11.6v15.2l-2.9-1.9-2.9 1.9-2.9-1.9-2.9 1.9z'/%3E%3Cpath d='M9 8.2h6M9 11.6h6'/%3E%3C/svg%3E");}
.ico.ico-scrip{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='6.4' width='18' height='11.2' rx='1.5'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3Cpath d='M6.4 9.4v5.2M17.6 9.4v5.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3' y='6.4' width='18' height='11.2' rx='1.5'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3Cpath d='M6.4 9.4v5.2M17.6 9.4v5.2'/%3E%3C/svg%3E");}
.ico.ico-parts{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.2 3.4l4.3 2.5v5L9.2 13.4 4.9 10.9v-5z'/%3E%3Ccircle cx='9.2' cy='8.4' r='1.7'/%3E%3Cpath d='M14.8 9.6l4.3 2.5v5l-4.3 2.5-4.3-2.5v-5z'/%3E%3Ccircle cx='14.8' cy='14.4' r='1.7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M9.2 3.4l4.3 2.5v5L9.2 13.4 4.9 10.9v-5z'/%3E%3Ccircle cx='9.2' cy='8.4' r='1.7'/%3E%3Cpath d='M14.8 9.6l4.3 2.5v5l-4.3 2.5-4.3-2.5v-5z'/%3E%3Ccircle cx='14.8' cy='14.4' r='1.7'/%3E%3C/svg%3E");}
.ico.ico-cargo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.2' y='5.2' width='17.6' height='13.6' rx='1'/%3E%3Cpath d='M3.2 9.6h17.6M3.2 14.4h17.6'/%3E%3Cpath d='M8.4 5.2v13.6M15.6 5.2v13.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.2' y='5.2' width='17.6' height='13.6' rx='1'/%3E%3Cpath d='M3.2 9.6h17.6M3.2 14.4h17.6'/%3E%3Cpath d='M8.4 5.2v13.6M15.6 5.2v13.6'/%3E%3C/svg%3E");}
.ico.ico-condition{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3 16.4h9.2V9H5.3A2.3 2.3 0 0 0 3 11.3z'/%3E%3Cpath d='M12.2 10.8h3.1l2.7 2.7v2.9h-5.8z'/%3E%3Ccircle cx='6.6' cy='17.8' r='1.8'/%3E%3Ccircle cx='15.6' cy='17.8' r='1.8'/%3E%3Cpath d='M16.7 6.4l1.7 1.7 3.1-3.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3 16.4h9.2V9H5.3A2.3 2.3 0 0 0 3 11.3z'/%3E%3Cpath d='M12.2 10.8h3.1l2.7 2.7v2.9h-5.8z'/%3E%3Ccircle cx='6.6' cy='17.8' r='1.8'/%3E%3Ccircle cx='15.6' cy='17.8' r='1.8'/%3E%3Cpath d='M16.7 6.4l1.7 1.7 3.1-3.1'/%3E%3C/svg%3E");}
.ico.ico-speed{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 16.8a8.2 8.2 0 1 1 16 0'/%3E%3Cpath d='M12 16.8l3.8-5'/%3E%3Cpath d='M4.4 20h15.2'/%3E%3Ccircle cx='12' cy='16.8' r='1.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 16.8a8.2 8.2 0 1 1 16 0'/%3E%3Cpath d='M12 16.8l3.8-5'/%3E%3Cpath d='M4.4 20h15.2'/%3E%3Ccircle cx='12' cy='16.8' r='1.3'/%3E%3C/svg%3E");}
.ico.ico-armor{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2l7.6 2.7v6.2c0 4.3-3.1 7.5-7.6 8.9-4.5-1.4-7.6-4.6-7.6-8.9V5.9z'/%3E%3Cpath d='M8.6 12l2.5 2.5 4.5-4.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2l7.6 2.7v6.2c0 4.3-3.1 7.5-7.6 8.9-4.5-1.4-7.6-4.6-7.6-8.9V5.9z'/%3E%3Cpath d='M8.6 12l2.5 2.5 4.5-4.8'/%3E%3C/svg%3E");}
.ico.ico-stealth{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M2.6 12S6 6.8 12 6.8 21.4 12 21.4 12 18 17.2 12 17.2 2.6 12 2.6 12z'/%3E%3Ccircle cx='12' cy='12' r='2.7'/%3E%3Cpath d='M4.3 19.7 19.7 4.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M2.6 12S6 6.8 12 6.8 21.4 12 21.4 12 18 17.2 12 17.2 2.6 12 2.6 12z'/%3E%3Ccircle cx='12' cy='12' r='2.7'/%3E%3Cpath d='M4.3 19.7 19.7 4.3'/%3E%3C/svg%3E");}
.ico.ico-firepower{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='7.4'/%3E%3Cpath d='M12 2.4v4.2M12 17.4v4.2M2.4 12h4.2M17.4 12h4.2'/%3E%3Ccircle cx='12' cy='12' r='1.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='7.4'/%3E%3Cpath d='M12 2.4v4.2M12 17.4v4.2M2.4 12h4.2M17.4 12h4.2'/%3E%3Ccircle cx='12' cy='12' r='1.9'/%3E%3C/svg%3E");}
.ico.ico-radio{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.4' y='9.4' width='12.6' height='9.6' rx='1.4'/%3E%3Cpath d='M6.2 12.6h4.2M6.2 15.4h4.2'/%3E%3Ccircle cx='13.4' cy='14' r='1.6'/%3E%3Cpath d='M14.6 9.4 19.8 4'/%3E%3Cpath d='M17.4 5.2a4 4 0 0 1 2.2 2M18.6 3a7 7 0 0 1 3 3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='3.4' y='9.4' width='12.6' height='9.6' rx='1.4'/%3E%3Cpath d='M6.2 12.6h4.2M6.2 15.4h4.2'/%3E%3Ccircle cx='13.4' cy='14' r='1.6'/%3E%3Cpath d='M14.6 9.4 19.8 4'/%3E%3Cpath d='M17.4 5.2a4 4 0 0 1 2.2 2M18.6 3a7 7 0 0 1 3 3'/%3E%3C/svg%3E");}
.ico.ico-map{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.2 6.4 9 4.3l6 2.1 5.8-2.1v13.3L15 19.7l-6-2.1-5.8 2.1z'/%3E%3Cpath d='M9 4.3v13.3M15 6.4v13.3'/%3E%3Cpath d='M5 12.8c1.8-1.6 3.4.9 5.2-.4 1.6-1.2 2.8.9 4.4.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.2 6.4 9 4.3l6 2.1 5.8-2.1v13.3L15 19.7l-6-2.1-5.8 2.1z'/%3E%3Cpath d='M9 4.3v13.3M15 6.4v13.3'/%3E%3Cpath d='M5 12.8c1.8-1.6 3.4.9 5.2-.4 1.6-1.2 2.8.9 4.4.2'/%3E%3C/svg%3E");}
.ico.ico-vehicle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M2.6 16.6v-5.1a2 2 0 0 1 2-2h6.3l2.1 2h6.3v5.1'/%3E%3Ccircle cx='6.9' cy='17.2' r='1.8'/%3E%3Ccircle cx='16.4' cy='17.2' r='1.8'/%3E%3Cpath d='M3.2 12.4h6.6M12.6 11.4v4.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M2.6 16.6v-5.1a2 2 0 0 1 2-2h6.3l2.1 2h6.3v5.1'/%3E%3Ccircle cx='6.9' cy='17.2' r='1.8'/%3E%3Ccircle cx='16.4' cy='17.2' r='1.8'/%3E%3Cpath d='M3.2 12.4h6.6M12.6 11.4v4.4'/%3E%3C/svg%3E");}
.ico.ico-task{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='4.8' y='4.4' width='14.4' height='16.2' rx='1.5'/%3E%3Cpath d='M9 4.4V3.1h6v1.3'/%3E%3Cpath d='M8.4 9.6h7.2M8.4 13h7.2M8.4 16.4h3.6'/%3E%3Cpath d='M14.6 17.4l1.5 1.5 2.7-2.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='4.8' y='4.4' width='14.4' height='16.2' rx='1.5'/%3E%3Cpath d='M9 4.4V3.1h6v1.3'/%3E%3Cpath d='M8.4 9.6h7.2M8.4 13h7.2M8.4 16.4h3.6'/%3E%3Cpath d='M14.6 17.4l1.5 1.5 2.7-2.9'/%3E%3C/svg%3E");}
.ico.ico-faction{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6 3.4v17.2M6 4.6h11.4l-2.7 4.1 2.7 4.1H6z'/%3E%3Cpath d='M9 20.6h6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6 3.4v17.2M6 4.6h11.4l-2.7 4.1 2.7 4.1H6z'/%3E%3Cpath d='M9 20.6h6'/%3E%3C/svg%3E");}
.ico.ico-journal{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.4 5.4a2 2 0 0 1 2-2h11.2v15.2H7.4a2 2 0 0 0-2 2z'/%3E%3Cpath d='M5.4 18.6V5.4'/%3E%3Cpath d='M9 8.2h6.2M9 11.8h6.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.4 5.4a2 2 0 0 1 2-2h11.2v15.2H7.4a2 2 0 0 0-2 2z'/%3E%3Cpath d='M5.4 18.6V5.4'/%3E%3Cpath d='M9 8.2h6.2M9 11.8h6.2'/%3E%3C/svg%3E");}
.ico.ico-settings{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 7h5.4M14 7h6M4 12h8.4M17 12h3M4 17h2.6M11 17h9'/%3E%3Ccircle cx='11.7' cy='7' r='2'/%3E%3Ccircle cx='15' cy='12' r='2'/%3E%3Ccircle cx='8.4' cy='17' r='2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 7h5.4M14 7h6M4 12h8.4M17 12h3M4 17h2.6M11 17h9'/%3E%3Ccircle cx='11.7' cy='7' r='2'/%3E%3Ccircle cx='15' cy='12' r='2'/%3E%3Ccircle cx='8.4' cy='17' r='2'/%3E%3C/svg%3E");}
.ico.ico-close{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E");}
.ico.ico-arrow-left{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M19.2 12H4.8M10.8 6l-6 6 6 6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M19.2 12H4.8M10.8 6l-6 6 6 6'/%3E%3C/svg%3E");}
.ico.ico-arrow-right{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.8 12h14.4M13.2 6l6 6-6 6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.8 12h14.4M13.2 6l6 6-6 6'/%3E%3C/svg%3E");}
.ico.ico-up{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.8 14.4 12 8.2l6.2 6.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.8 14.4 12 8.2l6.2 6.2'/%3E%3C/svg%3E");}
.ico.ico-down{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.8 9.6 12 15.8l6.2-6.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M5.8 9.6 12 15.8l6.2-6.2'/%3E%3C/svg%3E");}
.ico.ico-warning{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.4 21.4 20H2.6z'/%3E%3Cpath d='M12 9.6v4.3'/%3E%3Cpath d='M12 16.9v.01'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.4 21.4 20H2.6z'/%3E%3Cpath d='M12 9.6v4.3'/%3E%3Cpath d='M12 16.9v.01'/%3E%3C/svg%3E");}
.ico.ico-skull{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2c-4.5 0-7.5 3.1-7.5 7.1 0 2.2 1 3.5 2.1 4.3.6.4.8 1 .8 1.7v1.5h9.2v-1.5c0-.7.2-1.3.8-1.7 1.1-.8 2.1-2.1 2.1-4.3 0-4-3-7.1-7.5-7.1z'/%3E%3Ccircle cx='9.2' cy='11' r='1.6'/%3E%3Ccircle cx='14.8' cy='11' r='1.6'/%3E%3Cpath d='M10.4 15.2 12 13.8l1.6 1.4'/%3E%3Cpath d='M10.4 17.8v2.6M13.6 17.8v2.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2c-4.5 0-7.5 3.1-7.5 7.1 0 2.2 1 3.5 2.1 4.3.6.4.8 1 .8 1.7v1.5h9.2v-1.5c0-.7.2-1.3.8-1.7 1.1-.8 2.1-2.1 2.1-4.3 0-4-3-7.1-7.5-7.1z'/%3E%3Ccircle cx='9.2' cy='11' r='1.6'/%3E%3Ccircle cx='14.8' cy='11' r='1.6'/%3E%3Cpath d='M10.4 15.2 12 13.8l1.6 1.4'/%3E%3Cpath d='M10.4 17.8v2.6M13.6 17.8v2.6'/%3E%3C/svg%3E");}
.ico.ico-radiation{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cg fill='currentColor' stroke='none'%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z'/%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z' transform='rotate(120 12 12)'/%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z' transform='rotate(240 12 12)'/%3E%3Ccircle cx='12' cy='12' r='1.7'/%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cg fill='currentColor' stroke='none'%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z'/%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z' transform='rotate(120 12 12)'/%3E%3Cpath d='M12 3.1 16.2 9.9H7.8z' transform='rotate(240 12 12)'/%3E%3Ccircle cx='12' cy='12' r='1.7'/%3E%3C/g%3E%3C/svg%3E");}
.ico.ico-infection{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='4.9'/%3E%3Cpath d='M12 3.4v3.7M12 16.9v3.7M3.4 12h3.7M16.9 12h3.7M6 6l2.6 2.6M15.4 15.4 18 18M18 6l-2.6 2.6M8.6 15.4 6 18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='4.9'/%3E%3Cpath d='M12 3.4v3.7M12 16.9v3.7M3.4 12h3.7M16.9 12h3.7M6 6l2.6 2.6M15.4 15.4 18 18M18 6l-2.6 2.6M8.6 15.4 6 18'/%3E%3C/svg%3E");}
.ico.ico-health{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 20.6 4.7 13.3a4.7 4.7 0 0 1 6.6-6.6l.7.7.7-.7a4.7 4.7 0 0 1 6.6 6.6z'/%3E%3Cpath d='M7.4 11.4h3l1.2-2 1.8 4 1.3-2h2.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 20.6 4.7 13.3a4.7 4.7 0 0 1 6.6-6.6l.7.7.7-.7a4.7 4.7 0 0 1 6.6 6.6z'/%3E%3Cpath d='M7.4 11.4h3l1.2-2 1.8 4 1.3-2h2.9'/%3E%3C/svg%3E");}
.ico.ico-camp{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 4.2 21 19.4H3z'/%3E%3Cpath d='M12 8.6 16.4 19.4M12 8.6 7.6 19.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 4.2 21 19.4H3z'/%3E%3Cpath d='M12 8.6 16.4 19.4M12 8.6 7.6 19.4'/%3E%3C/svg%3E");}
.ico.ico-travel{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='8.2'/%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M12 3.8v3M12 17.2v3M3.8 12h3M17.2 12h3M6.2 6.2 8.3 8.3M15.7 15.7l2.1 2.1M17.8 6.2 15.7 8.3M8.3 15.7l-2.1 2.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='8.2'/%3E%3Ccircle cx='12' cy='12' r='3.2'/%3E%3Cpath d='M12 3.8v3M12 17.2v3M3.8 12h3M17.2 12h3M6.2 6.2 8.3 8.3M15.7 15.7l2.1 2.1M17.8 6.2 15.7 8.3M8.3 15.7l-2.1 2.1'/%3E%3C/svg%3E");}
.ico.ico-trade{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 8.4h13.2M13.4 4.8l3.8 3.6-3.8 3.6'/%3E%3Cpath d='M20 15.6H6.8M10.6 12l-3.8 3.6L10.6 19.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4 8.4h13.2M13.4 4.8l3.8 3.6-3.8 3.6'/%3E%3Cpath d='M20 15.6H6.8M10.6 12l-3.8 3.6L10.6 19.2'/%3E%3C/svg%3E");}
.ico.ico-service{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M20 12a8 8 0 1 1-3.2-6.4'/%3E%3Cpath d='M20 4.6V9h-4.4'/%3E%3Cpath d='M12 8.6v6.8M8.6 12h6.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M20 12a8 8 0 1 1-3.2-6.4'/%3E%3Cpath d='M20 4.6V9h-4.4'/%3E%3Cpath d='M12 8.6v6.8M8.6 12h6.8'/%3E%3C/svg%3E");}
.ico.ico-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.4 12.6 9.3 17.5 19.6 6.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M4.4 12.6 9.3 17.5 19.6 6.4'/%3E%3C/svg%3E");}
.ico.ico-lock{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='4.4' y='10.4' width='15.2' height='10.2' rx='1.7'/%3E%3Cpath d='M7.9 10.4V7.7a4.1 4.1 0 0 1 8.2 0v2.7'/%3E%3Cpath d='M12 14.4v2.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Crect x='4.4' y='10.4' width='15.2' height='10.2' rx='1.7'/%3E%3Cpath d='M7.9 10.4V7.7a4.1 4.1 0 0 1 8.2 0v2.7'/%3E%3Cpath d='M12 14.4v2.6'/%3E%3C/svg%3E");}
.ico.ico-star{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2l2.8 5.6 6.2.9-4.5 4.4 1.1 6.2L12 17.4l-5.6 2.9 1.1-6.2L3 9.7l6.2-.9z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M12 3.2l2.8 5.6 6.2.9-4.5 4.4 1.1 6.2L12 17.4l-5.6 2.9 1.1-6.2L3 9.7l6.2-.9z'/%3E%3C/svg%3E");}
.ico.ico-horde{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='8' cy='7.4' r='1.9'/%3E%3Cpath d='M8 9.5v4.7M8 14.2 6.3 18M8 14.2 9.7 18M6.2 11.2 8 10.2l1.8 1'/%3E%3Ccircle cx='15.8' cy='8.2' r='1.6'/%3E%3Cpath d='M15.8 10v4.1M15.8 14.1l-1.5 3.4M15.8 14.1l1.5 3.4M14.4 11.7l1.4-.8 1.4.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='8' cy='7.4' r='1.9'/%3E%3Cpath d='M8 9.5v4.7M8 14.2 6.3 18M8 14.2 9.7 18M6.2 11.2 8 10.2l1.8 1'/%3E%3Ccircle cx='15.8' cy='8.2' r='1.6'/%3E%3Cpath d='M15.8 10v4.1M15.8 14.1l-1.5 3.4M15.8 14.1l1.5 3.4M14.4 11.7l1.4-.8 1.4.8'/%3E%3C/svg%3E");}
.ico.ico-human{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='7.6' r='3.1'/%3E%3Cpath d='M5.4 20.2c0-3.7 2.9-6.3 6.6-6.3s6.6 2.6 6.6 6.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Ccircle cx='12' cy='7.6' r='3.1'/%3E%3Cpath d='M5.4 20.2c0-3.7 2.9-6.3 6.6-6.3s6.6 2.6 6.6 6.3'/%3E%3C/svg%3E");}
.ico.ico-mutant{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7.9 8.4a3.3 3.3 0 0 1 6.6 0c0 1.9-1.5 3.3-3.3 3.3S7.9 10.3 7.9 8.4z'/%3E%3Cpath d='M8.4 6.1 6.4 3.8M13.9 6.1 16 3.8'/%3E%3Cpath d='M11.2 11.6v4.3M11.2 15.9 8.9 20.2M11.2 15.9l2.4 4.3M8.7 12.5 11.2 13.4l2.7-.9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M7.9 8.4a3.3 3.3 0 0 1 6.6 0c0 1.9-1.5 3.3-3.3 3.3S7.9 10.3 7.9 8.4z'/%3E%3Cpath d='M8.4 6.1 6.4 3.8M13.9 6.1 16 3.8'/%3E%3Cpath d='M11.2 11.6v4.3M11.2 15.9 8.9 20.2M11.2 15.9l2.4 4.3M8.7 12.5 11.2 13.4l2.7-.9'/%3E%3C/svg%3E");}
.ico.ico-road{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M8.6 21 10.9 4.6h2.2L15.4 21z'/%3E%3Cpath d='M12 7.4v2.7M12 12.8v2.7M12 18.4v1.6'/%3E%3Cpath d='M3 21h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M8.6 21 10.9 4.6h2.2L15.4 21z'/%3E%3Cpath d='M12 7.4v2.7M12 12.8v2.7M12 18.4v1.6'/%3E%3Cpath d='M3 21h18'/%3E%3C/svg%3E");}

/* 通用 .icon：可放 <i class="ico"> 或内联 <svg>，也可放 .ico 元素 */
.icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:18px;
  height:18px;
  flex:0 0 auto;
  color:inherit;
  line-height:0;
}
.icon svg,.icon img,.icon .ico{width:100%;height:100%;display:block;}

/* 资源图标按语义着色（HUD 芯片 / 物品行通用） */
.hud-chip .ico-scrip{color:var(--sodium);}
.hud-chip .ico-fuel{color:var(--rust-light);}
.hud-chip .ico-water{color:var(--blue-2);}
.hud-chip .ico-food{color:var(--rad-2);}
.hud-chip .ico-med{color:#d98a7a;}
.hud-chip .ico-parts{color:#b9ad92;}
.hud-chip .ico-condition{color:var(--paper-3);}
.hud-chip .ico-ammo{color:var(--paper-3);}
.hud-chip .ico-cargo{color:var(--f-militia);}

/* ---------------------------------------------------------------------
   12. 阶段/天气的细节修饰（破败递进）
   --------------------------------------------------------------------- */
body[data-era="2"] .panel{background-image:linear-gradient(180deg,rgba(255,255,255,.012),transparent 40%);}
body[data-era="3"] .panel{
  border-color:rgba(231,221,200,.10);
  background-image:linear-gradient(180deg,rgba(163,58,58,.045),transparent 45%);
}
body[data-era="3"] .panel-head::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:repeating-linear-gradient(90deg,rgba(163,58,58,.5) 0 12px,transparent 12px 22px);
  opacity:.5;
}
body[data-era="3"] .topbar{border-bottom-color:rgba(163,58,58,.35);}

/* ---------------------------------------------------------------------
   13. 动效降级：系统偏好 + body.reduced-motion
   --------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .fx-grain{animation:none;}
}
body.reduced-motion *,
body.reduced-motion *::before,
body.reduced-motion *::after{
  animation-duration:.001ms !important;
  animation-iteration-count:1 !important;
  transition-duration:.001ms !important;
}

/* ---------------------------------------------------------------------
   14. 关键帧
   --------------------------------------------------------------------- */
@keyframes grainShift{
  0%{transform:translate3d(0,0,0);}
  20%{transform:translate3d(-6px,4px,0);}
  40%{transform:translate3d(4px,-5px,0);}
  60%{transform:translate3d(-3px,-3px,0);}
  80%{transform:translate3d(5px,5px,0);}
  100%{transform:translate3d(0,0,0);}
}
@keyframes fxFlash{
  0%{opacity:0;}
  12%{opacity:.55;}
  100%{opacity:0;}
}
@keyframes fxShake{
  0%,100%{transform:translate3d(0,0,0);}
  15%{transform:translate3d(-5px,2px,0);}
  30%{transform:translate3d(4px,-3px,0);}
  45%{transform:translate3d(-3px,-1px,0);}
  60%{transform:translate3d(3px,2px,0);}
  80%{transform:translate3d(-2px,1px,0);}
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(6px);}
  to{opacity:1;transform:translateY(0);}
}
@keyframes rvPulse{
  0%,100%{filter:drop-shadow(0 0 2px rgba(226,163,62,.55));}
  50%{filter:drop-shadow(0 0 9px rgba(226,163,62,.95));}
}
@keyframes dmgFloat{
  0%{opacity:0;transform:translateY(6px) scale(.9);}
  18%{opacity:1;transform:translateY(0) scale(1.06);}
  100%{opacity:0;transform:translateY(-32px) scale(1);}
}

/* 扩展图标（JS 实际使用、契约 §16 清单外；作为补充，不改名） */
.ico.ico-repair{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.7 3.9a4.3 4.3 0 0 0-3.9 6l-5.9 5.9a1.9 1.9 0 0 0 0 2.7l.6.6a1.9 1.9 0 0 0 2.7 0l5.9-5.9a4.3 4.3 0 0 0 5.4-5.6l-2.5 2.5-2.6-.7-.7-2.6z'/%3E%3Cpath d='M17.4 16.6l1.9 1.9M19.8 16.2l-2.2 2.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M14.7 3.9a4.3 4.3 0 0 0-3.9 6l-5.9 5.9a1.9 1.9 0 0 0 0 2.7l.6.6a1.9 1.9 0 0 0 2.7 0l5.9-5.9a4.3 4.3 0 0 0 5.4-5.6l-2.5 2.5-2.6-.7-.7-2.6z'/%3E%3Cpath d='M17.4 16.6l1.9 1.9M19.8 16.2l-2.2 2.2'/%3E%3C/svg%3E");}
.ico.ico-misc{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.4 7.6 12 3.6l8.6 4v8.8L12 20.4 3.4 16.4z'/%3E%3Cpath d='M3.4 7.6 12 11.6l8.6-4M12 11.6v8.8'/%3E%3Cpath d='M7.2 5.6 12 8l-2.4 1.2M16.8 5.6 12 8l2.4 1.2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' fill='none' stroke='currentColor' stroke-width='1.65' stroke-linecap='round' stroke-linejoin='round' aria-hidden='true'%3E%3Cpath d='M3.4 7.6 12 3.6l8.6 4v8.8L12 20.4 3.4 16.4z'/%3E%3Cpath d='M3.4 7.6 12 11.6l8.6-4M12 11.6v8.8'/%3E%3Cpath d='M7.2 5.6 12 8l-2.4 1.2M16.8 5.6 12 8l2.4 1.2'/%3E%3C/svg%3E");}
.ico.ico-dot{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='currentColor'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24' aria-hidden='true'%3E%3Ccircle cx='12' cy='12' r='4.6' fill='currentColor'/%3E%3C/svg%3E");}
