/* tour.css — 巡展指挥舱：大屏态势 HUD（沿用主站 loam / gold / cinnabar 血脉，改为舱内仪表语言）
   舱内风格与底图色调全部走 CSS 变量：body[data-hud] 换主题，body[data-map] 换底图，
   body[data-sweep|scan|mesh|reticle]="0" 关动效，--map-b 控底图明度。默认值即「洛金」舱。 */
:root{
  --hud-bg:#0a0d0e;
  --hud-panel:linear-gradient(178deg,rgba(27,32,33,.94),rgba(14,17,18,.96));
  --hud-line:rgba(200,162,76,.26);
  --hud-line2:rgba(233,220,198,.1);
  --hud-ink:#e9dcc6;
  --hud-dim:rgba(233,220,198,.56);
  --hud-gold:#c8a24c;
  --hud-hot:#d8542f;
  --hud-jade:#63b7a3;
  --hud-mono:ui-monospace,"Cascadia Mono",Consolas,"Courier New",monospace;
  --hud-bevel:12px;

  /* 舱体面层 */
  --hud-bgimg:radial-gradient(120% 90% at 50% -10%,#1a2022 0%,transparent 60%),
    radial-gradient(80% 60% at 8% 100%,rgba(179,57,31,.16),transparent 60%),
    radial-gradient(70% 60% at 96% 10%,rgba(63,107,90,.15),transparent 60%),#0a0d0e;
  --top-bg:linear-gradient(180deg,rgba(24,29,30,.95),rgba(12,15,16,.7));
  --rail-bg:linear-gradient(180deg,rgba(18,22,23,.9),rgba(10,13,14,.75));
  --stage-bg:#0d1113;
  --stage-line:rgba(200,162,76,.3);
  --tgt-bg:linear-gradient(100deg,rgba(12,15,16,.94),rgba(12,15,16,.6));
  --cell-bg:rgba(12,15,16,.7);
  --chip-bg:rgba(10,13,14,.66);
  --head-bg:linear-gradient(100deg,rgba(216,84,47,.14),transparent 70%);
  --btn-bg:linear-gradient(180deg,rgba(44,50,50,.92),rgba(20,24,25,.92));
  --btn-on:linear-gradient(180deg,var(--hud-hot),#8d2b14);
  --quote-bg:linear-gradient(180deg,rgba(200,162,76,.1),rgba(200,162,76,.03));
  --cur-bg:linear-gradient(90deg,rgba(216,84,47,.3),rgba(200,162,76,.1));

  /* 覆盖层与仪表着色 */
  --mesh-a:rgba(200,162,76,.055);
  --mesh-b:rgba(233,220,198,.035);
  --sweep-a:rgba(99,183,163,.22);
  --sweep-b:rgba(99,183,163,.05);
  --scan-a:rgba(200,162,76,.11);
  --scan-b:rgba(200,162,76,.3);
  --ring-a:rgba(200,162,76,.65);
  --ring-b:rgba(99,183,163,.75);
  --dia:rgba(216,84,47,.32);
  --hot-glow:rgba(216,84,47,.6);

  /* 底图色调 */
  --map-filter:invert(1) sepia(.5) saturate(1.05) hue-rotate(-14deg) contrast(1.16);
  --map-b:.6;
}

/* ---------- 舱内主题 ---------- */
body[data-hud="jade"]{
  --hud-bg:#04100e;
  --hud-panel:linear-gradient(178deg,rgba(16,38,35,.94),rgba(7,19,18,.96));
  --hud-line:rgba(88,195,156,.28);
  --hud-line2:rgba(220,236,228,.1);
  --hud-ink:#dcece4;
  --hud-dim:rgba(220,236,228,.56);
  --hud-gold:#58c39c;
  --hud-hot:#e0784a;
  --hud-jade:#7fd6c4;
  --hud-bgimg:radial-gradient(120% 90% at 50% -10%,#0d2b27 0%,transparent 60%),
    radial-gradient(80% 60% at 8% 100%,rgba(224,120,74,.14),transparent 60%),
    radial-gradient(70% 60% at 96% 10%,rgba(88,195,156,.18),transparent 60%),#04100e;
  --top-bg:linear-gradient(180deg,rgba(16,42,38,.95),rgba(6,18,17,.72));
  --rail-bg:linear-gradient(180deg,rgba(11,32,29,.9),rgba(5,16,15,.76));
  --stage-bg:#061413;
  --stage-line:rgba(88,195,156,.32);
  --tgt-bg:linear-gradient(100deg,rgba(6,20,19,.94),rgba(6,20,19,.6));
  --cell-bg:rgba(7,22,21,.7);
  --chip-bg:rgba(5,17,16,.66);
  --head-bg:linear-gradient(100deg,rgba(88,195,156,.16),transparent 70%);
  --btn-bg:linear-gradient(180deg,rgba(24,58,53,.92),rgba(9,26,24,.92));
  --btn-on:linear-gradient(180deg,var(--hud-hot),#7d3413);
  --quote-bg:linear-gradient(180deg,rgba(88,195,156,.11),rgba(88,195,156,.03));
  --cur-bg:linear-gradient(90deg,rgba(88,195,156,.32),rgba(127,214,196,.1));
  --mesh-a:rgba(88,195,156,.06);
  --mesh-b:rgba(220,236,228,.032);
  --sweep-a:rgba(127,214,196,.24);
  --sweep-b:rgba(127,214,196,.05);
  --scan-a:rgba(88,195,156,.1);
  --scan-b:rgba(88,195,156,.28);
  --ring-a:rgba(88,195,156,.66);
  --ring-b:rgba(127,214,196,.75);
  --dia:rgba(224,120,74,.32);
  --hot-glow:rgba(224,120,74,.6);
}
body[data-hud="loess"]{
  --hud-bg:#120d07;
  --hud-panel:linear-gradient(178deg,rgba(46,35,22,.94),rgba(22,16,10,.96));
  --hud-line:rgba(214,167,96,.3);
  --hud-line2:rgba(240,226,200,.11);
  --hud-ink:#f0e2c8;
  --hud-dim:rgba(240,226,200,.58);
  --hud-gold:#d6a760;
  --hud-hot:#b4472a;
  --hud-jade:#9aab6f;
  --hud-bgimg:radial-gradient(120% 90% at 50% -10%,#3a2b18 0%,transparent 62%),
    radial-gradient(80% 60% at 8% 100%,rgba(180,71,42,.18),transparent 60%),
    radial-gradient(70% 60% at 96% 10%,rgba(154,171,111,.14),transparent 60%),#120d07;
  --top-bg:linear-gradient(180deg,rgba(52,39,24,.95),rgba(26,19,11,.72));
  --rail-bg:linear-gradient(180deg,rgba(38,28,17,.9),rgba(20,14,8,.76));
  --stage-bg:#171108;
  --stage-line:rgba(214,167,96,.34);
  --tgt-bg:linear-gradient(100deg,rgba(24,17,9,.94),rgba(24,17,9,.6));
  --cell-bg:rgba(26,19,11,.72);
  --chip-bg:rgba(20,14,8,.66);
  --head-bg:linear-gradient(100deg,rgba(180,71,42,.18),transparent 70%);
  --btn-bg:linear-gradient(180deg,rgba(64,48,29,.92),rgba(28,20,12,.92));
  --btn-on:linear-gradient(180deg,var(--hud-hot),#5f1f0f);
  --quote-bg:linear-gradient(180deg,rgba(214,167,96,.13),rgba(214,167,96,.04));
  --cur-bg:linear-gradient(90deg,rgba(180,71,42,.34),rgba(214,167,96,.12));
  --mesh-a:rgba(214,167,96,.07);
  --mesh-b:rgba(240,226,200,.04);
  --sweep-a:rgba(154,171,111,.22);
  --sweep-b:rgba(154,171,111,.05);
  --scan-a:rgba(214,167,96,.12);
  --scan-b:rgba(214,167,96,.32);
  --ring-a:rgba(214,167,96,.68);
  --ring-b:rgba(154,171,111,.75);
  --dia:rgba(180,71,42,.34);
  --hot-glow:rgba(180,71,42,.62);
}
body[data-hud="void"]{
  --hud-bg:#04060d;
  --hud-panel:linear-gradient(178deg,rgba(20,26,45,.94),rgba(8,11,21,.96));
  --hud-line:rgba(138,165,232,.3);
  --hud-line2:rgba(223,230,245,.11);
  --hud-ink:#dfe6f5;
  --hud-dim:rgba(223,230,245,.56);
  --hud-gold:#8aa5e8;
  --hud-hot:#e05a7a;
  --hud-jade:#6fd0d8;
  --hud-bgimg:radial-gradient(120% 90% at 50% -10%,#16203c 0%,transparent 62%),
    radial-gradient(80% 60% at 8% 100%,rgba(224,90,122,.15),transparent 60%),
    radial-gradient(70% 60% at 96% 10%,rgba(111,208,216,.14),transparent 60%),#04060d;
  --top-bg:linear-gradient(180deg,rgba(23,30,52,.95),rgba(8,11,20,.72));
  --rail-bg:linear-gradient(180deg,rgba(16,21,38,.9),rgba(6,9,17,.76));
  --stage-bg:#070b16;
  --stage-line:rgba(138,165,232,.32);
  --tgt-bg:linear-gradient(100deg,rgba(8,11,21,.94),rgba(8,11,21,.6));
  --cell-bg:rgba(9,13,25,.72);
  --chip-bg:rgba(6,9,18,.66);
  --head-bg:linear-gradient(100deg,rgba(138,165,232,.17),transparent 70%);
  --btn-bg:linear-gradient(180deg,rgba(31,40,68,.92),rgba(11,15,27,.92));
  --btn-on:linear-gradient(180deg,var(--hud-hot),#7a1e3a);
  --quote-bg:linear-gradient(180deg,rgba(138,165,232,.12),rgba(138,165,232,.03));
  --cur-bg:linear-gradient(90deg,rgba(224,90,122,.3),rgba(138,165,232,.12));
  --mesh-a:rgba(138,165,232,.06);
  --mesh-b:rgba(223,230,245,.032);
  --sweep-a:rgba(111,208,216,.22);
  --sweep-b:rgba(111,208,216,.05);
  --scan-a:rgba(138,165,232,.11);
  --scan-b:rgba(138,165,232,.3);
  --ring-a:rgba(138,165,232,.66);
  --ring-b:rgba(111,208,216,.74);
  --dia:rgba(224,90,122,.32);
  --hot-glow:rgba(224,90,122,.6);
}

/* ---------- 底图色调（与舱内主题独立） ---------- */
body[data-map="dark"] { --map-filter:invert(1) sepia(.5) saturate(1.05) hue-rotate(-14deg) contrast(1.16) }
body[data-map="night"]{ --map-filter:invert(1) grayscale(.72) sepia(.34) hue-rotate(178deg) saturate(1.5) contrast(1.22) }
body[data-map="cyan"] { --map-filter:invert(1) grayscale(.3) sepia(.42) hue-rotate(122deg) saturate(1.9) contrast(1.18) }
body[data-map="terra"]{ --map-filter:invert(1) sepia(.92) saturate(.82) hue-rotate(-16deg) contrast(1.2) }
body[data-map="mono"] { --map-filter:invert(1) grayscale(.94) contrast(1.06) }
body[data-map="raw"]  { --map-filter:brightness(1) }

/* ---------- 动效开关 ---------- */
body[data-sweep="0"] .hud-sweep,
body[data-scan="0"] .hud-scan,
body[data-mesh="0"] .hud-mesh,
body[data-reticle="0"] .hud-reticle{display:none}

.hud-body{
  background:var(--hud-bgimg);
  color:var(--hud-ink);
  overflow:hidden;
}

/* ---------- 舱体骨架 ---------- */
.hud-shell{
  height:100vh; height:100dvh;
  display:grid; grid-template-rows:auto minmax(0,1fr) auto;
  gap:9px; padding:8px clamp(8px,1.2vw,14px) 9px;
}
.hud-main{display:grid;grid-template-columns:clamp(228px,19vw,292px) minmax(0,1fr) clamp(280px,23vw,348px);gap:9px;min-height:0}
.hud-col{display:flex;flex-direction:column;gap:9px;min-height:0;overflow:auto;overscroll-behavior:contain}
.hud-col>*{flex:none}
.hud-card-list{flex:1 1 auto;display:flex;flex-direction:column;min-height:56px}
.hud-col::-webkit-scrollbar{width:5px;height:5px}
.hud-col::-webkit-scrollbar-thumb{background:var(--hud-line);border-radius:3px}
.hud-col::-webkit-scrollbar-track{background:rgba(255,255,255,.04)}

/* ---------- 卡片：切角 + 双向角标 ---------- */
.hud-card{
  position:relative;padding:9px 11px 10px;
  background:var(--hud-panel);
  border:1px solid var(--hud-line2);
  box-shadow:0 14px 34px -22px #000, inset 0 1px 0 rgba(233,220,198,.05);
}
.hud-card::before,.hud-card::after{content:"";position:absolute;width:13px;height:13px;pointer-events:none}
.hud-card::before{left:-1px;top:-1px;border-left:2px solid var(--hud-gold);border-top:2px solid var(--hud-gold);opacity:.75}
.hud-card::after{right:-1px;bottom:-1px;border-right:2px solid var(--hud-gold);border-bottom:2px solid var(--hud-gold);opacity:.4}

.hud-h{display:flex;align-items:baseline;gap:8px;margin:0 0 9px;
  font-family:var(--serif);font-size:13.5px;letter-spacing:.2em;color:var(--hud-ink);font-weight:700}
.hud-h::before{content:"";width:4px;height:13px;background:var(--hud-hot);transform:skewX(-14deg);flex:none}
.hud-h b{margin-left:auto;font-family:var(--hud-mono);font-size:10.5px;font-weight:400;letter-spacing:.08em;color:var(--hud-gold);opacity:.9}

/* ---------- 顶栏 ---------- */
.hud-top{display:flex;align-items:center;gap:clamp(10px,1.8vw,26px);
  padding:7px 12px;background:var(--top-bg);
  border:1px solid var(--hud-line2);border-left:3px solid var(--hud-hot)}
.hud-id{display:flex;align-items:center;gap:9px;min-width:0}
.hud-seal{width:32px;height:32px;flex:none;display:grid;place-items:center;font-family:var(--serif);font-size:17px;
  color:#fff;background:linear-gradient(150deg,var(--hud-hot),#7d2412);box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
.hud-id-txt{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.hud-id-txt b{font-family:var(--serif);font-size:clamp(14px,1.45vw,19px);letter-spacing:.16em;white-space:nowrap}
.hud-id-txt i{font-style:normal;font-family:var(--hud-mono);font-size:9.5px;letter-spacing:.26em;color:rgba(233,220,198,.42)}

.hud-lamps{display:flex;gap:7px;margin-left:auto}
.lamp{display:flex;align-items:center;gap:5px;padding:4px 9px;font-size:11px;letter-spacing:.14em;
  color:rgba(233,220,198,.5);border:1px solid var(--hud-line2);background:rgba(255,255,255,.02);white-space:nowrap}
.lamp i{width:7px;height:7px;border-radius:50%;background:rgba(233,220,198,.22);box-shadow:none}
.lamp.on{color:var(--hud-ink);border-color:rgba(99,183,163,.4)}
.lamp.on i{background:var(--hud-jade);box-shadow:0 0 8px var(--hud-jade);animation:blip 2.2s ease-in-out infinite}
.lamp.warn.on{color:#f0c98a;border-color:rgba(200,162,76,.45)}
.lamp.warn.on i{background:var(--hud-gold);box-shadow:0 0 8px var(--hud-gold)}
.lamp.run.on{color:#ffb79a;border-color:rgba(216,84,47,.5)}
.lamp.run.on i{background:var(--hud-hot);box-shadow:0 0 9px var(--hud-hot);animation:blip 1s ease-in-out infinite}
@keyframes blip{0%,100%{opacity:1}50%{opacity:.32}}

.hud-clockbox{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.hud-clock{font-family:var(--hud-mono);font-size:clamp(15px,1.6vw,21px);letter-spacing:.1em;color:var(--hud-gold)}
.hud-date{font-family:var(--hud-mono);font-size:9.5px;letter-spacing:.2em;color:rgba(233,220,198,.4)}
.hud-nav{display:flex;gap:6px}
.hud-nav a{padding:5px 11px;font-size:12.5px;letter-spacing:.14em;color:var(--hud-dim);
  border:1px solid var(--hud-line2);background:rgba(255,255,255,.02)}
.hud-nav a:hover{color:#fff;border-color:var(--hud-gold);background:rgba(200,162,76,.14)}
.hud-nav .hud-exit{color:#ffb79a;border-color:rgba(216,84,47,.4)}

/* ---------- 中央态势屏 ---------- */
.hud-stage{position:relative;min-height:0;overflow:hidden;
  border:1px solid var(--stage-line);background:var(--stage-bg);
  box-shadow:0 20px 50px -26px #000, inset 0 0 60px rgba(0,0,0,.6)}
.hud-map{position:absolute;inset:0}
.hud-mapwait{position:absolute;inset:0;display:grid;place-content:center;gap:10px;z-index:4;
  font-size:12.5px;letter-spacing:.2em;color:rgba(233,220,198,.6)}
.hud-mapwait i{display:block;width:26px;height:26px;margin:0 auto;border:2px solid rgba(200,162,76,.25);
  border-top-color:var(--hud-gold);border-radius:50%;animation:spin 1s linear infinite}

/* 底图去色压暗：只作用于瓦片层，点位与 HUD 保持本色 */
.hud-map .tdt-tile-pane{filter:var(--map-filter) brightness(var(--map-b))}
.hud-map .tdt-control-container{filter:none}
.hud-map .tdt-control-copyright{background:var(--chip-bg);padding:1px 5px;font-size:10px;letter-spacing:.06em;opacity:.9}
.hud-map .tdt-marker-icon{filter:drop-shadow(0 0 5px rgba(0,0,0,.85))}
.hud-map .tdt-marker-icon.hud-hit{filter:drop-shadow(0 0 9px var(--hud-gold)) brightness(1.25)}

/* 覆盖层：探方网格 / 雷达扫描 / 扫描线 / 角标 */
.hud-mesh,.hud-sweep,.hud-scan,.hud-reticle,.hud-bracket,.hud-target,.hud-readout,.hud-console,.hud-viewctl{position:absolute;pointer-events:none}
.hud-mesh{inset:0;z-index:3;
  background-image:
    linear-gradient(var(--mesh-a) 1px,transparent 1px),
    linear-gradient(90deg,var(--mesh-a) 1px,transparent 1px),
    linear-gradient(var(--mesh-b) 1px,transparent 1px),
    linear-gradient(90deg,var(--mesh-b) 1px,transparent 1px);
  background-size:128px 128px,128px 128px,32px 32px,32px 32px;
  -webkit-mask-image:radial-gradient(120% 100% at 50% 50%,#000 40%,transparent 100%);
  mask-image:radial-gradient(120% 100% at 50% 50%,#000 40%,transparent 100%)}
.hud-sweep{left:50%;top:50%;width:150vmax;height:150vmax;margin:-75vmax 0 0 -75vmax;z-index:2;opacity:.5;
  background:conic-gradient(from 0deg,var(--sweep-a) 0deg,var(--sweep-b) 26deg,transparent 60deg,transparent 360deg);
  border-radius:50%;animation:spin 13s linear infinite;mix-blend-mode:screen}
.hud-scan{left:0;right:0;top:0;height:110px;z-index:3;opacity:.5;
  background:linear-gradient(180deg,transparent,var(--scan-a) 55%,var(--scan-b) 78%,transparent);
  animation:scanY 7.5s linear infinite}
@keyframes scanY{0%{transform:translateY(-120px)}100%{transform:translateY(calc(100% + 120px))}}
@keyframes spin{to{transform:rotate(360deg)}}

.hud-bracket{width:26px;height:26px;z-index:6;border:2px solid var(--hud-gold);opacity:.85}
.hud-bracket.b1{left:8px;top:8px;border-right:0;border-bottom:0}
.hud-bracket.b2{right:8px;top:8px;border-left:0;border-bottom:0}
.hud-bracket.b3{left:8px;bottom:8px;border-right:0;border-top:0}
.hud-bracket.b4{right:8px;bottom:8px;border-left:0;border-top:0}

/* 目标锁定：地图中心即当前站点 */
.hud-reticle{left:50%;top:50%;z-index:5;width:0;height:0;transition:opacity .4s}
.hud-reticle.idle{opacity:.22}
.hud-reticle i{position:absolute;background:linear-gradient(180deg,transparent,var(--hud-hot),transparent)}
.hud-reticle i.v{left:-1px;top:-64px;width:2px;height:128px}
.hud-reticle i.h{top:-1px;left:-64px;height:2px;width:128px;
  background:linear-gradient(90deg,transparent,var(--hud-hot),transparent)}
.hud-reticle .r{position:absolute;border-radius:50%}
.hud-reticle .r1{left:-52px;top:-52px;width:104px;height:104px;border:1px dashed var(--ring-a);animation:spin 16s linear infinite}
.hud-reticle .r2{left:-26px;top:-26px;width:52px;height:52px;border:1px dotted var(--ring-b);animation:spin 9s linear infinite reverse}
.hud-reticle::before{content:"";position:absolute;left:-42px;top:-42px;width:84px;height:84px;
  border:1px solid var(--dia);transform:rotate(45deg)}
.hud-reticle::after{content:"";position:absolute;left:-3px;top:-3px;width:6px;height:6px;background:var(--hud-hot);
  box-shadow:0 0 10px 3px var(--hot-glow)}

/* 目标名牌 */
.hud-target{left:14px;bottom:14px;z-index:6;max-width:min(62%,420px);padding:9px 13px 10px 15px;
  background:var(--tgt-bg);
  border:1px solid var(--hud-line);border-left:3px solid var(--hud-gold)}
.hud-target .tg-no{display:block;font-family:var(--hud-mono);font-size:10.5px;letter-spacing:.24em;color:var(--hud-gold)}
.hud-target b{display:block;font-family:var(--serif);font-size:clamp(19px,2.1vw,30px);line-height:1.25;letter-spacing:.06em;
  text-shadow:0 2px 14px rgba(0,0,0,.8)}
.hud-target i{display:block;font-style:normal;font-size:11.5px;letter-spacing:.1em;color:var(--hud-dim);margin-top:3px}

.hud-readout{right:14px;top:14px;z-index:6;font-family:var(--hud-mono);font-size:11px;letter-spacing:.13em;
  color:var(--hud-gold);background:var(--chip-bg);border:1px solid var(--hud-line2);padding:5px 9px;text-align:right}

/* 巡检日志 */
.hud-console{right:14px;bottom:14px;z-index:6;width:min(52%,340px);display:flex;flex-direction:column;gap:2px;
  font-family:var(--hud-mono);font-size:10.5px;letter-spacing:.06em;color:rgba(233,220,198,.5);text-align:right}
.hud-console span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-console span:first-child{color:var(--hud-jade)}
.hud-console span.fresh{animation:logIn .5s ease-out}
@keyframes logIn{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:none}}

.hud-viewctl{right:14px;top:52px;z-index:7;display:flex;flex-direction:column;gap:5px;pointer-events:auto}
.hud-viewctl .hud-btn{min-width:60px}

/* ---------- 按钮 / 芯片 ---------- */
.hud-btn{font:inherit;font-size:12px;letter-spacing:.16em;cursor:pointer;color:var(--hud-ink);
  padding:7px 13px;border:1px solid var(--hud-line);background:var(--btn-bg);
  transition:background .2s,color .2s,border-color .2s}
.hud-btn:hover{border-color:var(--hud-gold);background:rgba(200,162,76,.18);color:#fff}
.hud-btn.sm{padding:4px 9px;font-size:11px;letter-spacing:.1em}
.hud-btn.on,.hud-btn.play.on{background:var(--btn-on);border-color:var(--hud-hot);color:#fff}
.hud-chips{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.hud-chips .lbl{font-size:10px;letter-spacing:.16em;color:rgba(233,220,198,.4);margin-right:2px}
.hud-chips button{font:inherit;font-size:11px;letter-spacing:.08em;cursor:pointer;padding:3px 8px;color:var(--hud-dim);
  border:1px solid var(--hud-line2);background:rgba(255,255,255,.02)}
.hud-chips button:hover{color:var(--hud-ink);border-color:rgba(200,162,76,.45)}
.hud-chips button.on{color:#0d0f0f;background:var(--hud-gold);border-color:var(--hud-gold);font-weight:700}
.hud-sort{margin-top:5px}

/* ---------- 仪表：环 + KV + 层位条 ---------- */
.hud-donut{position:relative;width:88px;height:88px;margin:1px auto 8px}
/* 进度卡：环图与四格读数并排，省出纵向空间给序列列表 */
.hud-card.prog{display:grid;grid-template-columns:88px minmax(0,1fr);grid-template-areas:"h h" "d k";
  column-gap:10px;align-items:center}
.hud-card.prog .hud-h{grid-area:h}
.hud-card.prog .hud-donut{grid-area:d;margin:0;width:88px;height:88px}
.hud-card.prog .hud-kv{grid-area:k}
.hud-donut svg{width:100%;height:100%;transform:rotate(-90deg)}
.hud-donut .track{fill:none;stroke:rgba(233,220,198,.1);stroke-width:7}
.hud-donut .fill{fill:none;stroke:var(--hud-gold);stroke-width:7;stroke-linecap:butt;
  transition:stroke-dashoffset .6s ease;filter:drop-shadow(0 0 5px var(--hud-gold))}
.hud-donut .tick{stroke:var(--hud-line);stroke-width:1}
.hud-donut em{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-style:normal;line-height:1.1}
.hud-donut em b{display:block;font-family:var(--hud-mono);font-size:20px;color:var(--hud-ink)}
.hud-donut em i{display:block;font-style:normal;font-size:9.5px;letter-spacing:.2em;color:rgba(233,220,198,.45)}

.hud-kv{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0;background:var(--hud-line2)}
.hud-kv>div{background:var(--cell-bg);padding:6px 8px}
.hud-kv dt{font-size:10px;letter-spacing:.18em;color:rgba(233,220,198,.42)}
.hud-kv dd{margin:2px 0 0;font-family:var(--hud-mono);font-size:13.5px;color:var(--hud-gold);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-kv dd small{font-size:10px;color:var(--hud-dim);letter-spacing:.1em}

.hud-eras{display:flex;flex-direction:column;gap:4px;margin-bottom:9px}
.hud-eras .er{display:grid;grid-template-columns:auto 86px 1fr 34px;gap:7px;align-items:center;font-size:11.5px;cursor:pointer}
.hud-eras .er s{text-decoration:none}
.hud-eras .er i{width:9px;height:9px;background:var(--c);flex:none;box-shadow:0 0 6px var(--c)}
.hud-eras .er u{text-decoration:none;color:var(--hud-dim);white-space:nowrap;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis}
.hud-eras .er .bar{height:4px;background:rgba(233,220,198,.1);position:relative;overflow:hidden}
.hud-eras .er .bar span{position:absolute;inset:0 auto 0 0;width:0;background:var(--c);transition:width .5s ease;
  box-shadow:0 0 6px var(--c)}
.hud-eras .er em{font-style:normal;font-family:var(--hud-mono);font-size:10px;color:rgba(233,220,198,.5);text-align:right}
.hud-eras .er:hover u{color:var(--hud-ink)}
.hud-eras .er.off u,.hud-eras .er.off i,.hud-eras .er.off .bar{opacity:.28}

/* ---------- 序列列表 ---------- */
.hud-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1;min-height:0;margin-right:-4px}
.hud-list::-webkit-scrollbar{width:4px}
.hud-list::-webkit-scrollbar-thumb{background:var(--hud-line)}
.hud-list li{margin:0}
.hud-list button{display:flex;align-items:center;gap:7px;width:100%;text-align:left;font:inherit;cursor:pointer;
  padding:5px 7px;border:0;border-bottom:1px solid rgba(233,220,198,.06);background:transparent;color:var(--hud-dim)}
.hud-list button:hover{background:rgba(200,162,76,.12);color:var(--hud-ink)}
.hud-list .no{font-family:var(--hud-mono);font-size:10px;letter-spacing:.08em;color:var(--hud-gold);opacity:.8;width:19px;flex:none}
.hud-list .nm{flex:1;min-width:0;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hud-list .bp{font-family:var(--hud-mono);font-size:10px;color:rgba(233,220,198,.38);flex:none}
.hud-list .pip{width:3px;height:15px;background:var(--c);flex:none}
.hud-list li.done button{color:rgba(233,220,198,.4)}
.hud-list li.done .no::after{content:"✓";color:var(--hud-jade);margin-left:2px}
.hud-list li.cur button{background:var(--cur-bg);color:#fff;
  box-shadow:inset 2px 0 0 var(--hud-hot)}
.hud-list li.cur .nm{font-weight:700}

/* ---------- 右侧档案面板 ---------- */
.hud-right{padding:0}
/* 档案卡必须撑满右栏，内部才轮得到 .dsr-body 自己滚，底部操作条才会钉住 */
#hudDossier{flex:1 1 auto;min-height:0;display:flex}
.dsr{position:relative;background:var(--hud-panel);border:1px solid var(--hud-line2);height:100%;flex:1;min-width:0;
  display:flex;flex-direction:column;overflow:hidden}
.dsr-body{flex:1 1 auto;min-height:0;overflow:auto}
.dsr-body::-webkit-scrollbar,.dsr::-webkit-scrollbar{width:5px}
.dsr-body::-webkit-scrollbar-thumb,.dsr::-webkit-scrollbar-thumb{background:var(--hud-line)}
.dsr-head{padding:11px 12px 10px;border-bottom:1px solid var(--hud-line);background:var(--head-bg)}
.dsr-head .k{display:block;font-family:var(--hud-mono);font-size:10px;letter-spacing:.24em;color:var(--hud-gold)}
.dsr-head h3{font-family:var(--serif);font-size:clamp(18px,1.7vw,24px);line-height:1.3;margin:3px 0 4px;letter-spacing:.05em}
.dsr-head p{font-size:11.5px;color:var(--hud-dim);letter-spacing:.06em}
.dsr-img{position:relative;overflow:hidden;background:var(--stage-bg);border-bottom:1px solid var(--hud-line2)}
.dsr-img img{width:100%;height:clamp(112px,15vh,168px);object-fit:cover;filter:saturate(.86) contrast(1.06)}
.dsr-img figcaption{position:absolute;right:6px;bottom:5px;font-family:var(--hud-mono);font-size:9px;letter-spacing:.14em;
  color:var(--hud-dim);background:var(--chip-bg);padding:2px 6px}
.dsr-img .noimg{height:96px;display:grid;place-content:center;font-size:11px;letter-spacing:.2em;color:rgba(233,220,198,.3)}
.dsr-era{display:flex;align-items:center;gap:7px;padding:8px 12px;font-size:12px;letter-spacing:.1em;
  border-bottom:1px solid var(--hud-line2);color:var(--hud-ink)}
.dsr-era i{width:10px;height:10px;background:var(--c);flex:none;box-shadow:0 0 7px var(--c)}
.dsr-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0;padding:0;background:var(--hud-line2)}
.dsr-grid .c{background:var(--cell-bg);padding:7px 9px;min-width:0}
.dsr-grid .c.full{grid-column:1/-1}
.dsr-grid .c span{display:block;font-size:9.5px;letter-spacing:.18em;color:rgba(233,220,198,.4)}
.dsr-grid .c b{display:block;font-size:12.5px;font-weight:600;color:var(--hud-ink);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsr-sec{padding:10px 12px;border-top:1px dashed var(--hud-line)}
.dsr-sec h4{font-family:var(--serif);font-size:12.5px;letter-spacing:.2em;color:var(--hud-gold);margin:0 0 7px;font-weight:700}
.dsr-sec ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.dsr-sec li{position:relative;padding-left:15px;font-size:12.4px;line-height:1.65;color:rgba(233,220,198,.86)}
.dsr-sec li::before{content:"";position:absolute;left:2px;top:8px;width:6px;height:6px;background:var(--hud-jade);
  transform:rotate(45deg);opacity:.85}
.dsr-quote{font-family:var(--serif);font-size:13px;line-height:1.8;color:var(--hud-ink);background:var(--quote-bg);border-left:2px solid var(--hud-gold);padding:8px 10px}
.dsr-quote cite{display:block;margin-top:5px;font-style:normal;font-family:var(--hud-mono);font-size:10px;
  letter-spacing:.14em;color:var(--hud-gold);text-align:right}
.dsr-jiedu{font-size:12.6px;line-height:1.8;color:rgba(233,220,198,.78)}
.dsr-act{display:flex;gap:6px;padding:10px 12px 12px;border-top:1px solid var(--hud-line2);margin-top:auto;flex-wrap:wrap}
.dsr-act a,.dsr-act button{flex:1;min-width:88px;text-align:center}
.dsr-idle{padding:40px 18px;text-align:center;color:rgba(233,220,198,.42);font-size:12.5px;letter-spacing:.14em;line-height:2}
.dsr-idle b{display:block;font-family:var(--serif);font-size:17px;color:var(--hud-ink);letter-spacing:.2em;margin-bottom:8px}

/* ---------- 底栏：播控 + 年代轴 ---------- */
.hud-rail{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;
  padding:7px 11px;background:var(--rail-bg));
  border:1px solid var(--hud-line2);border-bottom:2px solid var(--hud-gold)}
.rail-ctl{display:flex;gap:5px;align-items:center}
.rail-ctl .hud-btn.play{min-width:112px}
.rail-axis{position:relative;height:46px;overflow:hidden}
.axis-grid{position:absolute;inset:0;
  background-image:linear-gradient(90deg,rgba(233,220,198,.07) 1px,transparent 1px);background-size:calc(100%/12) 100%}
.axis-ticks{position:absolute;left:0;right:0;top:9px;height:20px}
.axis-ticks b{position:absolute;transform:translateX(-50%);width:2px;height:9px;background:var(--c);opacity:.55;
  bottom:0;transition:height .3s,opacity .3s;cursor:pointer;pointer-events:auto}
.axis-ticks b:hover{opacity:1;height:14px}
.axis-ticks b.done{opacity:.85;height:13px}
.axis-ticks b.on{opacity:1;height:20px;background:var(--hud-hot);box-shadow:0 0 10px var(--hud-hot)}
.axis-beacon{position:absolute;top:2px;bottom:11px;width:1px;background:linear-gradient(180deg,transparent,var(--hud-gold));
  left:0;transition:left .6s cubic-bezier(.22,.61,.36,1)}
.axis-beacon::after{content:"";position:absolute;left:-4px;top:-3px;width:9px;height:9px;background:var(--hud-gold);
  transform:rotate(45deg)}
.axis-labels{position:absolute;left:0;right:0;bottom:0;height:11px;font-family:var(--hud-mono);font-size:9px;
  letter-spacing:.1em;color:rgba(233,220,198,.36)}
.axis-labels span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.rail-legend{grid-column:1/3;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:10.5px;
  letter-spacing:.08em;color:rgba(233,220,198,.42);border-top:1px solid rgba(233,220,198,.07);padding-top:5px}
.rail-legend em{display:flex;align-items:center;gap:4px;font-style:normal}
.rail-legend em i{width:8px;height:8px;background:var(--c);flex:none}
.rail-legend .hint{margin-left:auto;font-family:var(--hud-mono);font-size:9.5px;letter-spacing:.12em;opacity:.7}

/* ---------- 降级示意底图 ---------- */
.hud-fb{position:absolute;inset:0;display:grid;place-items:center}
.hud-fb svg{width:100%;height:100%}
.hud-fb .fb-world{transition:transform .95s cubic-bezier(.22,.61,.36,1)}
.hud-fb .fb-outline{fill:var(--sweep-b);stroke:var(--hud-gold);stroke-width:1.2;stroke-dasharray:6 4}
.hud-fb .fb-grid line{stroke:rgba(233,220,198,.06);stroke-width:1}
.hud-fb .fb-dot{cursor:pointer}
.hud-fb .fb-dot circle{transition:r .4s,opacity .4s}
.hud-fb .fb-dot.on circle{opacity:1;stroke:#fff;stroke-width:2}
.hud-fb .fb-note{position:absolute;left:0;right:0;bottom:8px;text-align:center;font-size:11px;letter-spacing:.14em;
  color:rgba(233,220,198,.4)}

/* ---------- 矮屏（笔电 768／1080 窗口）：整体压缩，保证序列可见 ---------- */
@media (min-width:901px) and (max-height:880px){
  .hud-card{padding:7px 10px 8px}
  .hud-h{margin-bottom:6px}
  .hud-card.prog{grid-template-columns:74px minmax(0,1fr)}
  .hud-card.prog .hud-donut{width:74px;height:74px}
  .hud-donut em b{font-size:17px}
  .hud-donut em i{font-size:8.5px}
  .hud-kv dt{font-size:9px}
  .hud-kv dd{font-size:12.5px}
  /* 矮屏：层位改为 2×4 色标栅格，把省下的竖向空间让给站点序列 */
  .hud-eras{display:grid;grid-template-columns:1fr 1fr;gap:3px 8px;margin-bottom:6px}
  .hud-eras .er{grid-template-columns:auto minmax(0,1fr) auto;gap:5px;font-size:10.5px}
  .hud-eras .er .bar{display:none}
  .hud-chips{gap:3px}
  .hud-chips button{padding:2px 7px;font-size:10.5px}
  .hud-card-list{min-height:132px}
  .hud-list button{padding:3px 6px}
  .rail-axis{height:38px}
}

/* ---------- 平板：收窄两栏 ---------- */
@media (max-width:1180px){
  .hud-main{grid-template-columns:clamp(200px,22vw,248px) minmax(0,1fr) clamp(240px,26vw,300px)}
  .hud-console{display:none}
  .hud-donut{width:88px;height:88px}
}

/* ---------- 手机 / 窄屏：纵向堆叠 + 底部常驻播控 ---------- */
@media (max-width:900px){
  .hud-body{overflow:auto}
  .hud-shell{height:auto;min-height:100dvh;grid-template-rows:auto auto auto;padding-bottom:104px;gap:8px}
  .hud-top{flex-wrap:wrap;gap:6px 8px}
  .hud-nav{order:3;margin-left:auto}
  .hud-nav a{display:none}
  .hud-nav a:first-child,.hud-nav .hud-exit{display:inline-block}
  .hud-clockbox{order:2;margin-left:auto}
  .hud-lamps{order:4;width:auto;margin:0}
  .hud-id-txt b{white-space:normal;letter-spacing:.1em}
  .hud-main{grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;gap:8px;overflow:visible}
  .hud-col{overflow:visible}
  .hud-stage{height:52vh;min-height:300px}
  .hud-right{order:2}
  .hud-left{order:4}
  .hud-card-list{order:5;flex:none}
  .hud-list{flex:none;max-height:236px}
  .dsr{height:auto;max-height:none;overflow:visible}
  .dsr-body{overflow:visible}
  .hud-target{max-width:74%}
  .hud-readout{font-size:10px;top:44px}
  .hud-viewctl{top:96px}
  .hud-rail{position:fixed;left:0;right:0;bottom:0;z-index:52;grid-template-columns:minmax(0,1fr);
    border-radius:0;background:var(--hud-bg);backdrop-filter:blur(8px);padding:8px 10px}
  .rail-ctl{justify-content:space-between}
  .rail-ctl .hud-btn.play{min-width:96px}
  .rail-axis{height:30px}
  .axis-ticks{top:4px;height:15px}
  .axis-labels{font-size:8px}
  .rail-legend{display:none}
  .dsr-grid{grid-template-columns:1fr 1fr}
}

@media (max-width:420px){
  .hud-stage{height:44vh;min-height:262px}
  .hud-target b{font-size:19px}
  .dsr-img img{height:124px}
}

/* ---------- 减少动态偏好 ---------- */
@media (prefers-reduced-motion:reduce){
  .hud-sweep,.hud-scan,.hud-reticle .r1,.hud-reticle .r2,.lamp i,.hud-mapwait i{animation:none!important}
  *{transition-duration:.01s!important}
}

/* ---------- 舱内风格调节面板 ---------- */
.hud-stylewrap{position:relative;flex:none}
.hud-stylepop{position:absolute;right:0;top:calc(100% + 9px);z-index:70;width:min(322px,88vw);
  padding:11px 12px 12px;cursor:auto;text-align:left;
  box-shadow:0 26px 60px -18px #000, 0 0 0 1px rgba(0,0,0,.5)}
.sp-h{display:flex;align-items:center;gap:8px;margin:11px 0 6px;font-size:10px;letter-spacing:.22em;color:var(--hud-dim)}
.sp-h:first-child{margin-top:0}
.sp-h::after{content:"";flex:1;height:1px;background:var(--hud-line2)}
.hud-stylepop .hud-chips{gap:5px}
.hud-stylepop .hud-chips button{display:flex;align-items:center;gap:5px;padding:4px 8px}
.hud-stylepop .hud-chips s{width:16px;height:10px;flex:none;border:1px solid rgba(0,0,0,.45);
  background:linear-gradient(135deg,var(--sw),var(--sw2));box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.sp-bright{display:flex;align-items:center;gap:9px;margin-top:2px}
.sp-bright input[type=range]{flex:1;min-width:0;accent-color:var(--hud-gold);height:16px}
.sp-bright em{font-style:normal;font-family:var(--hud-mono);font-size:10.5px;color:var(--hud-gold);min-width:34px;text-align:right}
.sp-fx{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;letter-spacing:.08em;color:var(--hud-dim)}
.sp-fx label{display:flex;align-items:center;gap:6px;cursor:pointer}
.sp-fx input{accent-color:var(--hud-gold);width:14px;height:14px;margin:0}
.sp-fx label:hover{color:var(--hud-ink)}
.sp-foot{display:flex;align-items:center;gap:8px;margin:11px -2px 0;padding-top:9px;border-top:1px solid var(--hud-line2);
  font-family:var(--hud-mono);font-size:9.5px;letter-spacing:.14em;color:rgba(233,220,198,.4)}
.sp-foot button{margin-left:auto;font:inherit;font-size:10px;letter-spacing:.14em;cursor:pointer;
  color:var(--hud-dim);background:transparent;border:1px solid var(--hud-line2);padding:3px 8px}
.sp-foot button:hover{color:var(--hud-ink);border-color:var(--hud-gold)}
@media (max-width:900px){
  .hud-stylepop{position:fixed;left:8px;right:8px;top:auto;bottom:104px;width:auto;max-height:56vh;overflow:auto}
}
