/* ==========================================================================
   mobile.css — 手机横屏版：手机就是遥控器
   ========================================================================== */
html, body.m-body{
  height:100%;
  height:100dvh;
  overflow:hidden;
  overscroll-behavior:none;
}
.m-body{
  display:flex;flex-direction:column;
  background:
    radial-gradient(900px 500px at 50% -20%, #16283a 0%, transparent 60%),
    #0b1016;
  -webkit-user-select:none;user-select:none;
  -webkit-tap-highlight-color:transparent;
  -webkit-touch-callout:none;
  padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
  touch-action:manipulation;
}

/* ---------- 竖屏提示 ---------- */
.m-rotate{
  position:fixed;inset:0;z-index:400;display:none;
  flex-direction:column;align-items:center;justify-content:center;gap:12px;
  background:#0b1119;text-align:center;padding:32px;
}
.m-rotate b{font-size:20px;color:#e6f2ff;}
.m-rotate p{font-size:13.5px;color:#8ea3b8;line-height:1.7;max-width:300px;}
.rot-icon{font-size:52px;color:#38bdf8;animation:rotHint 1.8s ease-in-out infinite;}
@keyframes rotHint{0%,100%{transform:rotate(0);}50%{transform:rotate(90deg);}}
@media (orientation:portrait){
  .m-rotate{display:flex;}
}

/* ---------- 顶栏 ---------- */
.m-top{
  flex:0 0 auto;height:44px;display:flex;align-items:center;gap:8px;
  padding:0 10px;border-bottom:1px solid #22303f;
  background:linear-gradient(180deg,#141e29,#101822);
}
.m-ico{
  flex:0 0 auto;display:flex;align-items:center;gap:4px;
  height:32px;padding:0 11px;border-radius:9px;cursor:pointer;
  background:linear-gradient(180deg,#1e2b3a,#182331);
  border:1px solid #2b3a4c;color:#dce8f5;font-size:12.5px;font-weight:700;
}
.m-ico:active{background:#243348;}
.m-ico em{
  font-style:normal;font-size:10px;color:#7dd3fc;font-family:var(--mono);
  background:#0d2434;border-radius:6px;padding:1px 4px;
}
.m-title{
  flex:0 0 auto;font-size:13px;font-weight:700;color:#eaf4ff;line-height:1.15;
  display:flex;flex-direction:column;white-space:nowrap;
}
.m-title small{font-size:9.5px;color:#5f7488;font-weight:600;}
.m-tel{
  flex:1 1 auto;display:flex;justify-content:center;gap:14px;
  font-size:10.5px;color:#7d93a8;white-space:nowrap;overflow:hidden;
}
.m-tel b{font:700 13px/1 var(--mono);color:#dceeff;margin-left:3px;}
.m-score{
  flex:0 0 auto;display:flex;align-items:baseline;gap:3px;
  padding:3px 9px;border-radius:8px;background:#16222f;border:1px solid #2b3a4c;
}
.m-score span{font-size:10px;color:#6c8095;}
.m-score b{font:800 15px/1 var(--mono);color:#fbbf24;}

/* ---------- 主体 ---------- */
.m-main{
  flex:1 1 auto;min-height:0;
  display:grid;grid-template-columns:1fr 244px 1fr;
  grid-template-rows:minmax(0,1fr);
  gap:6px;padding:4px 8px;
}

/* 左右两侧：摇杆 + 微调 */
.m-side{
  position:relative;min-width:0;min-height:0;
  display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:8px 26px 4px;
  border-radius:16px;
  background:linear-gradient(180deg,rgba(44,54,68,.55),rgba(20,27,36,.6));
  border:1px solid #354356;
}
.m-gimbal{
  width:var(--gs,220px);height:var(--gs,220px);position:relative;
}
.m-gimbal .gimbal-well{
  width:100%;height:100%;
  border-width:3px;
  box-shadow:inset 0 14px 30px rgba(0,0,0,.9), inset 0 -6px 14px rgba(0,0,0,.65), 0 3px 0 rgba(255,255,255,.07);
}
.m-gimbal .gimbal-ring{inset:16%;border-style:solid;border-color:#42536a;opacity:.6;}
.m-gimbal .stick-cap{
  width:46px;height:46px;left:-23px;top:-23px;
  box-shadow:0 8px 16px rgba(0,0,0,.8), inset 0 2px 4px rgba(255,255,255,.25);
}
.m-gimbal .stick-cap::after{inset:12px;}
.m-gimbal .stick.dragging .stick-cap{
  box-shadow:0 0 0 6px rgba(56,189,248,.16), 0 8px 18px rgba(0,0,0,.8);
}

/* 微调：贴在摇杆两侧，触摸目标加大 */
.m-side .trim{border-radius:10px;padding:4px;gap:3px;}
.m-side .trim-v{left:6px;top:50%;transform:translateY(-50%);}
.m-side-r .trim-v{left:auto;right:6px;}
.m-side-r .trim-v .t-name{left:auto;right:-19px;}
.m-side .trim-h{position:absolute;left:50%;bottom:2px;transform:translateX(-50%);margin:0;}
.m-side .trim-v .t-track{width:12px;height:calc(var(--gs,220px) * .38);}
.m-side .trim-h .t-track{width:calc(var(--gs,220px) * .46);height:12px;}
.m-side .tbtn{width:36px;height:28px;font-size:12px;border-radius:8px;}
.m-side .t-name{font-size:9px;opacity:.8;}

.m-cap{
  font-size:10px;color:#8296ab;letter-spacing:.3px;text-align:center;
  margin-top:3px;line-height:1.2;
}
.m-cap em{font-style:normal;display:block;color:#7dd3fc;font-weight:700;font-size:10.5px;}

/* ---------- 中央 ---------- */
.m-center{
  display:flex;flex-direction:column;gap:6px;min-height:0;
}
.m-card{
  flex:1 1 auto;min-height:0;
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  padding:10px 12px;border-radius:14px;cursor:pointer;
  background:linear-gradient(178deg,#d2d8cb,#b9c2b0);
  border:1px solid #6d7a63;color:#1b241a;text-align:left;
  box-shadow:inset 0 2px 6px rgba(60,70,50,.35), 0 4px 12px rgba(0,0,0,.4);
  position:relative;overflow:hidden;
}
.m-card:active{filter:brightness(.96);}
.m-card::after{
  content:"";position:absolute;left:-30%;top:-40%;width:80%;height:120%;
  background:linear-gradient(105deg,rgba(255,255,255,.3),transparent 60%);
  transform:rotate(6deg);pointer-events:none;
}
.m-leds{display:flex;align-items:center;gap:8px;}
.m-leds .led{width:15px;height:15px;}
.m-brand{
  flex:1;text-align:center;font:800 13px/1 var(--mono);letter-spacing:2px;color:#2b3628;
}
.m-brand i{display:block;font:600 7.5px/1.4 var(--mono);letter-spacing:1.2px;color:#4c5a46;font-style:normal;}
.m-sub{display:flex;align-items:baseline;gap:5px;font-size:9.5px;color:#4a5648;font-family:var(--mono);}
.m-sub i{font-style:normal;opacity:.5;}
.m-model{font:800 18px/1.1 var(--mono);letter-spacing:.5px;}
.m-line{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;color:#33402f;}
.m-line b{font-family:var(--mono);font-size:13px;}
.m-link{margin-left:auto;font-size:10px;padding:1px 6px;border:1px solid #6d7a63;border-radius:4px;}
.m-link.ok{background:#1b241a;color:#d6ddca;border-color:#1b241a;}
.m-link.bad{background:#3a1a1a;color:#f3d5d5;border-color:#3a1a1a;}
.m-card .m-tap{
  position:static;right:auto;bottom:auto;left:auto;margin-top:2px;font-size:9px;color:#5c6a57;letter-spacing:.2px;
  text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.m-tap.ok{color:#14532d;font-weight:700;}
.m-tap.warn{color:#7c3a12;font-weight:700;}
.m-tap.bad{color:#7f1d1d;font-weight:700;}

.m-modes{display:flex;gap:5px;}
.m-modes button{
  flex:1;height:30px;border-radius:8px;cursor:pointer;font-size:11.5px;font-weight:700;
  background:#1a2430;border:1px solid #2c3a4a;color:#8ea3b8;
}
.m-modes button.on{
  background:linear-gradient(180deg,#0e4a63,#0b3648);border-color:#1d7fa4;color:#a5e2ff;
  box-shadow:0 0 10px rgba(56,189,248,.25);
}

.m-btns{display:flex;gap:6px;align-items:stretch;}
.m-btns .power-sw{flex:1.4;padding:6px;}
.m-btns .power-sw .ps-slot{width:100%;height:26px;}
.m-btns .key{
  flex:1;font-size:13px;border-radius:10px;padding:4px;
}
.m-btns .key small{font-size:10px;display:block;}

/* ---------- 底部通道条 ---------- */
.m-mon{
  flex:0 0 auto;
  display:grid;grid-template-columns:1fr 1fr;gap:3px 18px;
  padding:6px 12px 7px;
  background:linear-gradient(180deg,#111a24,#0c141d);
  border-top:1px solid #22303f;
}
.m-ch-row{display:flex;align-items:center;gap:7px;}
.m-ch-row span{width:58px;font-size:10px;color:#8ea3b8;white-space:nowrap;}
.m-ch-row i{
  position:relative;flex:1;height:10px;border-radius:6px;
  background:#0a1119;border:1px solid #263445;overflow:hidden;
}
.m-ch-row i::after{
  content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#38506a;
}
.m-ch-row .mf{
  position:absolute;top:0;bottom:0;left:50%;width:0;
  background:linear-gradient(90deg,#22c55e,#7dd3fc);
}
.m-ch-row[data-thr="1"] .mf, .m-ch-row:first-child .mf{
  left:0;background:linear-gradient(90deg,#0f766e,#22c55e 55%,#a3e635);
}
.m-ch-row em{
  width:38px;text-align:right;font:700 12px/1 var(--mono);color:#cfe3f5;font-style:normal;
}
.m-coach{
  grid-column:1 / -1;font-size:10.5px;color:#7f93a8;line-height:1.35;
  padding-top:3px;border-top:1px dashed #1e2a37;margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.m-coach.warn{color:#fcd34d;}
.m-coach.bad{color:#fca5a5;}
.m-coach.ok{color:#86efac;}

/* ---------- 抽屉 ---------- */
.m-drawer{
  position:fixed;left:0;top:0;bottom:0;z-index:120;
  width:min(360px,86vw);display:flex;flex-direction:column;
  background:linear-gradient(180deg,#16212d,#101821);
  border-right:1px solid #2b3a4c;box-shadow:24px 0 60px rgba(0,0,0,.6);
}
@keyframes drawerIn{from{transform:translateX(-100%);}to{transform:none;}}
.m-drawer-head{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-bottom:1px solid #22303f;font-size:13px;color:#dce8f5;
}
.m-x{
  width:30px;height:30px;border-radius:8px;border:1px solid #2b3a4c;
  background:#1a2533;color:#9fb0c2;font-size:13px;cursor:pointer;
}
.m-drawer-body{
  flex:1 1 auto;overflow-y:auto;padding:10px;display:flex;flex-direction:column;gap:9px;
  -webkit-overflow-scrolling:touch;
}
.m-drawer .mission-card{padding:12px;}
.m-drawer .mission-card h2{font-size:16px;}
.m-drawer .steps li{font-size:12px;}
.m-drawer-tools{display:flex;flex-wrap:wrap;gap:6px;}
.m-field{
  flex:1 1 100%;display:flex;align-items:center;gap:8px;
  background:#0d141c;border:1px solid #263444;border-radius:9px;padding:6px 10px;
}
.m-field span{font-size:11px;color:#6c8095;}
.m-field input{
  flex:1;background:transparent;border:0;outline:0;color:#dce8f5;font-size:14px;
}

/* ---------- 全屏层 ---------- */
.m-overlay{
  position:fixed;inset:0;z-index:150;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;padding:14px;
  background:#0a1017;
}
/* 关键：class 里的 display 会盖掉 [hidden]，必须显式处理 */
.m-overlay[hidden], .m-drawer[hidden]{display:none !important;}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
.m-ov-close{
  position:absolute;top:10px;right:12px;z-index:3;
  width:38px;height:38px;border-radius:11px;border:1px solid #2b3a4c;
  background:#1a2533cc;color:#c3d6e8;font-size:15px;cursor:pointer;
}

/* 液晶屏放大 */
.m-lcd-ov{gap:6px;justify-content:flex-start;overflow-y:auto;padding:10px 12px calc(10px + env(safe-area-inset-bottom));}
.m-lcd-ov .lcd-bezel{width:min(540px,94vw);padding:9px;flex:0 0 auto;}
/* 高度自适应：矮屏时屏幕变矮（内部自己滚动），不再挤压提示行 */
.m-lcd-ov .lcd-screen{height:clamp(120px,calc(100vh - 168px),206px);font-size:13.5px;}
.m-lcd-ov .lcd-row{font-size:14px;padding:3px 6px;}
.m-lcd-ov .lcd-title{font-size:13px;}
.m-lcd-ov .lcd-note{font-size:10.5px;}
.m-lcd-ov .lcd-keys-hint{font-size:11px;min-height:16px;}
.m-lcd-ov .lcd-hd{font-size:12px;}

.m-nav{display:flex;gap:14px;align-items:center;justify-content:center;}
.m-nav-pad{display:flex;flex-direction:column;align-items:center;gap:4px;}
.m-nav-mid{display:flex;align-items:center;gap:4px;}
.m-nav-btn{
  width:46px;height:34px;border-radius:9px;cursor:pointer;
  background:linear-gradient(180deg,#39434f,#232b36);
  border:1px solid #4a5766;color:#cfdae6;font-size:13px;font-weight:700;
}
.m-nav-btn:active{background:#2b3f52;color:#7dd3fc;}
.m-lcd-ov .touch-pad{width:74px;height:56px;}
.m-nav-side{display:flex;gap:8px;}
.m-big-btn{
  width:82px;height:56px;border-radius:13px;cursor:pointer;
  background:linear-gradient(180deg,#39434f,#232b36);
  border:1px solid #4a5766;color:#dbe7f3;font:700 14px/1.1 var(--mono);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  box-shadow:0 3px 0 #12181f;
}
.m-big-btn:active{transform:translateY(2px);box-shadow:none;background:#2b3f52;color:#7dd3fc;}
.m-big-btn.rtn{background:linear-gradient(180deg,#4a3a2a,#2e2419);border-color:#5d4a33;color:#f0d9b8;}
.m-big-btn small{font-size:9px;opacity:.75;}

/* 飞行视窗 */
.m-view-ov{padding:0;gap:0;align-items:stretch;justify-content:stretch;background:#0a1017;}
.m-view-ov #view{position:absolute;inset:0;width:100%;height:100%;}
.m-hud-tl{
  position:absolute;left:10px;top:10px;z-index:2;display:flex;gap:12px;
  padding:6px 12px;border-radius:10px;background:rgba(9,15,22,.6);
  backdrop-filter:blur(6px);border:1px solid rgba(88,120,150,.28);
  font-size:10.5px;color:#7f97ad;
}
.m-hud-tl b{font:800 15px/1 var(--mono);color:#dff1ff;margin:0 2px;}
.m-hud-chips{
  position:absolute;right:10px;bottom:64px;z-index:2;
  display:flex;flex-direction:column;gap:5px;align-items:flex-end;
}
.m-hud-warn{
  position:absolute;left:50%;top:14%;transform:translateX(-50%);z-index:2;
  padding:8px 20px;border-radius:11px;background:rgba(45,8,10,.85);
  border:1px solid #ef4444;color:#fecaca;font-size:14px;font-weight:800;
  white-space:nowrap;
}
.m-view-ov .minimap-wrap{
  position:absolute;right:10px;top:10px;z-index:2;width:104px;height:104px;padding:3px;
}
.m-view-ov #minimap{width:96px;height:96px;}
.m-env{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom));
  background:linear-gradient(180deg,transparent,rgba(8,13,19,.9) 40%);
}
.m-env .btn{padding:6px 10px;font-size:11.5px;}
.m-env .sw{font-size:11px;}

/* ---------- 小屏微调 ---------- */
@media (max-width:760px){
  .m-title{display:none;}
  .m-tel{gap:8px;font-size:9.5px;}
  .m-tel b{font-size:11.5px;}
  .m-main{grid-template-columns:1fr 226px 1fr;}
}
@media (max-height:360px){
  .m-top{height:38px;}
  .m-title{display:none;}
  .m-tel{gap:9px;font-size:9.5px;}
  .m-tel b{font-size:11.5px;}
  .m-mon{padding:4px 10px 5px;}
  .m-coach{display:none;}
  .m-big-btn{height:44px;width:72px;}
  .m-nav-btn{height:28px;width:40px;}
  .m-lcd-ov .touch-pad{width:66px;height:48px;}
}
@media (max-height:300px){
  .m-lcd-ov .lcd-screen{height:132px;}
  .m-big-btn{height:38px;width:66px;font-size:12px;}
}

/* ---------- 极矮屏（手机横屏 + 浏览器栏 ≈ 300px）----------
   把导航键压成一行：左右箭头 + 触摸键 + RTN/HOME，
   上下就用触摸键本身的上/下感应区，避免整块内容超高。 */
@media (max-height:345px){
  .m-top{height:36px;}
  .m-tel{font-size:9px;gap:8px;}
  .m-tel b{font-size:11px;}
  .m-mon{padding:3px 10px 4px;gap:2px 14px;}
  .m-coach{display:none;}
  .m-lcd-ov{padding:4px 8px 6px;gap:3px;}
  .m-lcd-ov .lcd-bezel{padding:5px;width:min(600px,96vw);}
  .m-lcd-ov .lcd-screen{height:calc(100vh - 168px);min-height:120px;font-size:12.5px;padding:4px 6px 3px;}
  .m-lcd-ov .lcd-hd{font-size:10px;padding-bottom:2px;margin-bottom:2px;}
  .m-lcd-ov .lcd-title{font-size:11px;padding:0 0 2px;margin-bottom:2px;}
  .m-lcd-ov .lcd-row{font-size:12px;padding:1px 5px;line-height:1.3;}
  .m-lcd-ov .lcd-ft{font-size:9px;}
  .m-lcd-ov .lcd-keys-hint{font-size:10px;min-height:12px;padding:1px 0;}
  .m-nav{gap:8px;}
  /* 导航压成单行 */
  .m-nav-pad{flex-direction:row;gap:3px;}
  .m-nav-btn[data-nav="up"], .m-nav-btn[data-nav="down"]{display:none;}
  .m-nav-btn{display:none;}
  .m-nav-btn[data-nav="left"], .m-nav-btn[data-nav="right"]{display:none;}

  .m-big-btn{width:80px;height:62px;font-size:13px;border-radius:11px;}
  .m-big-btn small{font-size:8px;}
}
/* ==========================================================================
   矮横屏主优化：国产手机横屏后（含浏览器栏）多为 300~430px 高、640~960 宽
   ========================================================================== */
@media (orientation:landscape) and (max-height:470px){
  .m-top{height:36px;gap:6px;padding:0 8px;}
  .m-title{display:none;}
  .m-tel{font-size:9px;gap:9px;}
  .m-tel b{font-size:11px;}
  .m-ico{height:28px;padding:0 8px;font-size:11.5px;}
  .m-ico em{font-size:9px;}
  .m-score{padding:2px 7px;}
  .m-score b{font-size:13px;}

  .m-main{grid-template-columns:1fr clamp(190px,32vw,272px) 1fr;gap:4px;padding:3px 4px;}

  .m-side{padding:5px 8px 2px 38px;}
  .m-side-r{padding:5px 38px 2px 8px;}
  .m-cap{font-size:9px;margin-top:1px;line-height:1.15;}
  .m-cap em{font-size:9.5px;}
  .m-side .trim-v{left:2px;top:50%;}
  .m-side-r .trim-v{left:auto;right:2px;}
  .m-side .trim-h{bottom:0;}
  .m-side .tbtn{width:26px;height:22px;font-size:10px;}
  .m-side .trim-v .t-track{height:calc(var(--gs,200px) * .34);width:8px;}
  .m-side .trim-h .t-track{width:calc(var(--gs,200px) * .42);height:10px;}
  .m-side .t-name{font-size:8px;}
  .m-gimbal .stick-cap{width:38px;height:38px;left:-19px;top:-19px;}
  .m-gimbal .stick-cap::after{inset:10px;}

  .m-center{gap:4px;padding:5px;}
  .m-card{padding:6px 8px 18px;gap:2px;}
  .m-card .m-leds .led{width:11px;height:11px;}
  .m-brand{font-size:12px;letter-spacing:1.8px;}
  .m-brand i{font-size:6px;}
  .m-sub{display:flex;align-items:baseline;gap:5px;font-size:9.5px;color:#4a5648;font-family:var(--mono);}
.m-sub i{font-style:normal;opacity:.5;}
.m-model{font-size:15px;}
  .m-line{font-size:11px;gap:7px;}
  .m-line b{font-size:14px;}
  .m-link{font-size:9px;padding:0 4px;}
  .m-modes button{height:24px;font-size:10px;}
  .m-btns{gap:4px;}
  .m-btns .key{font-size:11px;padding:2px;}
  .m-btns .power-sw{padding:4px;}
  .m-btns .power-sw .ps-slot{height:22px;}
  .m-btns .power-sw .ps-label{font-size:8px;}
  .m-tap{font-size:8.5px;bottom:4px;}

  /* 底部通道条：压成一行 */
  .m-mon{
    display:flex;align-items:center;gap:10px;
    padding:3px max(10px, env(safe-area-inset-right)) 4px max(10px, env(safe-area-inset-left));
  }
  .m-ch-row{flex:1 1 0;gap:5px;min-width:0;}
  .m-ch-row span{width:auto;font-size:9px;}
  .m-ch-row i{height:8px;}
  .m-ch-row em{width:28px;font-size:11px;}
}

/* 更极端（例如微信内置浏览器 260~300px） */
@media (orientation:landscape) and (max-height:330px){
  .m-top{height:32px;}
  .m-tel{gap:7px;font-size:8.5px;}
  .m-tel b{font-size:10px;}
  .m-main{grid-template-columns:1fr clamp(178px,30vw,250px) 1fr;}
  .m-side{padding:4px 7px 0 34px;}
  .m-side-r{padding:4px 34px 0 7px;}
  .m-gimbal .stick-cap{width:34px;height:34px;left:-17px;top:-17px;}
  .m-sub{display:flex;align-items:baseline;gap:5px;font-size:9.5px;color:#4a5648;font-family:var(--mono);}
.m-sub i{font-style:normal;opacity:.5;}
.m-model{font-size:13px;}
  .m-modes button{height:22px;font-size:9.5px;}
  .m-btns .power-sw .ps-slot{height:20px;}
  .m-mon{padding:2px 8px 3px;}
  .m-ch-row i{height:7px;}
}
/* ==========================================================================
   液晶屏全屏页：触摸键改成 3×3 网格，四向感应区铺满，手指能按准
   ========================================================================== */
.m-lcd-ov .touch-pad{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  grid-template-rows:1fr 1fr 1fr;
  gap:3px;padding:4px;
  width:132px;height:106px;
}
.m-lcd-ov .touch-pad .tp-z{
  position:static;transform:none;width:auto;height:auto;
  display:grid;place-items:center;
  font-size:15px;line-height:1;padding:0;border-radius:7px;
  color:#8ea3b8;
}
.m-lcd-ov .touch-pad .tp-z:active,
.m-lcd-ov .touch-pad .tp-z.hot{background:rgba(56,189,248,.18);color:#7dd3fc;}
.m-lcd-ov .touch-pad .tp-up{grid-area:1 / 2;}
.m-lcd-ov .touch-pad .tp-left{grid-area:2 / 1;}
.m-lcd-ov .touch-pad .tp-right{grid-area:2 / 3;}
.m-lcd-ov .touch-pad .tp-down{grid-area:3 / 2;}
.m-lcd-ov .m-nav-btn{display:none;}
.m-lcd-ov .touch-pad .tp-core{
  grid-area:2 / 2;padding:0;font-size:8px;line-height:1.1;
  letter-spacing:0;background:transparent;border:1px dashed #33445a;color:#6c8095;
  border-radius:6px;display:grid;place-items:center;
}

/* ==========================================================================
   液晶卡：按可用高度分三档显示（矮屏只留最关键信息，永不出框）
   ========================================================================== */
.m-card{justify-content:flex-start;padding:7px 9px;gap:2px;overflow:hidden;}
.m-card > *{flex:0 0 auto;min-height:0;}

.m-lcdhd{display:flex;align-items:center;justify-content:space-between;
  font-family:var(--mono);font-size:9.5px;font-weight:700;color:#2b3628;
  border-bottom:1px solid rgba(43,54,40,.4);padding-bottom:2px;}
.m-futaba{letter-spacing:.6px;font-weight:800;}
.m-futaba i{font-style:normal;font-size:8px;border:1px solid #3f4b3c;border-radius:2px;padding:0 2px;margin-left:3px;}
.m-hd-right{display:flex;align-items:center;gap:4px;}
.m-battbars{display:inline-flex;gap:1px;}
.m-battbars i{width:3px;height:6px;background:#3f4b3c;display:block;}

.m-model{font-family:var(--mono);font-weight:800;font-size:17px;line-height:1.1;
  display:flex;align-items:baseline;gap:5px;white-space:nowrap;overflow:hidden;}
.m-model em{font-style:normal;font-size:10px;font-weight:700;color:#4a5648;}

.m-sub2{display:flex;align-items:center;gap:5px;font-family:var(--mono);font-size:8.5px;color:#4a5648;}
.m-sub2 i{font-style:normal;padding:0 3px;border:1px solid rgba(63,75,60,.5);border-radius:3px;}

.m-timers{display:flex;gap:10px;font-family:var(--mono);font-size:9px;color:#3f4b3c;}
.m-timers b{font-weight:800;color:#1b241a;}

.m-mon2{display:flex;flex-direction:column;justify-content:space-evenly;
  flex:1 1 auto;min-height:0;overflow:hidden;padding:2px 0;}
.m-mon2 .m-ch-row{gap:5px;flex:0 0 auto;}
.m-mon2 .m-ch-row span{width:26px;font-size:8.5px;color:#3f4b3c;font-family:var(--mono);}
.m-mon2 .m-ch-row i{height:7px;background:rgba(27,36,26,.12);border-color:rgba(27,36,26,.4);}
.m-mon2 .m-ch-row i::after{background:rgba(27,36,26,.28);}
.m-mon2 .m-ch-row .mf{background:#1b241a;}
.m-mon2 .m-ch-row em{width:24px;font-size:9px;color:#1b241a;text-align:right;
  font-family:var(--mono);font-weight:700;}

.m-badges{display:flex;gap:4px;align-items:center;}
.m-badges b{font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.3px;
  padding:1px 4px;border-radius:2px;background:#1b241a;color:#d6ddca;}
.m-badges b.off{background:transparent;color:#8b978a;border:1px solid rgba(63,75,60,.4);}
.m-badges .m-link{margin-left:auto;}

.m-trimrows{display:flex;gap:8px;font-family:var(--mono);font-size:8.5px;color:#4a5648;}
.m-trimrows b{color:#1b241a;}

.m-card .m-tap{position:static;left:auto;right:auto;bottom:auto;
  font-size:8.5px;color:#5c6a57;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

/* —— 分档：屏幕越矮，显示越精简 —— */
@media (max-height:430px){
  .m-timers{display:none;}
}
@media (max-height:370px){
  .m-trimrows{display:none;}
  .m-sub2{display:none;}
  .m-badges{display:none;}
  .m-card{padding:6px 8px;gap:1px;}
  .m-model{font-size:15px;}
}
@media (max-height:310px){
  .m-card{padding:5px 7px;gap:0;}
  .m-card .m-leds{display:none;}          /* 极矮时省掉机身指示灯行，型号名已能辨认 */
  .m-lcdhd{font-size:8px;padding-bottom:1px;border-bottom:0;}
  .m-futaba i{display:none;}
  .m-battbars{display:none;}
  .m-model{font-size:14px;line-height:1.05;}
  .m-card .m-tap{display:none;}
  .m-mon2{gap:1px;padding:1px 0;}
  .m-mon2 .m-ch-row{gap:4px;}
  .m-mon2 .m-ch-row span{width:20px;font-size:7.5px;}
  .m-mon2 .m-ch-row i{height:5px;}
  .m-mon2 .m-ch-row em{width:20px;font-size:8px;}
}
/* ---------- 微调编号：统一放到控件上方，不再压住摇杆 ---------- */
.m-side .trim-v .t-name,
.m-side-r .trim-v .t-name{
  left:50%;right:auto;top:-15px;bottom:auto;
  transform:translateX(-50%);
  font-family:var(--mono);letter-spacing:.5px;
}
/* 横向微调：编号保留在滑条左侧，避免压到摇杆说明文字 */
.m-side .trim-h .t-name{
  left:-18px;right:auto;top:50%;bottom:auto;
  transform:translateY(-50%);
  font-family:var(--mono);letter-spacing:.5px;
  font-size:9px;
}

/* ---------- 液晶卡：信号 / 连接状态 ---------- */
.m-sigrow{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;overflow:hidden;}
.m-rssi{display:inline-flex;align-items:flex-end;gap:2px;height:11px;flex:0 0 auto;}
.m-rssi i{display:block;width:3px;background:#8b978a;border-radius:1px;}
.m-rssi i:nth-child(1){height:4px;}
.m-rssi i:nth-child(2){height:6px;}
.m-rssi i:nth-child(3){height:9px;}
.m-rssi i:nth-child(4){height:11px;}
.m-rssi i.on{background:#1b241a;}
.m-sigtxt{font-family:var(--mono);font-size:9px;font-weight:700;color:#1b241a;white-space:nowrap;}
.m-sigtxt.bad{color:#8a2b1a;}
.m-sigrow .m-badge{
  font-family:var(--mono);font-size:8px;font-weight:800;letter-spacing:.3px;
  padding:1px 4px;border-radius:2px;background:#1b241a;color:#d6ddca;
}
.m-sigrow .m-badge.off{background:transparent;color:#8b978a;border:1px solid rgba(63,75,60,.4);}
.m-sigrow .m-link{margin-left:auto;}
/* ---------- 关机：液晶屏熄灭，只留一块暗屏 ---------- */
.m-card.off{background:linear-gradient(178deg,#3f453b,#2f342c);border-color:#2a2f28;}
.m-card.off::before{
  content:"FUTABA";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);
  text-align:center;font:800 20px var(--mono);letter-spacing:4px;
  color:rgba(126,136,120,.28);pointer-events:none;
}
.m-card.off > *:not(.m-tap):not(.m-card-tap){visibility:hidden;}
.m-card.off .m-tap{color:#8b978a;text-align:center;}
/* ---------- 全屏液晶页：整屏自适应，不出现滚动 ---------- */
.m-lcd-ov{justify-content:flex-start;align-items:center;overflow:hidden;padding:8px 10px;}
.m-lcd-inner{
  display:flex;flex-direction:column;align-items:center;gap:6px;
  width:100%;transform-origin:top center;
  flex:0 0 auto;
}

/* ---------- 卡片上的"可点开"提示 ---------- */
.m-card:not(.hinting) .m-card-tap{display:none;}
.m-card-tap{
  position:absolute;right:7px;bottom:5px;z-index:4;
  font-size:9.5px;font-weight:800;letter-spacing:.2px;
  color:#0b3b52;background:rgba(56,189,248,.22);
  border:1px solid #2b7fa8;border-radius:11px;
  padding:2px 8px;pointer-events:none;white-space:nowrap;
  box-shadow:0 1px 4px rgba(0,60,90,.25);
  animation:tapPulse 2.4s ease-in-out infinite;
}
@keyframes tapPulse{
  0%,100%{transform:scale(1);opacity:.92}
  50%{transform:scale(1.06);opacity:1}
}
.m-card.hinting .m-tap{padding-right:86px;}
.m-card.hinting .m-sigrow{padding-right:72px;}
.m-ico.on{background:linear-gradient(180deg,#0f4a2c,#0b3a22);border-color:#22c55e;color:#a7f3c4;}

/* 熄屏时提示条换成浅色 */
.m-card.off .m-card:not(.hinting) .m-card-tap{display:none;}
.m-card-tap{
  color:#a5e2ff;border-color:#2b7fa8;background:rgba(56,189,248,.22);
}
.m-card.off .m-tap{color:#9aa894;}