/* ============================================================
   style.css —— 深色科技风
   ============================================================ */
:root{
  --bg:#0a0f1a;
  --panel:rgba(14,20,33,.86);
  --panel-border:rgba(90,140,200,.22);
  --text:#e6edf6;
  --muted:#8fa3bd;
  --accent:#4da3ff;
  --good:#34d399;
  --warn:#f7c948;
  --bad:#ff5b5b;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);}
body{
  font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  color:var(--text);
  -webkit-tap-highlight-color:transparent;
  user-select:none;
}
#sim{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;}

/* ---------- HUD ---------- */
.hud{
  position:fixed;left:14px;top:14px;z-index:5;
  min-width:196px;padding:12px 14px 10px;
  background:var(--panel);backdrop-filter:blur(10px);
  border:1px solid var(--panel-border);border-radius:12px;
  box-shadow:0 8px 30px rgba(0,0,0,.45);
  font-size:13px;pointer-events:none;
}
.hud-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:2px 0;}
.hud-row span{color:var(--muted)}
.hud-row b{font-size:16px;font-variant-numeric:tabular-nums;color:var(--text);}
.hud-row em{font-size:10px;color:var(--muted);font-style:normal;margin-left:2px;}
.cong-bar{height:5px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden;margin:6px 0 4px;}
.cong-bar i{display:block;height:100%;width:0;background:var(--good);transition:width .25s ease,background .25s;}
.hud-fps{font-size:11px;color:var(--muted);text-align:right;margin-top:2px;}
.hud-fps b{color:var(--text);font-size:11px;}

/* ---------- 菜单按钮 ---------- */
.menu-btn{
  position:fixed;right:14px;top:14px;z-index:7;
  width:44px;height:44px;display:grid;place-items:center;
  background:var(--panel);color:var(--text);cursor:pointer;
  border:1px solid var(--panel-border);border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.4);transition:transform .15s,background .15s;
}
.menu-btn:active{transform:scale(.94);}
.menu-btn:hover{background:rgba(30,44,70,.9);}

/* ---------- 首次提示 ---------- */
.tip{
  position:fixed;right:72px;top:22px;z-index:6;
  padding:9px 14px;border-radius:22px;font-size:13px;color:#cfe0f5;
  background:rgba(20,32,52,.85);border:1px solid var(--panel-border);
  box-shadow:0 8px 24px rgba(0,0,0,.4);
  opacity:0;transform:translateX(12px);transition:opacity .5s,transform .5s;
  pointer-events:none;backdrop-filter:blur(8px);
}
.tip.show{opacity:1;transform:translateX(0);}

/* ---------- 遮罩 ---------- */
.scrim{
  position:fixed;inset:0;z-index:8;background:rgba(4,8,16,.5);
  opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s;
}
.scrim.show{opacity:1;visibility:visible;}

/* ---------- 侧滑菜单 ---------- */
.menu{
  position:fixed;top:0;right:0;z-index:9;height:100%;
  width:min(360px,86vw);display:flex;flex-direction:column;
  background:linear-gradient(180deg,rgba(13,19,32,.98),rgba(10,15,26,.98));
  border-left:1px solid var(--panel-border);
  box-shadow:-16px 0 44px rgba(0,0,0,.5);
  transform:translateX(105%);transition:transform .3s cubic-bezier(.22,.61,.36,1);
}
.menu.open{transform:translateX(0);}
.menu-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 12px;border-bottom:1px solid var(--panel-border);
}
.menu-head h1{margin:0;font-size:17px;letter-spacing:.5px;}
.menu-head p{margin:3px 0 0;font-size:11px;color:var(--muted);}
.menu-close{
  width:34px;height:34px;border-radius:9px;cursor:pointer;
  background:rgba(255,255,255,.06);color:var(--text);border:1px solid var(--panel-border);
  font-size:15px;line-height:1;
}
.menu-close:hover{background:rgba(255,255,255,.12);}
.menu-body{flex:1;overflow-y:auto;padding:6px 16px 28px;scrollbar-width:thin;}
.menu-body::-webkit-scrollbar{width:6px}
.menu-body::-webkit-scrollbar-thumb{background:rgba(120,160,210,.3);border-radius:3px}

/* ---------- 分组 ---------- */
.group{margin-top:16px;}
.group h3{
  margin:0 0 8px;font-size:12px;font-weight:600;letter-spacing:1px;
  color:var(--accent);text-transform:uppercase;
}
.group-body{
  background:rgba(255,255,255,.035);border:1px solid var(--panel-border);
  border-radius:11px;padding:11px 12px;
}

/* ---------- 滑块行 ---------- */
.row{padding:6px 0;}
.row + .row{border-top:1px dashed rgba(120,160,210,.14);}
.row-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:7px;}
.row-head span{color:var(--muted);}
.row-head b{color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;}
input[type=range]{
  -webkit-appearance:none;appearance:none;width:100%;height:22px;background:transparent;cursor:pointer;
}
input[type=range]::-webkit-slider-runnable-track{
  height:5px;border-radius:3px;background:rgba(120,160,210,.22);
}
input[type=range]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;width:17px;height:17px;margin-top:-6px;border-radius:50%;
  background:var(--accent);border:2px solid #0a0f1a;box-shadow:0 0 0 3px rgba(77,163,255,.28);
}
input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:rgba(120,160,210,.22);}
input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--accent);border:2px solid #0a0f1a;}

/* ---------- 分段按钮 / 按钮组 ---------- */
.seg{display:flex;gap:8px;}
.seg button,.btns button{
  flex:1;padding:9px 10px;border-radius:9px;cursor:pointer;font-size:13px;
  background:rgba(255,255,255,.05);color:var(--text);
  border:1px solid var(--panel-border);transition:.15s;
}
.seg button.active{background:rgba(77,163,255,.22);border-color:var(--accent);color:#dbeaff;}
.seg button:hover,.btns button:hover{background:rgba(255,255,255,.12);}
.btns{display:flex;gap:8px;margin-top:10px;}

/* ---------- 图例 ---------- */
.legend-row{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--muted);padding:3px 0;}
.legend-row i{width:12px;height:12px;border-radius:3px;flex:0 0 auto;}

/* ---------- Toast ---------- */
.toast{
  position:fixed;left:50%;bottom:34px;z-index:12;transform:translate(-50%,20px);
  padding:10px 18px;border-radius:22px;font-size:13px;color:#e6edf6;
  background:rgba(20,32,52,.94);border:1px solid var(--panel-border);
  box-shadow:0 10px 30px rgba(0,0,0,.5);
  opacity:0;visibility:hidden;transition:opacity .3s,transform .3s,visibility .3s;
  pointer-events:none;max-width:80vw;text-align:center;
}
.toast.show{opacity:1;visibility:visible;transform:translate(-50%,0);}

/* ---------- 竖屏适配 ---------- */
@media (orientation:portrait){
  .hud{min-width:172px;font-size:12px;padding:10px 12px;}
  .menu{width:min(340px,92vw);}
  .menu-btn{width:42px;height:42px;}
}
@media (max-width:480px){
  .hud{left:10px;top:10px;min-width:158px;font-size:11.5px;}
  .hud-row b{font-size:14px;}
  .menu-btn{right:10px;top:10px;}
  .tip{right:64px;top:18px;font-size:12px;}
}
