:root{
  --bg:#0c1116; --panel:#141c24; --panel2:#1a2530; --line:#2b3a47;
  --amber:#ffb454; --teal:#57d7c4; --red:#ff6a5e; --green:#8ee08e;
  --txt:#d8e2ea; --dim:#8fa3b3; --gold:#ffd700;
}
*{box-sizing:border-box; margin:0; padding:0;}
button{touch-action:manipulation; -webkit-tap-highlight-color:transparent;}
body{background:var(--bg); color:var(--txt); font-family:"Cascadia Mono",Consolas,"Microsoft YaHei",monospace; font-size:14px;}
#app{max-width:1280px; margin:0 auto; padding:10px;}
header{border:1px solid var(--line); background:var(--panel); padding:10px 14px; display:flex; flex-wrap:wrap; gap:10px; align-items:center;}
header h1{font-size:16px; color:var(--amber); letter-spacing:1px;}
header .sub{color:var(--dim); font-size:12px;}
.chip{background:var(--panel2); border:1px solid var(--line); padding:4px 10px; border-radius:3px; font-size:13px; white-space:nowrap;}
.chip b{color:var(--amber);}
.kpiwrap{flex:1; min-width:220px;}
.bar{height:10px; background:#0a0e12; border:1px solid var(--line); border-radius:2px; overflow:hidden;}
.bar>i{display:block; height:100%; background:linear-gradient(90deg,var(--teal),var(--amber));}
main{display:grid; grid-template-columns:340px 1fr 360px; gap:10px; margin-top:10px; align-items:start;}
@media(max-width:1000px){ main{grid-template-columns:1fr;} }
@media(max-width:700px){
  #app{padding:6px;}
  header{padding:8px;}
  header h1{font-size:14px;}
  header .sub{display:none;}
  .chip{font-size:12px; padding:3px 7px;}
  .kpiwrap{min-width:100%; order:9;}
  main{grid-template-columns:1fr; gap:8px; margin-top:8px;}
  /* grid item 默认 min-width:auto，会被 9 个标签的 min-width 合计(684px)撑破视口，必须归零让 .tabs 走横向滚动 */
  main > *{min-width:0;}
  .tabs{overflow-x:auto;}
  .tabs .tab{min-width:76px; font-size:12px; padding:8px 4px;}
  .btn{padding:7px 10px; font-size:12px;}
  /* 修复单·修3：移动端卡片密度（收窄内边距与字号，一屏多看一张卡） */
  .mcard{padding:6px 8px; margin-bottom:6px;}
  .panel .bd{padding:8px;}
  .mcard .meta{font-size:11px; margin:3px 0;}
  .dep{padding:6px 8px; margin-bottom:6px;}
  .mcard .btn{width:100%;}
  .mcard .chip{white-space:normal;}
  #log{height:96px;}   /* 手机端日志减半（可滚动+放大兜底） */
  /* 手机端底部 Tab 栏（App 导航式） */
  .tabs{position:fixed; bottom:0; left:0; right:0; z-index:40; margin:0;
        background:var(--panel); border-top:1px solid var(--line);
        overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .tabs .tab{padding:12px 6px; min-width:60px; font-size:12px;}
  body{padding-bottom:52px;}   /* 给固定 Tab 栏让位 */
  .bthumb{width:60px; height:44px;}
  /* 派遣通道：矿道进度条 + 挖掘小人 */
  .dep .prog{position:relative; height:20px; background:#141019; border:1px solid #241c14; border-radius:2px; overflow:visible;}
  .dep .prog>i{background:repeating-linear-gradient(90deg,#3a2c1a 0 6px,#241c14 6px 12px); position:relative;}
  .dep .prog>i::after{content:''; position:absolute; inset:0;
      background:repeating-linear-gradient(90deg,rgba(87,215,196,.25) 0 4px,transparent 4px 12px);}
  .dep .digger{position:absolute; bottom:-2px; width:24px; height:24px; image-rendering:pixelated;
      background-repeat:no-repeat; transform:translateX(-50%); z-index:2;}
  /* 任务板折叠摘要条 */
  #board.folded{display:none;}
  #boardFoldSummary{display:none; padding:6px 10px; color:var(--dim); font-size:12px; cursor:pointer;}
  #boardFoldSummary.on{display:block;}
  /* F8/F9 手机首屏化：页签整视图切换+页签条收纳 */
  main > section{display:none;}
  main > section.m-main, main > section.m-side{display:block;}
  body[data-mtab="roster"] main > section.m-main{display:block;}
  body:not([data-mtab="roster"]) main > section.m-main{display:none;}
  .tabs .tab{min-width:40px; padding:10px 2px; font-size:11px;}
  .modal .box{width:96vw; max-height:90vh; overflow-y:auto;}
}
.panel{border:1px solid var(--line); background:var(--panel);}
.panel h2{font-size:13px; color:var(--teal); padding:8px 12px; border-bottom:1px solid var(--line); background:var(--panel2); display:flex; justify-content:space-between; align-items:center;}
.panel .bd{padding:10px;}
.mcard{border:1px solid var(--line); background:var(--panel2); padding:8px 10px; margin-bottom:8px; overflow:hidden;}
/* 任务板按钮自适应（C 补丁）：手机端折叠/展开，桌面端简洁/详细 */
#board.folded{display:none}
#boardFoldSummary{display:none;padding:6px 10px;color:var(--dim);font-size:12px;cursor:pointer}
#boardFoldSummary.on{display:block}
.mcard .t{display:flex; justify-content:space-between; align-items:center;}
.mcard .nm{color:var(--amber);}
.hz{color:var(--red); letter-spacing:2px;}
.meta{color:var(--dim); font-size:12px; margin:4px 0;}
.btn{background:#223140; border:1px solid #3d5265; color:var(--txt); padding:5px 12px; cursor:pointer; border-radius:3px; font-size:13px;}
.btn:hover{background:#2d4256;}
.btn.pri{background:#3d5a2e; border-color:#5a7d42;}
.btn.pri:hover{background:#4a6d38;}
.btn.warn{background:#5a3d2e; border-color:#7d5a42;}
.btn.live{background:#123f4a;border-color:#2c8999;color:#9ff3ff;}
.btn.live:hover{background:#195362;}
.mission-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px;}
.mission-actions .btn{flex:1;}
.dep.realtime{border-color:var(--teal);box-shadow:0 0 10px rgba(87,215,196,.18);}
.btn:disabled{opacity:.4; cursor:not-allowed;}
.dep{border:1px solid var(--line); background:var(--panel2); padding:8px 10px; margin-bottom:8px;}
.dep .prog{height:12px; background:#0a0e12; border:1px solid var(--line); margin:6px 0;}
.dep .prog>i{display:block; height:100%; background:var(--teal); transition:width .5s;}
.dep.evt{border-color:var(--amber); box-shadow:0 0 8px rgba(255,180,84,.25);}
.evtbox{border:1px dashed var(--amber); padding:8px; margin-top:6px; font-size:13px;}
.evtbox .q{color:var(--amber); margin-bottom:6px;}
#log{height:420px; overflow-y:auto; font-size:12px; line-height:1.7;}
#log .l{border-bottom:1px dashed #22303c; padding:2px 0;}
#log .sys{color:var(--dim);}
#log .good{color:var(--green);}
#log .bad{color:var(--red);}
#log .gold{color:var(--gold);}
.tabs{display:flex; border-bottom:1px solid var(--line);}
.tabs .tab{flex:1; text-align:center; padding:7px 4px; cursor:pointer; color:var(--dim); font-size:13px;}
.tabs .tab.on{color:var(--amber); background:var(--panel2); border-bottom:2px solid var(--amber);}
.miner{border:1px solid var(--line); background:var(--panel2); padding:6px 8px; margin-bottom:6px; font-size:13px;}
.miner .mtop{display:flex; justify-content:space-between; align-items:center; margin-bottom:2px;}
.miner .mrow{display:flex; align-items:center; gap:6px; margin-top:4px;}
.miner .mrow .mb{flex:1; display:inline-block;}
.miner .mb{width:70px; height:8px; display:inline-block; vertical-align:middle;}
.mbar{background:#0a0e12; border:1px solid var(--line); height:8px; width:100%;}
.mbar>i{display:block; height:100%;}
.cicon{width:16px; height:16px; vertical-align:-3px; margin-right:3px; image-rendering:auto;}
.bthumb{width:74px; height:54px; object-fit:cover; border:1px solid var(--line); border-radius:2px; float:left; margin:0 8px 4px 0;}
.wicon{width:52px; height:26px; object-fit:contain; vertical-align:middle;}
.stid{font-size:12px; color:var(--dim);}
.st-idle{color:var(--green);} .st-mission{color:var(--amber);} .st-med{color:var(--red);}
/* 收纳折叠系统 */
.foldbox .fold-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer;user-select:none;gap:6px;}
.foldbox .fold-head:hover{filter:brightness(1.15);}
.foldbox .fold-head .arrow{color:var(--dim);font-size:11px;transition:transform .15s;display:inline-block;}
.foldbox.folded .fold-head .arrow{transform:rotate(-90deg);}
.foldbox .fold-body{overflow:hidden;}
.foldbox.folded .fold-body{display:none;}
#logPanel.folded .bd{display:none;}
#logPanel .logbar{display:flex;gap:4px;}
#logPanel .logbar .btn{padding:2px 8px;font-size:11px;}
#logMini{display:none;color:var(--dim);font-size:12px;padding:2px 0;cursor:pointer;}
#logPanel.folded #logMini{display:block;}
#logPanel.folded .logbar .btn-log-expand{display:inline-block;}
/* 名册实时头像框（会话 C v3：静态肖像 + 动画展示位） */
.avat{width:40px;height:40px;flex:none;border:2px solid var(--green);border-radius:3px;
      background:#0a0e12;image-rendering:pixelated;overflow:hidden}
.avat img{width:100%;height:100%;image-rendering:pixelated}
.avat.mission{border-color:var(--amber);} .avat.med{border-color:var(--red);}
.dstage{height:76px;display:flex;align-items:flex-end;justify-content:center;
        background:#0a0e12;border:1px solid var(--line);border-radius:3px;
        margin-top:6px;overflow:hidden}
.dstage .spr{width:72px;height:72px;image-rendering:pixelated;background-repeat:no-repeat}
.row{display:flex; gap:6px; align-items:center; margin:6px 0; flex-wrap:wrap;}
.res{color:var(--gold);}
.note{color:var(--dim); font-size:12px;}
footer{margin-top:10px; color:#55656f; font-size:11px; text-align:center; line-height:1.8;}
.modal{position:fixed; inset:0; background:rgba(0,0,0,.7); display:flex; align-items:center; justify-content:center; z-index:50;}
.modal .box{background:var(--panel); border:1px solid var(--amber); padding:16px; width:520px; max-width:94vw; max-height:92vh; overflow-y:auto;}
.opt{display:block; width:100%; text-align:left; margin-top:8px; padding:9px;}
.flash{animation:fl 1s;}
@keyframes fl{0%{background:#3a2c12;}100%{}}
.locked{opacity:.45;}
h3.sec{font-size:13px; color:var(--amber); margin:10px 0 6px;}
.chipm{background:var(--panel2);border:1px solid var(--line);padding:2px 7px;border-radius:3px;font-size:11px;color:var(--txt)}
.costchip{display:inline-block;background:var(--panel2);border:1px solid var(--line);border-radius:3px;padding:1px 5px;margin:0 2px;font-size:11px}
.costchip img{width:14px;height:14px;image-rendering:pixelated;vertical-align:-2px;margin-right:2px}
.btn.on{outline:1px solid var(--amber);color:var(--amber)}
.dep .prog>i{background:repeating-linear-gradient(45deg,var(--teal) 0 8px,#2a8a7c 8px 16px);animation:stripeRoll 1s linear infinite}
@keyframes stripeRoll{to{background-position:22.6px 0}}
@media (prefers-reduced-motion: reduce){.dep .prog>i{animation:none}}
.loot{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12px;animation:lootIn .35s backwards}
.loot img{width:18px;height:18px;image-rendering:pixelated}
@keyframes lootIn{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
#lootToast{position:fixed;right:12px;bottom:12px;z-index:60;background:var(--panel);border:1px solid var(--amber);border-radius:3px;padding:10px 12px;width:240px;display:none}
.tabs .tab{position:relative}
.tab .badge{position:absolute;top:2px;right:6px;background:var(--amber);color:#0a0e12;font-size:10px;padding:0 4px;border-radius:6px;font-weight:bold}
#log .l{border-left:3px solid var(--dim);padding-left:6px}
#log .l.good{border-left-color:var(--green)}
#log .l.bad{border-left-color:var(--red)}
#log .l.gold{border-left-color:var(--gold)}
#log .l.sys{border-left-color:var(--teal)}
  /* 九项之⑤：Tab 角标 */
  .tabs .tab{position:relative;}
  .tab .tb{position:absolute;top:-5px;right:-4px;background:var(--red);color:#fff;font-size:10px;min-width:15px;height:15px;line-height:15px;border-radius:8px;text-align:center;padding:0 3px;font-weight:bold;display:none;}
  .tab .tb.on{display:block;}
  /* 双模式：Header 切换器 + 急行硝石角标 */
  #mode-chip{display:flex;align-items:center;gap:6px;cursor:pointer;padding:2px 6px;border:1px solid var(--teal);border-radius:3px;}
  #mode-chip .mspr{width:96px;height:24px;background:url('../assets/anim/mode_switch.png') no-repeat 0 0 / 192px 48px;image-rendering:pixelated;}
  #mode-chip.rush .mspr{background-position:-96px 0;}
  #mode-chip .mlabel{font-size:12px;font-weight:bold;}
  .nitra-tag{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid var(--amber);border-radius:3px;font-size:11px;color:var(--amber);}
  /* 装备终端美化标准件（C mockup §装备终端美化） */
  .wrow{display:flex;gap:8px;align-items:center;padding:5px 6px;border:1px solid var(--line);background:var(--panel2);margin-bottom:5px;}
  .wrow.locked{opacity:.55;}
  .wicon2{width:52px;height:26px;object-fit:contain;image-rendering:pixelated;flex:none;}
  .tag{display:inline-block;padding:0 5px;font-size:10px;border-radius:2px;background:#132a20;border:1px solid var(--teal);color:var(--teal);vertical-align:1px;}
  .tag-carry{border-color:var(--amber);color:var(--amber);}
  .wcell{position:relative;width:52px;height:52px;border:2px solid var(--dim);border-radius:3px;background:#0a0e12;display:flex;align-items:center;justify-content:center;flex:none;}
  .wcell img{width:36px;height:36px;image-rendering:pixelated;}
  .wcell.rare{border-color:var(--teal);}
  .wcell.epic{border-color:var(--amber);}
  /* 数值详情弹窗 */
  .drow{display:flex;align-items:center;gap:6px;padding:4px 0;border-bottom:1px solid var(--line);}
  .dlabel{flex:1;color:var(--dim);font-size:12px;}
  .dvalue{font-weight:bold;color:var(--amber);}
  [data-minfo]{cursor:pointer;}
