/* 出撃情報（200〜750コストのランクページ → assets/js/sortie-info.js）。ゲームの出撃受付画面にならったパネル型 */
.sortie-board {
  --sortie-cyan: #2fe4f2;
  --sortie-teal: #1f8f96;
  --sortie-gold: #f7bd45;
  --sortie-clock: #ffd23f;
  --sortie-line: rgba(214, 226, 214, .24);
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  box-sizing: border-box;
  max-width: 1200px;
  margin: 0 auto 12px;
  overflow: hidden;
  border: 1px solid rgba(214, 226, 214, .42);
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .012) 0 1px, transparent 1px 3px),
    linear-gradient(180deg, #111915, #070b0b);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .42);
  color: #eef4f2;
  letter-spacing: 0;
}

/* データを読むまで下のTier表が動かないよう高さを取っておく */
.sortie-board:empty {
  min-height: 258px;
}

.sortie-board[hidden] {
  display: none;
}

.sortie-board *,
.sortie-board *::before,
.sortie-board *::after {
  box-sizing: border-box;
}

.sortie-board__radio {
  display: none;
}

.sortie-board__tabs {
  display: none;
}

.sortie-board__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: 0;
}

.sortie-mode {
  position: relative;
  min-width: 0;
  padding: 8px 10px 8px;
}

.sortie-mode + .sortie-mode {
  border-left: 1px solid var(--sortie-line);
}

/* ゲームと同じく、モード名は中央に大きく */
.sortie-mode__logo {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 7px;
  margin: 0 0 3px;
  font-weight: 700;
  line-height: 1.15;
}

.sortie-mode__logo-en {
  background: linear-gradient(180deg, #f8f8f8 0%, #b9c0c4 52%, #e6e9ea 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 23px;
  font-weight: 700;
  letter-spacing: .01em;
  filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .9));
}

