/* ---------------------------------------------
  operational.css
  公開後の運用で足す修正（パッチ）。共通head.mtml で components.css の次に読み込む
  ※ カスケードレイヤーに入れていない。レイヤー外のルールはレイヤー内（components.css 等）より優先される
------------------------------------------------ */

/*表の横スクロール補助
  ※ is-* クラスは operational.js が付与する。JSが動かない・古いキャッシュのときは従来表示のまま
  ※ HTMLは変更しない。.table-01 > .table-01-wrapper と .table-02 > .table-02-wrapper が対象
     （.table-03 は入力表でスクロールしないため対象外）
*/
:is(.table-01, .table-02) > :is(.table-01-wrapper, .table-02-wrapper) {
  /*Macのトラックパッドで端まで来たときに「戻る」が暴発しないように*/
  overscroll-behavior-x: contain;
}

/*行見出し列（1列目の th）の固定。固定してよい表かどうかは JS が判定する
  ※ collapse のままだと罫線を隣のセルと共有するため、固定セルの左に1px隙間が空いて文字が透け、
     右の区切り線も太って見える。固定時だけ separate に切り替え、各セルが自分の罫線を持つようにする
     （右・下 1px ＋ 1行目の上・1列目の左 1px で、見た目の太さは collapse と同じ 1px）
*/
:is(.table-01-wrapper, .table-02-wrapper).is-scrollable.is-sticky-col table {
  border-collapse: separate;
  border-spacing: 0;
}

:is(.table-01-wrapper, .table-02-wrapper).is-scrollable.is-sticky-col :is(th, td) {
  border-width: 0 1px 1px 0;
}

:is(.table-01-wrapper, .table-02-wrapper).is-scrollable.is-sticky-col table > :first-child > tr:first-child > :is(th, td) {
  border-top-width: 1px;
}

:is(.table-01-wrapper, .table-02-wrapper).is-scrollable.is-sticky-col .is-sticky-cell {
  position: sticky;
  z-index: 1;
  left: 0;
  border-left-width: 1px;
}

/*スクロール中は固定列の右に薄い影を落とし、下を流れていることを示す（色は --color-black-02）*/
:is(.table-01-wrapper, .table-02-wrapper).is-scrolled.is-sticky-col .is-sticky-cell {
  box-shadow: 4px 0 6px -4px rgb(41 34 0 / 20%);
}

/*右端のグラデーション影（右に続きがあるときだけ）。高さはスクロールバーを除いた表の高さ*/
:is(.table-01, .table-02)::after {
  position: absolute;
  top: 0;
  right: 0;
  width: 24px;
  height: var(--table-scroll-height, 0);
  background: linear-gradient(to left, rgb(41 34 0 / 18%), rgb(41 34 0 / 0%));
  content: "";
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
}

:is(.table-01, .table-02).is-scroll-more::after {
  opacity: 1;
}

/*キーボードで選んだときの枠（tabindex は はみ出している表にだけ JS が残す）。色は check-01 のフォーカス表示に合わせる*/
:is(.table-01-wrapper, .table-02-wrapper).is-scrollable:focus-visible {
  outline: 2px solid var(--color-blue-02);
  outline-offset: 2px;
}

/*マウス環境では、はみ出している表に注記と操作方法を出す
  ※ 注記は PC幅では _table.css で非表示。はみ出している表だけ表示に戻す（収まる表には出さない）
  ※ 補足文は CSS で足しているため読み上げられないことがあるが、マウス利用者向けの補足なので支障はない
*/
@media (hover: hover) and (pointer: fine) {

  :is(.table-01, .table-02).is-scrollable > .caption {
    display: block;
  }

  :is(.table-01, .table-02).is-scrollable > .caption::after {
    display: block;
    content: "（マウスの場合は、Shiftキーを押しながらホイールを回すと横に動かせます）";
  }
}

/*スクロールバーを常に表示する（Mac のオーバーレイ表示だと横に続きがあることに気づけないため）
  ※ Chrome 121+ は scrollbar-color があると ::-webkit-scrollbar を無視するので、標準プロパティは Firefox 向けに分ける
*/
:is(.table-01, .table-02) > :is(.table-01-wrapper, .table-02-wrapper)::-webkit-scrollbar {
  height: 8px;
}

:is(.table-01, .table-02) > :is(.table-01-wrapper, .table-02-wrapper)::-webkit-scrollbar-track {
  border-radius: 4px;
  background-color: var(--color-gray-08);
}

:is(.table-01, .table-02) > :is(.table-01-wrapper, .table-02-wrapper)::-webkit-scrollbar-thumb {
  border-radius: 4px;
  background-color: var(--color-gray-04);
}

@supports not selector(::-webkit-scrollbar) {
  :is(.table-01, .table-02) > :is(.table-01-wrapper, .table-02-wrapper) {
    scrollbar-color: var(--color-gray-04) var(--color-gray-08);
  }
}
