/* overlay.css owns in-world overlays layered above the battle HUD:
   damage vignette, hold-to-view scoreboard and the M world map. */

/* ---------- 1. 受击屏幕边缘发红 ---------- */
#damage-vignette {
  position:absolute;inset:0;pointer-events:none;z-index:13;opacity:0;
  background:radial-gradient(118% 96% at 50% 50%,#0000 34%,rgba(176,26,20,.5) 74%,rgba(94,4,4,.9) 100%);
}
#damage-vignette[data-kind=shield] {
  background:radial-gradient(118% 96% at 50% 50%,#0000 36%,rgba(46,140,168,.4) 76%,rgba(8,58,84,.86) 100%);
}
@media(prefers-reduced-motion:reduce) { #damage-vignette { transition:opacity .18s linear } }

/* ---------- 2. 按住 TAB 的玩家列表与战绩 ---------- */
#scoreboard {
  position:absolute;inset:0;z-index:39;display:flex;align-items:center;justify-content:center;
  padding:18px;pointer-events:none;
}
.scoreboard-card {
  width:min(720px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;
  background:#0e1c18f5;border:1px solid #dec18466;border-radius:10px;box-shadow:0 24px 70px #04100acc;color:#f5ebd4;
}
.scoreboard-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:16px 20px 12px;border-bottom:1px solid #ffffff1a }
.scoreboard-heading small { display:block;font:10px Consolas,monospace;letter-spacing:2px;color:#ddbd7f;margin-bottom:6px }
.scoreboard-heading h2 { font-size:20px;font-weight:500;letter-spacing:2px;margin:0 }
.scoreboard-heading span { font-size:11px;color:#aebfaf;white-space:nowrap }
.scoreboard-columns,.scoreboard-row { display:grid;grid-template-columns:52px minmax(0,1fr) repeat(4,62px);align-items:center;gap:8px;padding:0 20px }
.scoreboard-columns { font-size:10px;color:#9db0a3;letter-spacing:1px;padding-top:10px;padding-bottom:8px }
.scoreboard-columns span:not(:nth-child(2)),.scoreboard-row>*:not(:nth-child(2)) { text-align:right }
.scoreboard-rows { flex:1;overflow-y:auto;scrollbar-width:thin;padding-bottom:14px }
.scoreboard-row { min-height:38px;border-top:1px solid #ffffff12;font-size:13px }
.scoreboard-row b { font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }
.scoreboard-row strong { font:15px Consolas,monospace;color:#efe3c0;font-weight:400 }
.scoreboard-row .scoreboard-points { color:#ddbd7f }
.scoreboard-row.is-self { background:#dec1841c;box-shadow:inset 2px 0 0 #ddbd7f }
.scoreboard-row.is-team-a { box-shadow:inset 2px 0 0 #e0ad4b }
.scoreboard-row.is-team-b { box-shadow:inset 2px 0 0 #6fa6c8 }
.scoreboard-place { color:#8fa295;font:12px Consolas,monospace;text-align:right }
.scoreboard-row.is-self .scoreboard-place { color:#ddbd7f }
.scoreboard-team { display:inline-block;margin-left:7px;padding:1px 5px;border:1px solid #ffffff26;border-radius:3px;font-size:9px;color:#c9d4c6;vertical-align:middle }
.scoreboard-foot { padding:10px 20px;border-top:1px solid #ffffff1a;font-size:10px;color:#aebfaf;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap }
.scoreboard-empty { padding:22px 20px;color:#9db0a3;font-size:12px }

/* ---------- 3. M 键大地图 ---------- */
#world-map {
  position:absolute;inset:0;z-index:38;display:flex;align-items:center;justify-content:center;
  padding:18px;pointer-events:none;
}
.world-map-card {
  display:flex;flex-direction:column;overflow:hidden;max-width:100%;max-height:100%;
  background:#0e1c18f7;border:1px solid #dec18455;border-radius:10px;box-shadow:0 24px 70px #04100acc;color:#f5ebd4;
}
.world-map-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:14px;padding:14px 20px 11px;border-bottom:1px solid #ffffff1a }
.world-map-heading small { display:block;font:10px Consolas,monospace;letter-spacing:2px;color:#ddbd7f;margin-bottom:5px }
.world-map-heading h2 { font-size:19px;font-weight:500;letter-spacing:2px;margin:0 }
.world-map-heading span { font-size:11px;color:#aebfaf;white-space:nowrap }
#world-map-canvas { display:block;width:100%;height:auto;max-height:calc(100dvh - 190px);object-fit:contain;image-rendering:pixelated;background:#16241f }
.world-map-legend { display:flex;gap:16px;flex-wrap:wrap;padding:10px 20px;border-top:1px solid #ffffff1a;font-size:10px;color:#aebfaf }
.world-map-legend i { display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:2px;vertical-align:-1px }
.world-map-scale { margin-left:auto;font:10px Consolas,monospace;color:#c5b285 }

@media(max-width:760px) {
  #scoreboard,#world-map { padding:8px }
  .scoreboard-columns,.scoreboard-row { grid-template-columns:34px minmax(0,1fr) repeat(4,44px);gap:5px;padding:0 12px }
  .scoreboard-heading { padding:12px 12px 9px }
  .scoreboard-heading h2 { font-size:17px }
  .scoreboard-row { font-size:11px }
  .scoreboard-row strong { font-size:13px }
  .world-map-heading { padding:10px 12px 8px }
  .world-map-legend { padding:8px 12px;gap:10px }
}
@media(max-width:520px) {
  .scoreboard-columns,.scoreboard-row { grid-template-columns:26px minmax(0,1fr) repeat(4,34px) }
  .scoreboard-columns span:nth-child(n+5),.scoreboard-row>*:nth-child(n+5) { display:none }
  #world-map-canvas { max-height:calc(100dvh - 150px) }
}
@media(pointer:coarse) and (orientation:portrait) {
  #world-map-canvas { max-height:calc(100dvh - 210px) }
}

/* ---------- 4. 参数控制台（按 ` 键开关） ---------- */
#town-console { position:absolute;inset:0;z-index:70;display:flex;flex-direction:column;background:#0b1512f7;color:#e8e3d4;font:12px 'Microsoft YaHei',sans-serif }
#town-console[hidden] { display:none }
#town-console .tc-head { display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:16px 22px 12px;border-bottom:1px solid #ffffff1a }
#town-console .tc-head small { display:block;font:10px Consolas,monospace;letter-spacing:2px;color:#ddbd7f;margin-bottom:5px }
#town-console .tc-head h2 { font-size:19px;font-weight:500;letter-spacing:2px;margin:0 }
#town-console .tc-head-actions { display:flex;gap:8px }
#town-console .tc-head-actions button { min-height:32px;padding:5px 12px;font-size:11px }
#town-console .tc-hint { margin:10px 22px 0;color:#a9b8ab;font-size:11px }
#town-console .tc-msg { min-height:18px;margin:6px 22px 0;font-size:11px;color:#9fd6a0 }
#town-console .tc-list { flex:1;min-height:0;overflow-y:auto;padding:12px 22px 18px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:6px 18px;align-content:start;scrollbar-width:thin }
#town-console .tc-row { display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:4px;border:1px solid transparent }
#town-console .tc-row:hover { background:#ffffff08 }
#town-console .tc-row.is-changed { background:#ddbd7f1a;border-color:#ddbd7f44 }
#town-console .tc-name { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#cfc9b8 }
#town-console .tc-row input[type=number] { width:92px;padding:4px 6px;background:#14241f;color:#f0e8d5;border:1px solid #ffffff26;border-radius:4px;font:11px Consolas,monospace;text-align:right }
#town-console .tc-row input[type=checkbox] { width:16px;height:16px;accent-color:#ddbd7f }
#town-console .tc-foot { padding:10px 22px;border-top:1px solid #ffffff1a;color:#a9b8ab;font-size:11px }

/* Grouped gameplay tuning panel. */
#town-console{inset:50% auto auto 50%;transform:translate(-50%,-50%);width:min(1040px,calc(100vw - 28px));height:min(780px,calc(100dvh - 32px));border:1px solid #dec18470;border-radius:10px;box-shadow:0 24px 90px #0009;outline:none}
#town-console .tc-head{padding:24px}#town-console .tc-head h2{font-size:25px}
#town-console .tc-tabs{display:flex;flex-wrap:wrap;gap:8px;padding:18px 22px 0}#town-console .tc-tabs button{padding:10px 20px}#town-console .tc-tabs [aria-pressed=true]{background:#ddbd7f;color:#19291f}
#town-console .tc-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px}#town-console .tc-row{padding:16px 14px;background:#ffffff04;border-color:#ffffff14;min-height:70px}#town-console .tc-name{white-space:normal;overflow:visible;font-size:13px}#town-console .tc-name small{display:block;font-size:10px;line-height:1.7;color:#94ae9d;margin-top:7px}#town-console .tc-row input[type=number]{width:88px;min-height:38px;font-size:15px;flex-shrink:0}#town-console .tc-quick{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 22px;border-top:1px solid #ffffff14}#town-console .tc-quick span{color:#ddbd7f}#town-console .tc-foot{display:flex;justify-content:space-between;gap:12px}
@media(max-width:640px){#town-console .tc-list{grid-template-columns:1fr;padding:12px}#town-console .tc-head{padding:16px 12px}#town-console .tc-tabs{padding:12px 12px 0}#town-console .tc-tabs button{padding:8px 12px}#town-console .tc-head h2{font-size:20px}#town-console .tc-quick{padding:10px 12px}}
