main {
  max-width: 1200px;
  margin-inline: auto;
  padding: 40px 40px 60vh;

  /* トグルボタン */
  .control {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 40px;
    .toggle {
      position: relative;
      width: fit-content;
      border: 1px solid var(--color-primary);
      border-radius: 100vmax;
      background: var(--color-surface);
      &:after {
        content: "";
        position: absolute;
        inset: anchor(--checked start);
        inline-size: anchor-size(--checked inline);
        block-size: anchor-size(--checked block);
        border-radius: 100vmax;
        background: var(--color-primary);
        pointer-events: none;
        transition-duration: 0.3s;
        transition-property: inset, inline-size, block-size;
        transition-timing-function: var(--ease-expo-out);
      }

      .toggle-inner {
        position: relative;
        z-index: 1;
        display: flex;
        padding: 8px 16px;

        label {
          cursor: pointer;
          input {
            display: none;
          }
          span {
            display: inline-block;
            padding: 4px 16px;
            font-size: 18px;
            font-weight: bold;
            transition: color 0.3s var(--ease-expo-out);
          }
          &:has(input:checked) {
            anchor-name: --checked;
            color: var(--color-surface);
          }
        }
      }
    }

    > p {
      font-size: 28px;
      font-weight: bold;
      position: relative;
      width: fit-content;
      &:before {
        content: '';
        background: url(../../common/images/icon-notice.svg) center / contain no-repeat;
        height: 18px;
        width: 18px;
        position: absolute;
        top: -2px;
        right: -18px;
      }
    }

    &:has(input[value="hidden"]:checked) {
      & > p {
        opacity: 0.5;
        text-decoration: line-through;
        &:before {
          content: none;
        }
      }
    }
  }

  /* 工程表 */
  &:has(input[value="clip"]:checked) {
    .table-scroll {
      overflow: auto clip; /* 横方向だけスクロールさせる */
    }
  }

  &:has(input[value="hidden"]:checked) {
    .table-scroll {
      overflow: auto hidden; /* 縦方向もスクロールコンテナーとして認識される */
    }
  }

  .table-scroll {
    table {
      width: max-content;
      border-collapse: separate;
      border-spacing: 0;
      table-layout: fixed;

      th,
      td {
        box-sizing: border-box;
        width: 180px;
        padding: 12px;
        border-right: 1px solid var(--color-border);
        border-bottom: 1px solid var(--color-border);
        background: var(--color-surface);
        text-align: left;
      }

      th {
        border-color: var(--color-primary);
        background: var(--color-secondary);
        color: var(--color-primary);

        &:first-child {
          width: 160px;
        }

        &:nth-child(2) {
          width: 220px;
        }
      }

      thead {
        th {
          border-color: var(--color-surface);
          background: var(--color-primary);
          color: var(--color-surface);
          /* 列見出しを画面上部に固定 */
          position: sticky;
          top: 0;
          z-index: 2;

          &:first-child {
            left: 0;
            z-index: 5;
          }

          &:nth-child(2) {
            left: 160px;
            z-index: 4;
          }
        }
      }

      tbody {
        th[scope="rowgroup"] {
          position: sticky; /* 行見出しをテーブル左側に固定 */
          left: 0;
          z-index: 2;
          vertical-align: top;
        }

        th[scope="row"] {
          position: sticky; /* 行見出しをテーブル左側に固定 */
          left: 160px; /* 1セル分右側で固定させる */
          z-index: 1;
          font-size: 14px;
        }

        tr:hover {
          > td {
            background-color: color-mix(in srgb, var(--color-primary) 8%, white);
          }
        }
      }

      .bar {
        display: block;
        height: 16px;
        background: var(--color-primary);
      }
    }
  }
}

@media (width < 768px) {
  main {
    .control {
      flex-direction: column;
      .toggle {
        border-radius: 4px;
        .toggle-inner {
          flex-direction: column;
          padding: 8px;
        }

        &:after {
          border-radius: 4px;
        }
      }
    }

    .table-scroll table {
      th,
      td {
        width: 140px;
      }

      th {
        &:first-child {
          width: 120px;
        }

        &:nth-child(2) {
          width: 180px;
        }
      }

      thead {
        th {
          &:nth-child(2) {
            left: auto;
            z-index: 2;
          }
        }
      }

      tbody {
        th[scope="row"] {
          position: static;
          left: auto;
          z-index: auto;
        }
      }
    }
  }
}
