/* where: CITY raid overlay; what: Cold-white AMP command panel; why: Separate temporary raid state from territory UI. */
.purge-raid{--amp:#dce6ea;position:fixed;top:82px;right:16px;z-index:610;width:min(370px,calc(100vw - 32px));border:1px solid #dce6ea66;background:linear-gradient(155deg,#121820f5,#05070bf5);box-shadow:0 18px 60px #000b,0 0 30px #dce6ea18;color:#eef5f7;padding:16px;clip-path:polygon(0 0,96% 0,100% 12%,100% 100%,4% 100%,0 88%)}
.purge-raid[hidden]{display:none}.purge-head{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center}.purge-head img{width:48px;height:48px;border:1px solid #dce6ea88;background:#e9f0f2}.purge-head small,.purge-kicker{font:700 8px 'Share Tech Mono';letter-spacing:.2em;color:#9aaab0}.purge-head h2{margin:2px 0;font:900 16px 'Cinzel','Noto Serif JP';letter-spacing:.06em}.purge-close{border:0;background:none;color:#9aaab0;font-size:18px}.purge-sub{margin:10px 0 4px;color:#c9d4d8;font-size:10px;font-weight:800}.purge-copy{margin:0;color:#9ba8ad;font-size:10px;line-height:1.65}.purge-hp{margin-top:14px}.purge-hp__line{display:flex;justify-content:space-between;font:800 10px 'Share Tech Mono'}.purge-track{height:12px;margin-top:6px;border:1px solid #dce6ea55;background:#020304;overflow:hidden}.purge-fill{height:100%;background:linear-gradient(90deg,#60727a,#f5fbfc);box-shadow:0 0 18px #dce6eaaa;transition:width .5s}.purge-phase{min-height:34px;margin:10px 0;padding:8px;border-left:2px solid var(--amp);background:#dce6ea0d;font:600 10px/1.65 'Noto Serif JP'}.purge-families{display:grid;gap:5px}.purge-family{display:grid;grid-template-columns:90px 1fr 62px;gap:6px;font:700 9px 'Share Tech Mono'}.purge-family i{height:5px;margin-top:3px;background:#ffffff18}.purge-family i b{display:block;height:100%;background:var(--amp)}.purge-action{width:100%;margin-top:12px;padding:11px;border:1px solid #dce6eaaa;background:#dce6ea;color:#091015;font-weight:900;cursor:pointer}.purge-action:disabled{opacity:.4}.purge-result{margin-top:10px;color:#c7d2d6;font-size:10px}.purge-mvp{color:#fff;font-weight:800}.purge-zone-pressure{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at center,#dce6ea22,transparent 65%);mix-blend-mode:screen;z-index:2}

/* ── v2 (2026-07-25 Rii2指示): 隊長3体それぞれのHPバー ───────────────────
   1日6回の署名反撃ボタン(.purge-action)は撤廃したので、その分の縦を隊長へ回す。
   .purge-action / .purge-result のスタイルは残置 — 他所から参照される可能性と、
   将来また常設ボタンを置く時のために消さない（実害の無いdead CSS）。 */
.purge-bosses{display:grid;gap:7px;margin-top:6px}
.purge-boss{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;
  padding:6px 7px;border:1px solid #dce6ea28;background:#dce6ea08}
.purge-boss__empty{font:700 9px 'Share Tech Mono';color:#7d8a90;letter-spacing:.1em;padding:6px 2px}
.purge-boss__face{width:34px;height:34px;border-radius:50%;border:1px solid #dce6ea88;
  overflow:hidden;background:#0a1015}
.purge-boss__face img{width:100%;height:100%;object-fit:cover;object-position:top center}
.purge-boss__name{font:900 11px 'Cinzel','Noto Serif JP';letter-spacing:.04em;color:#eef5f7}
.purge-boss__name span{margin-left:5px;font:700 7.5px 'Share Tech Mono';color:#8c9aa1;letter-spacing:.12em}
.purge-boss__track{height:7px;margin-top:4px;border:1px solid #dce6ea44;background:#020304;overflow:hidden}
.purge-boss__track i{display:block;height:100%;background:linear-gradient(90deg,#60727a,#f5fbfc);
  box-shadow:0 0 12px #dce6ea99;transition:width .45s}
.purge-boss__line{display:flex;justify-content:space-between;gap:6px;margin-top:3px;
  font:700 8px 'Share Tech Mono';color:#93a1a7;letter-spacing:.06em}
.purge-boss__line b{color:#c9d4d8}
/* 各行の攻撃ボタン (2026-07-25)。地図のピンが押せない環境向けの確実な入口。 */
.purge-boss__atk{float:right;margin-left:8px;padding:2px 10px;border:1px solid #dce6eaaa;
  background:#dce6ea;color:#091015;font:800 9px 'Share Tech Mono';letter-spacing:.08em;
  border-radius:3px;cursor:pointer}
.purge-boss__atk:hover:not(:disabled){background:#fff}
.purge-boss__atk:disabled{opacity:.32;cursor:not-allowed}
.purge-boss__note{margin-top:3px;font:600 8px 'Share Tech Mono';color:#8c9aa1;line-height:1.5}

/* ── 最小化 / 折り畳み (2026-07-25 Rii2指示) ────────────────────────────
   ×(閉じる)は「開き直す導線が無くパネルを永久に失う」ので最小化へ置き換えた。
   最小化中はリーダーカードの下にパトランプのFABが出る（位置はJSが合わせる）。 */
.purge-min{border:1px solid #dce6ea3d;background:rgba(220,230,234,.08);border-radius:6px;
  width:30px;height:30px;display:flex;align-items:center;justify-content:center;
  padding:0;cursor:pointer;transition:.2s}
.purge-min:hover{background:rgba(220,230,234,.2);border-color:#dce6eaaa}
.purge-lamp{width:20px;height:20px;display:block;overflow:visible}
.purge-lamp--fab{width:26px;height:26px}
/* 回転灯: 光条だけを回す。reduced-motionでは止める。 */
.pn-lamp__beam{transform-origin:16px 20px;animation:pnLampSpin 2.4s linear infinite}
@keyframes pnLampSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.pn-lamp__beam{animation:none}}

/* 最小化中のパトランプFAB。top/right はJS(positionPurgeFab)がリーダーカードに合わせる。 */
.purge-fab{position:fixed;z-index:611;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:7px 9px 6px;border:1px solid #dce6ea55;border-radius:9px;cursor:pointer;
  background:linear-gradient(155deg,#121820f2,#05070bf2);box-shadow:0 8px 22px #000a,0 0 16px #ff5a3c33;
  transition:.2s}
.purge-fab[hidden]{display:none}
.purge-fab:hover{border-color:#ff8a5a99;box-shadow:0 8px 22px #000a,0 0 22px #ff5a3c66}
.purge-fab__tag{font:800 7px 'Share Tech Mono';letter-spacing:.14em;color:#c9d4d8}

/* 「AMP RAID HP」より下の折り畳み */
.purge-fold{width:100%;margin-top:10px;padding:5px 8px;display:flex;justify-content:space-between;
  align-items:center;border:1px solid #dce6ea26;background:#dce6ea0a;border-radius:4px;
  color:#9aaab0;font:800 8.5px 'Share Tech Mono';letter-spacing:.12em;cursor:pointer;transition:.2s}
.purge-fold:hover{color:#eef5f7;border-color:#dce6ea55}
.purge-fold__caret{transition:transform .2s}
.purge-raid.is-folded .purge-fold__caret{transform:rotate(-90deg)}
.purge-raid.is-folded .purge-foldable{display:none}
@media(prefers-reduced-motion:reduce){.purge-fold__caret{transition:none}}
/* 手負い(残HP50%以下): 赤へ振る＝被ダメ+25%・攻勢激化のサイン */
.purge-boss.is-raging{border-color:#ff8a5a55;background:#ff8a5a0d}
.purge-boss.is-raging .purge-boss__track i{background:linear-gradient(90deg,#8a2b1e,#ff8a5a);box-shadow:0 0 12px #ff8a5aaa}
.purge-boss.is-raging .purge-boss__line span{color:#ff8a5a}
/* 撃破済み: 消さずに残す（倒した戦果が盤面から消えるのは演出として誤り） */
.purge-boss.is-dead{opacity:.42}
.purge-boss.is-dead .purge-boss__face{filter:grayscale(1);border-style:dashed}
.purge-boss.is-dead .purge-boss__name{text-decoration:line-through}

/* 盤面の戦況: 市警に封鎖された区画の割合 */
.purge-board{margin-top:11px}
.purge-board__line{display:flex;justify-content:space-between;font:800 9px 'Share Tech Mono';color:#9aaab0}
.purge-board__line b{color:#eef5f7}
.purge-board__track{height:6px;margin-top:4px;border:1px solid #dce6ea44;background:#020304;overflow:hidden}
.purge-board__track i{display:block;height:100%;background:linear-gradient(90deg,#39454b,#dce6ea);transition:width .45s}
.purge-board__note{margin-top:5px;font-size:9px;line-height:1.6;color:#7f8c92}

/* ── スマホ配置 ───────────────────────────────────────────────────────────
   ⚠ 2026-09-10 Rii2報告「スマホで『パージナイト執行中』を開くと画面外(下)に
      出て見えない」の修正。原因は bottom:56px の *素の固定px*。
      モバイルの position:fixed は「見えている高さ」より下まで基準が伸びる
      （実機実測で Safari(iPhone) 152px / Chrome(iPhone) 108px / iPad 80px）。
      その分だけパネル全体が下へ沈み、下端のランキングとボタンが
      ツールバーの裏に隠れる。--tma-bottom-bar は radio-station.js が
      visualViewport との差を実測して :root に立てる変数。
   ⚠ (100vh - 100dvh) は上下バーの *合計* なので使わない（過去に2度踏んだ）。
   ⚠ 下端を持ち上げたら高さの上限も見えている範囲で切り直すこと。68vh のままだと
      その分だけ上へ伸びて、今度はヘッダー(54px)+ティッカー(24px)に潜り込む。 */
@media(max-width:700px){
  .purge-raid{top:auto;right:8px;width:calc(100vw - 16px);overflow:auto;padding:13px;
    bottom:calc(56px + env(safe-area-inset-bottom, 0px) + var(--tma-bottom-bar, 0px));
    max-height:calc(100vh - 140px - env(safe-area-inset-bottom, 0px) - var(--tma-bottom-bar, 0px));}
  .purge-copy{display:none}
  .purge-board__note{display:none}
}
@media(prefers-reduced-motion:reduce){.purge-fill,.purge-boss__track i,.purge-board__track i{transition:none}}
