table {
            border-collapse: collapse;
            width: 100%;
            margin-top: 20px;
        }

        th,
        td {
            border: 1px solid #333;
            padding: 8px;
            text-align: center;
        }

        th {
            background-color: #f0f0f0;
        }

        .header-top {
            background-color: #e0e0e0;
            font-weight: bold;
        }

        .merged {
            text-align: left;
            padding-left: 10px;
        }

        /* 横並び用の親コンテナ */
        .flex-container {
            display: flex;
            gap: 20px;
            margin-top: 20px;
        }

        .join {
            flex: 8;
            /* 70% */
        }

        .common {
            flex: 2;
            /* 30% */
        }

        .header-row {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 0;
        }

        .header-left,
        .header-center,
        .header-right {
            flex: 1;
            text-align: center;
            font-weight: bold;
            font-size: 1.1em;
        }

        .header-left {
            text-align: left;
        }

        .header-right {
            text-align: right;
        }