.sortie-mode--rate .sortie-mode__logo-en {
  background-image: linear-gradient(180deg, #fff1b8 0%, #d9a640 50%, #8a6420 58%, #f0cf7a 100%);
  -webkit-background-clip: text;
  background-clip: text;
}

.sortie-mode__logo-ja {
  color: #c9d3cb;
  font-size: 11.5px;
  font-weight: 800;
}

.sortie-col {
  min-width: 0;
}

.sortie-col__time {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0 0 3px;
  padding-left: 6px;
  border-left: 4px solid var(--sortie-cyan);
  color: #fff;
  font-size: 13.5px;
  font-weight: 900;
  line-height: 1.25;
}

/* PCはモード名の行の左端に置いて縦幅を詰める */
.sortie-col--current .sortie-col__time {
  position: absolute;
  top: 14px;
  left: 10px;
  margin: 0;
}

.sortie-col--next .sortie-col__time {
  border-left-color: #7f8c86;
  color: #d9e2dc;
}

.sortie-col__time small {
  color: #b2c0b8;
  font-size: 11.5px;
  font-weight: 700;
}

.sortie-col__list {
  display: flex;
  justify-content: center;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sortie-tile {
  position: relative;
  isolation: isolate;
  display: grid;
  flex: 0 1 calc((100% - 15px) / 4);
  place-items: center;
  min-width: 0;
  min-height: 96px;
  overflow: hidden;
  border: 1px solid rgba(47, 228, 242, .78);
  background: #0c1417;
  box-shadow: inset 0 0 14px rgba(47, 228, 242, .16);
  text-align: center;
}

.sortie-col--next .sortie-tile {
  min-height: 66px;
  border-color: rgba(214, 226, 214, .38);
  box-shadow: none;
}

.sortie-tile__image {
  position: absolute;
  z-index: -2;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 画像の上の文字を読みやすくする */
.sortie-tile--map::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(180deg, rgba(0, 0, 0, .34), rgba(0, 0, 0, .62));
}

/* ランダムは特定のマップの画像を使わない */
.sortie-tile--random.sortie-tile--space {
  background:
    radial-gradient(1.2px 1.2px at 14% 24%, #fff, transparent),
    radial-gradient(1px 1px at 32% 70%, #cfe9ff, transparent),
    radial-gradient(1.4px 1.4px at 58% 18%, #fff, transparent),
    radial-gradient(1px 1px at 76% 58%, #bfe0ff, transparent),
    radial-gradient(1.2px 1.2px at 90% 30%, #fff, transparent),
    radial-gradient(90% 90% at 80% 110%, rgba(38, 86, 170, .55), transparent 70%),
    linear-gradient(135deg, #0b1838, #03070f);
}

.sortie-tile--random.sortie-tile--ground {
  background:
    radial-gradient(100% 70% at 50% 0%, rgba(214, 170, 110, .42), transparent 70%),
    linear-gradient(180deg, #54442f, #1d1711);
}

.sortie-tile--random::before {
  content: "?";
  position: absolute;
  z-index: -1;
  color: rgba(255, 255, 255, .13);
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 74px;
  font-weight: 700;
  line-height: 1;
}

.sortie-col--next .sortie-tile--random::before {
  font-size: 52px;
}

.sortie-tile--unknown {
  background: repeating-linear-gradient(135deg, rgba(255, 255, 255, .055) 0 6px, transparent 6px 12px), #10171a;
}

.sortie-tile--empty {
  border-style: dashed;
  border-color: rgba(214, 226, 214, .24);
  background: #080c0d;
  box-shadow: none;
  color: rgba(226, 234, 229, .55);
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .1em;
}

.sortie-col--next .sortie-tile--empty {
  border-color: rgba(214, 226, 214, .24);
}

.sortie-tile__env {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0 6px;
  background: #e87a2f;
  color: #fff;
  font-size: 10.5px;
  font-weight: 900;
  line-height: 15px;
  text-shadow: 0 1px 1px rgba(0, 0, 0, .55);
}

.sortie-tile--space .sortie-tile__env {
  background: #2474d6;
}

.sortie-tile__text {
  display: grid;
  justify-items: center;
  gap: 0;
  min-width: 0;
  padding: 12px 4px 3px;
  text-shadow: 0 1px 2px #000, 0 0 7px rgba(0, 0, 0, .9);
}

.sortie-col--next .sortie-tile__text {
  padding-top: 10px;
  padding-bottom: 2px;
}

.sortie-tile__cost {
  color: #eef3ef;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.1;
}

.sortie-tile__cost b {
  margin-left: 2px;
  color: var(--sortie-gold);
  font-size: 19px;
  font-weight: 700;
}

.sortie-tile__cost--word b {
  font-size: 15px;
}

.sortie-tile__rule {
  color: #fff;
  font-size: 14px;
  font-weight: 900;
  line-height: 1.2;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.sortie-tile__rule--special {
  color: #ffe2a0;
  font-size: 11.5px;
}

.sortie-tile__scenario {
  display: inline-block;
  font-size: 11px;
}

.sortie-tile__map {
  color: #fff;
  font-size: 12.5px;
  font-weight: 800;
  line-height: 1.22;
  word-break: keep-all;
  overflow-wrap: anywhere;
}

.sortie-tile--unknown .sortie-tile__map {
  color: #d8c58f;
}

.sortie-col--next .sortie-tile__cost b {
  font-size: 16px;
}

.sortie-col--next .sortie-tile__rule {
  font-size: 12.5px;
}

.sortie-col--next .sortie-tile__rule--special {
  font-size: 11.5px;
}

/* ゲームの「出撃受付終了まで」と同じ、暗い帯に黄色の時計 */
.sortie-countdown {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin: 4px 0 3px;
  padding: 1px 0;
  background: linear-gradient(90deg, transparent, rgba(0, 0, 0, .62) 22% 78%, transparent);
  line-height: 1.2;
}

.sortie-countdown__label {
  color: #f2f6f4;
  font-size: 12px;
  font-weight: 800;
}

.sortie-countdown__time {
  color: var(--sortie-clock);
  font-family: Bahnschrift, "DIN Alternate", "Arial Narrow", Arial, sans-serif;
  font-size: 20px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  letter-spacing: .05em;
  text-shadow: 0 0 7px rgba(255, 210, 63, .42);
}

.sortie-countdown.is-ended .sortie-countdown__label {
  color: #d8c58f;
  line-height: 24px;
}

.sortie-countdown.is-ended .sortie-countdown__time {
  display: none;
}

/* 幅が足りないときは日本語の副題を外して「現在」の行と重ならないようにする */
@media (max-width: 1199px) {
  .sortie-mode__logo-ja {
    display: none;
  }
}

/* タブレット・スマホは同じ並びのまま、1枠を細くして幅いっぱいに並べる */
@media (max-width: 1023px) {
  .sortie-mode {
    padding: 8px 7px 7px;
  }

  .sortie-mode__logo {
    margin-bottom: 2px;
  }

  .sortie-mode__logo-en {
    font-size: 20px;
  }

  .sortie-col__time {
    margin-bottom: 2px;
    padding-left: 5px;
    border-left-width: 3px;
    font-size: 12.5px;
  }

  .sortie-col--current .sortie-col__time {
    top: 12px;
    left: 7px;
  }

  .sortie-col__time small {
    font-size: 10.5px;
  }

  .sortie-col__list {
    gap: 4px;
  }

  .sortie-tile {
    flex: 1 1 0;
    min-height: 76px;
  }

  .sortie-col--next .sortie-tile {
    min-height: 58px;
  }

  /* ルール名が長い枠だけ少し広げる */
  .sortie-tile--long {
    flex-grow: 1.45;
  }

  .sortie-tile__env {
    padding: 0 4px;
    font-size: 9.5px;
    line-height: 13px;
  }

  .sortie-tile__text,
  .sortie-col--next .sortie-tile__text {
    padding: 11px 2px 2px;
  }

  .sortie-col--next .sortie-tile__text {
    padding-top: 9px;
  }

  .sortie-tile__cost {
    font-size: 9px;
  }

  .sortie-tile__cost b {
    margin-left: 1px;
    font-size: 16px;
  }

  .sortie-col--next .sortie-tile__cost b {
    font-size: 14px;
  }

  .sortie-tile__cost--word b {
    font-size: 12.5px;
  }

  .sortie-tile__rule,
  .sortie-col--next .sortie-tile__rule {
    font-size: 11px;
  }

  .sortie-tile__rule--special,
  .sortie-col--next .sortie-tile__rule--special,
  .sortie-tile__scenario {
    font-size: 9.5px;
  }

  .sortie-tile__map {
    font-size: 10.5px;
  }

  .sortie-tile--random::before {
    font-size: 42px;
  }

  .sortie-col--next .sortie-tile--random::before {
    font-size: 34px;
  }

  .sortie-tile--empty {
    font-size: 10px;
    letter-spacing: .04em;
  }

  .sortie-countdown {
    gap: 8px;
    margin: 3px 0 2px;
  }

  .sortie-countdown__label {
    font-size: 11.5px;
  }

  .sortie-countdown__time {
    font-size: 18px;
  }
}

@media (max-width: 768px) {
  .sortie-board {
    margin: 2px 5px 10px;
  }

  .sortie-board__radio {
    position: absolute;
    display: block;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
  }

  .sortie-board__tabs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
    padding: 8px 7px 4px;
  }

  .sortie-board__tabs label {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    border: 1px solid rgba(214, 226, 214, .32);
    background: linear-gradient(180deg, #2a3530, #161e1b);
    color: #dfe8e3;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
  }

  /* 公式画面の左メニューと同じ、選択中は青緑の地に水色の線 */
  #sortie-mode-rate:checked ~ .sortie-board__tabs label[for="sortie-mode-rate"],
  #sortie-mode-quick:checked ~ .sortie-board__tabs label[for="sortie-mode-quick"] {
    border-color: var(--sortie-cyan);
    border-left-width: 4px;
    background: linear-gradient(180deg, var(--sortie-teal), #125a60);
    color: #fff;
  }

  #sortie-mode-rate:focus-visible ~ .sortie-board__tabs label[for="sortie-mode-rate"],
  #sortie-mode-quick:focus-visible ~ .sortie-board__tabs label[for="sortie-mode-quick"] {
    outline: 2px solid #fff;
    outline-offset: 1px;
  }

  .sortie-board__grid {
    grid-template-columns: minmax(0, 1fr);
  }

  #sortie-mode-rate:checked ~ .sortie-board__grid .sortie-mode--quick,
  #sortie-mode-quick:checked ~ .sortie-board__grid .sortie-mode--rate {
    display: none;
  }

  .sortie-mode {
    padding: 0 7px 7px;
  }

  .sortie-mode + .sortie-mode {
    border-left: 0;
  }

  .sortie-mode__logo {
    display: none;
  }

  .sortie-col--current .sortie-col__time {
    position: static;
    margin-bottom: 3px;
  }

  .sortie-col--next .sortie-col__time {
    margin-bottom: 3px;
  }
}
