@charset "UTF-8";
.scroll-container {
  position: relative;
  width: 100%;
}

.table-wrapper {
  width: 100%;
  overflow-x: auto;
  overflow-y: visible;
}

.stickyTable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  white-space: nowrap;
  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
}

.stickyTable th,
.stickyTable td {
  padding: 10px;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  text-align: center;
  box-sizing: border-box;
  background-clip: padding-box;
}

/* =========================================
  固定ヘッダー（上部）の設定
========================================= */
.stickyTable thead th {
  position: relative;
  background-color: #333;
  z-index: 1;
  border-color: #555;
  transition: box-shadow 0.2s;
  font-size: 12px;
}

.scroll-container.is-scrolled-y thead th {
  box-shadow: 0 4px 6px -2px rgba(0, 0, 0, 0.3);
  border-bottom-color: transparent;
}

/* =========================================
  固定カラム（左側2列）の設定
========================================= */
th.fixed-side,
td.fixed-side {
  position: sticky;
  left: 0;
  background-color: #f9f9f9;
  z-index: 1;
}

td.fixed-side.fixed-1 {
  width: 60px;
  min-width: 60px;
  left: 0 !important;
  border-right: 1px solid #ddd;
}
@media screen and (min-width: 600px) {
  td.fixed-side.fixed-1 {
    width: 350px;
    min-width: 350px;
  }
}

td.fixed-side.fixed-2 {
  width: 80px;
  min-width: 80px;
  left: 60px !important;
  box-shadow: 1px 0 0 #f9f9f9;
}
@media screen and (min-width: 600px) {
  td.fixed-side.fixed-2 {
    width: 140px;
    min-width: 140px;
    left: 350px !important;
  }
}

/* =========================================
  左上の角 (ヘッダー × 固定列)
========================================= */
thead th.fixed-side {
  position: sticky;
  left: 0;
  z-index: 6;
  box-shadow: 1px 0 0 #333;
}

/* =========================================
  影の演出 (グラデーションオーバーレイ)
========================================= */
.fixed-1::after {
  display: none;
}

.fixed-2::after {
  content: "";
  position: absolute;
  top: -1px;
  bottom: -1px;
  right: -12px;
  width: 12px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 1;
}

.scroll-container.is-scrolled-left .fixed-2::after {
  opacity: 1;
}

.shadow-right-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 12px;
  background: linear-gradient(to left, rgba(0, 0, 0, 0.3), transparent);
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 2;
}
@media screen and (max-width: 599px) {
  .shadow-right-overlay {
    top: 17px;
  }
}

.scroll-container.is-scrolled-right .shadow-right-overlay {
  opacity: 1;
}

/* =========================================
  左上の角（ヘッダー）に左影をつける
========================================= */
thead th.fixed-side::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  right: -12px;
  width: 12px;
  background: linear-gradient(to right, rgba(0, 0, 0, 0.3), transparent);
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  z-index: 1;
}

.scroll-container.is-scrolled-left thead th.fixed-side::after {
  opacity: 1;
}

/* =========================================
  カスタムスクロールバーのスタイル
========================================= */
.custom-scrollbar {
  height: 22px;
  background-color: #f1f1f1;
  padding: 5px 0;
  position: relative;
  overflow: hidden;
  display: none;
  position: sticky;
  top: 55px;
  background-color: #fff;
  z-index: 10;
}

.scrollbar-track {
  width: 100%;
  height: 100%;
  position: relative;
}

.scrollbar-thumb {
  height: 100%;
  background-color: #c1c1c1; /* つまみの色 */
  border-radius: 6px;
  position: absolute;
  top: 0;
  left: 0;
  cursor: grab;
  transition: background-color 0.2s;
}

.scrollbar-thumb:hover {
  background-color: #a8a8a8;
}

.scrollbar-thumb:active {
  cursor: grabbing;
  background-color: #999;
}
/*# sourceMappingURL=sticky_table_scroll.css.map */