/* 0.1.4 工具箱、迫击炮计算器、新回放。原则：字大、对比强、少术语；读数面板始终是深底白字（像瞄具），浅色主题下也不变 */
.seg{display:inline-flex;padding:3px;border-radius:12px;background:var(--s2);gap:2px}
.seg button{border:0;background:transparent;height:30px;padding:0 12px;border-radius:9px;font-weight:700;color:var(--mut);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.seg button.on{background:var(--ink);color:var(--bg)}.seg button:not(.on):hover{color:var(--ink)}
.seg.dark{background:rgba(8,10,8,.82);backdrop-filter:blur(8px);box-shadow:0 0 0 1px rgba(255,255,255,.12)}.seg.dark button{color:#c9ccc0}.seg.dark button.on{background:#fff;color:#111}
/* 工具箱 */
.tl-grid{display:grid;gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.tl-card{display:grid;gap:6px;align-content:start;padding:20px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh);border:1px solid transparent;transition:border-color .15s,transform .15s var(--e)}
.tl-card:hover{border-color:var(--acc);transform:translateY(-2px)}.tl-card b{font-size:17px}.tl-card span:last-child{color:var(--mut)}
.tl-card .tl-ic{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--acc) 16%,transparent);color:var(--acc)}.tl-card .tl-ic .ic{width:26px;height:26px}
.tl-card.big{grid-row:span 2;background:linear-gradient(160deg,#1b1f17,#0f110d);color:#f3f2ea}.tl-card.big b{font-size:24px}.tl-card.big span:last-child{color:#b9bcaf;font-size:15px}
/* 计算器布局 */
.mc{padding-bottom:16px}.mc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.mc-mapbtn{display:flex;align-items:center;gap:10px;height:48px;padding:4px 12px 4px 4px;border-radius:12px;border:1px solid var(--ln);background:var(--s1);cursor:pointer;text-align:left}
.mc-mapbtn img{width:40px;height:40px;border-radius:8px;object-fit:cover}.mc-mapbtn span{display:grid;line-height:1.2}.mc-mapbtn b{font-size:16px}.mc-mapbtn small{color:var(--mut);font-size:12px}
.mc-mapbtn i{font-style:normal;font-size:12px;font-weight:700;color:var(--acc);margin-left:6px}.mc-mapbtn:hover{border-color:var(--acc)}
.mc-sel{display:flex;align-items:center;gap:8px;height:48px;padding:0 6px 0 12px;border-radius:12px;border:1px solid var(--ln);background:var(--s1)}.mc-sel span{font-size:12px;color:var(--mut);font-weight:700;white-space:nowrap}
.mc-sel select{border:0;background:transparent;font-weight:800;font-size:15px;height:40px;max-width:210px;cursor:pointer}.mc-sel select option,.mc-sel select optgroup{background:var(--s1);color:var(--ink)}
.mc #mcTabs{margin-left:auto}
.mc-body{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:start}
.mc-stage{position:relative;height:calc(100vh - 150px);min-height:460px;border-radius:var(--r);overflow:hidden;background:#0b0d0a;box-shadow:var(--sh)}
.mc-stage canvas{position:absolute;inset:0;width:100%;height:100%}.mc-fg{touch-action:none;cursor:crosshair;outline:none}
.mc-tool{position:absolute;left:30px;top:30px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mc-tb{height:36px;padding:0 12px;border-radius:10px;border:0;background:rgba(8,10,8,.82);color:#fff;font-weight:700;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.12);backdrop-filter:blur(8px)}.mc-tb:hover{background:#000}
.mc-tool .seg button{height:30px}
.mc-zoom{position:absolute;right:10px;top:30px;display:grid;gap:6px}
.mc-zoom button{width:38px;height:38px;border-radius:10px;border:0;background:rgba(8,10,8,.82);color:#fff;font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 0 0 1px rgba(255,255,255,.12)}.mc-zoom button:hover{background:#000}
.mc-layers{position:absolute;left:10px;bottom:10px;display:flex;gap:8px;align-items:center}
.mc-optbox{position:absolute;left:10px;bottom:56px;width:min(300px,calc(100% - 20px));padding:12px;border-radius:14px;background:rgba(14,16,13,.95);color:#f1f0e8;box-shadow:0 12px 30px #0008,0 0 0 1px rgba(255,255,255,.1);display:grid;gap:8px;z-index:3}
.mc-optbox .in{background:#1d211a;color:#fff;border-color:#3a4034}.mc-optbox .mut{color:#b4b7aa}
.sw-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.sw{display:flex;gap:7px;align-items:center;font-size:13px;cursor:pointer}.sw input{width:16px;height:16px;accent-color:var(--acc)}
.mc-hud{position:absolute;right:10px;bottom:10px;display:flex;gap:10px;align-items:center;padding:7px 12px;border-radius:10px;background:rgba(8,10,8,.86);color:#fff;font-size:13px;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.mc-hud b{font:700 15px var(--fd);letter-spacing:.02em}.mc-hud span{color:#d5d7cc}
.mc-load{position:absolute;inset:auto 0 0 0;margin:auto;top:0;width:max-content;height:max-content;padding:10px 16px;border-radius:12px;background:rgba(8,10,8,.9);color:#fff;font-weight:700}
.mc.full{position:fixed;inset:0;z-index:40;width:auto;margin:0;padding:10px;background:var(--bg);overflow:auto}.mc.full .mc-stage{height:calc(100vh - 86px)}body.mc-lock{overflow:hidden}body.mc-lock .nav{display:none}
/* 侧栏 */
.mc-side{display:grid;gap:10px;min-width:0}
.mc-empty{display:grid;gap:6px;padding:18px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh)}.mc-empty b{font-size:16px}.mc-empty span{color:var(--mut)}
.mc-pos{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh)}.mc-pos b{font:700 16px var(--fd);letter-spacing:.02em}.mc-pos small{display:block;color:var(--mut);font-size:12px}
.mc-dot{width:16px;height:16px;border-radius:50%;flex:none}.mc-dot.m{background:var(--acc);box-shadow:0 0 0 3px #fff inset,0 0 0 1px var(--ln)}
/* 读数：深底白字，最大的字给仰角 */
.mc-read{display:grid;gap:12px;padding:16px;border-radius:18px;background:#0c0e0b;color:#fff;box-shadow:0 14px 34px #0006,0 0 0 1px #2a2f25 inset}
.mc-read .rd-hd{display:flex;align-items:center;gap:10px}.mc-read .rd-hd b{font:700 17px var(--fd);letter-spacing:.03em}
.tno{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 6px;border-radius:12px;background:var(--acc);color:#1a1206;font:800 13px var(--fd)}
.rd-copy{border:0;height:32px;padding:0 12px;border-radius:9px;background:#fff;color:#111;font-weight:800;cursor:pointer}.rd-copy:hover{background:var(--acc)}
.rd-main{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
.rd-main>div{display:grid;padding:10px 12px 8px;border-radius:12px;background:#171a14}
.rd-main small{font-size:13px;color:#b9bcaf;font-weight:700}.rd-main strong{font:700 52px/1 var(--fd);letter-spacing:-.01em;margin-top:4px;font-variant-numeric:tabular-nums}
.rd-main>div:first-child strong{color:#ffb15c}.rd-main em{font-style:normal;font-size:13px;color:#d9dbcf;font-weight:700}
.rd-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rd-kv span{display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:#141712}
.rd-kv small{font-size:12px;color:#b9bcaf;font-weight:700}.rd-kv b{font-size:17px;font-weight:800;white-space:nowrap}
.rd-alt,.rd-more{font-size:13px;color:#d9dbcf;line-height:1.6}.rd-warn{font-size:13px;color:#ffd166;font-weight:700}
.rd-bad{padding:18px 12px;border-radius:12px;background:#2a1311;color:#ff8a80;font-size:20px;font-weight:800;text-align:center}
.mc-read.small{padding:12px}.mc-read.small:empty{display:none}.mc-read.small strong{font-size:40px}
.mc-fix{display:grid;gap:10px;padding:14px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh)}
.fx-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.fx-grid button{height:42px;border-radius:10px;border:1px solid var(--ln);background:var(--s2);font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:4px;font-size:14px}.fx-grid button:hover{border-color:var(--acc);color:var(--acc)}
.mc-list{display:grid;gap:6px}
.mc-ti{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:10px 12px;border-radius:12px;border:1px solid var(--ln);background:var(--s1);cursor:pointer;text-align:left}
.mc-ti.on{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc) inset}.mc-ti .ti-main{display:flex;gap:16px}.mc-ti .ti-main b{font:700 19px var(--fd)}.mc-ti .ti-main small{font:600 11px var(--fh);color:var(--mut);margin-left:3px}
.mc-ti .ti-sub{font:700 14px var(--fd);color:var(--mut)}.mc-ti .ti-x{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--mut);font-size:18px}.mc-ti .ti-x:hover{background:var(--s2);color:var(--bad)}
.mc-acts{display:flex;gap:6px;flex-wrap:wrap}
.mc-wpn{padding:10px 12px;border-radius:12px;background:var(--s2);color:var(--mut);line-height:1.6}.mc-wpn b{color:var(--ink)}
.mc-form{display:grid;gap:10px;padding:16px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh)}.mc-form .f{display:grid;gap:4px}.mc-form .f span{font-size:13px;font-weight:700;color:var(--mut)}
.in.big{height:46px;font:700 18px var(--fd);letter-spacing:.03em}
.mc-tab{font-size:14px}.mc-tab td{padding:7px 10px}.mc-tab td.hl{color:var(--acc);font-weight:800}.mc-tab th{background:var(--s2)}
.mc-credit{margin-top:10px;line-height:1.7}
.mc[data-view=table] .mc-stage{display:none}.mc[data-view=table] .mc-body{grid-template-columns:minmax(0,1fr)}
/* 换图 */
.ms-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.ms-it{display:grid;gap:2px;padding:6px 6px 10px;border-radius:12px;border:1px solid var(--ln);background:var(--s1);cursor:pointer;text-align:left}.ms-it img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;margin-bottom:4px}
.ms-it b{font-size:15px;padding:0 4px}.ms-it small{color:var(--mut);font-size:12px;padding:0 4px}.ms-it.on,.ms-it:hover{border-color:var(--acc)}
/* 新回放 */
.rp2-g{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:12px;align-items:start}
.rp2-stage{position:relative;height:calc(100vh - 290px);min-height:420px;border-radius:var(--r);overflow:hidden;background:#0b0d0a;box-shadow:var(--sh)}
.rp2-stage canvas{position:absolute;inset:0;width:100%;height:100%}#rpFg{touch-action:none;cursor:grab;outline:none}
.rp2-hud{position:absolute;left:10px;top:10px;display:grid;gap:4px;padding:8px 12px;border-radius:12px;background:rgba(8,10,8,.86);color:#fff;font-size:13px;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.rp2-hud b{font-weight:800}.rp2-buf{position:absolute;left:50%;top:14px;transform:translateX(-50%);padding:7px 14px;border-radius:20px;background:rgba(8,10,8,.9);color:#fff;font-weight:700;font-size:13px}
.rp2-tip{position:absolute;display:grid;gap:2px;padding:8px 10px;border-radius:10px;background:rgba(8,10,8,.94);color:#fff;font-size:13px;pointer-events:none;max-width:220px;box-shadow:0 0 0 1px rgba(255,255,255,.14)}.rp2-tip span{color:#d5d7cc;font-size:12px}
.rp2-err{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:6px;justify-items:center;padding:16px 20px;border-radius:14px;background:rgba(8,10,8,.94);color:#fff;text-align:center;max-width:80%}
.rp2-ctl{display:flex;align-items:center;gap:10px;margin-top:10px;padding:8px 12px;border-radius:var(--r);background:var(--s1);box-shadow:var(--sh)}
.rp2-play{width:48px;height:48px;border-radius:50%;border:0;background:var(--acc);cursor:pointer;display:grid;place-items:center;flex:none}
.rp2-play .ic{display:none}.rp2-play .py{width:0;height:0;border-left:15px solid #1a1206;border-top:10px solid transparent;border-bottom:10px solid transparent;margin-left:4px}
.rp2-play .pz{width:14px;height:18px;border-left:5px solid #1a1206;border-right:5px solid #1a1206}
.rp2-tl{flex:1;height:44px;min-width:0}.rp2-tl canvas{width:100%;height:100%;cursor:pointer;touch-action:none}.rp2-clock{font-size:15px;white-space:nowrap}
.rp2-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px}.rp2-help{margin-top:6px}
.rp2-r{display:grid;gap:12px}.rp2-sc{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:14px}
.rp2-sc .side{display:flex;gap:10px;align-items:center}.rp2-sc .side.t2{flex-direction:row-reverse;text-align:right}.rp2-sc .side span{display:grid}.rp2-sc small{color:var(--mut);font-size:12px}
.rp2-sc b{font-size:32px;line-height:1}.rp2-sc .t1 b{color:var(--t1)}.rp2-sc .t2 b{color:var(--t2)}.rp2-sc .vs{font-size:12px;color:var(--mut)}
.rp2-side .tabs{margin-bottom:8px}.rp2-evl{max-height:min(58vh,640px);overflow:auto;display:grid}.rp2-evl .rpe{grid-template-columns:44px 26px minmax(0,1fr)}.rp2-evl .rpt{font-size:13px;line-height:1.45}
#rpPl{max-height:min(62vh,680px);overflow:auto}.rp2-team h4{margin:6px 0}.rp2-sq{display:grid;gap:2px;margin-bottom:8px}.rp2-sq>small{color:var(--mut);font-size:12px;padding:0 4px}
.rp2-p{display:flex;align-items:center;gap:8px;padding:6px;border:0;background:none;border-radius:8px;cursor:pointer;text-align:left}.rp2-p:hover,.rp2-p.on{background:var(--s2)}.rp2-p b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp2-p .st{width:8px;height:8px;border-radius:50%;flex:none}.st.ok{background:var(--ok)}.st.down{background:var(--warn)}.st.dead{background:var(--bad)}
.rp2.full{position:fixed;inset:0;z-index:40;width:auto;margin:0;padding:10px;background:var(--bg);overflow:auto}.rp2.full .rp2-stage{height:calc(100vh - 180px)}
/* 平板、手机 */
@media (max-width:1180px){.mc-body,.rp2-g{grid-template-columns:minmax(0,1fr)}.mc-stage{height:min(72vh,720px)}.rp2-stage{height:min(66vh,700px)}.tl-grid{grid-template-columns:1fr 1fr}.mc #mcTabs{margin-left:0}}
@media (max-width:760px){
 .mc-top{gap:6px}.mc-top>.btn{display:none}.mc-mapbtn{flex:1 1 100%;min-width:0}.mc-sel{flex:1 1 100%;min-width:0}.mc-sel select{max-width:none;width:100%}.mc #mcTabs{width:100%}.mc #mcTabs button{flex:1}
 .mc-stage{height:62vh;min-height:360px;border-radius:12px}.mc-tool{left:28px;top:28px}.mc-tool .seg button{padding:0 9px;font-size:13px}.mc-zoom{right:8px;top:28px}.mc-zoom button{width:40px;height:40px}
 .mc-hud{display:none}.rd-main strong{font-size:44px}.fx-grid{grid-template-columns:1fr 1fr}.tl-grid{grid-template-columns:1fr}.tl-card.big{grid-row:auto}.ms-grid{grid-template-columns:1fr 1fr}
 .rp2-stage{height:56vh;min-height:320px}.rp2-hud{font-size:12px;padding:6px 8px}
}
@media print{.nav,#foot,.fab,.mc-top,.mc-stage,.mc-credit,.mc-acts{display:none!important}.mc-body{display:block}.mc-form{box-shadow:none}main{padding:0}body{background:#fff;color:#000}}
/* 管理后台：导入地图资源包 */
.mz-bar{height:12px;border-radius:6px;background:var(--s2);overflow:hidden}.mz-bar i{display:block;height:100%;width:0;background:var(--acc);transition:width .3s}
#mzMsg{font-weight:700;min-height:1.4em}
